geforkt von Mirrors/Paper
4104545b11
"It was from a different time before books were as jank as they are now. As time has gone on they've only proven to be worse and worse."
56 Zeilen
2.0 KiB
Diff
56 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Andrew Steinborn <git@steinborn.me>
|
|
Date: Mon, 18 Jan 2021 20:45:25 -0500
|
|
Subject: [PATCH] Inline shift direction fields
|
|
|
|
Removes a layer of indirection for EnumDirection.getAdjacent(X|Y|Z)(), which is in the
|
|
critical section for much of the server, including the lighting engine.
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java
|
|
index e8e9494f7f337ee91a56fbd299da015dcda4a81b..593d6251c75ec337175d08b85000239ba7da1af2 100644
|
|
--- a/src/main/java/net/minecraft/core/Direction.java
|
|
+++ b/src/main/java/net/minecraft/core/Direction.java
|
|
@@ -62,6 +62,11 @@ public enum Direction implements StringRepresentable {
|
|
}, (direction1, direction2) -> {
|
|
throw new IllegalArgumentException("Duplicate keys");
|
|
}, Long2ObjectOpenHashMap::new));
|
|
+ // Paper start
|
|
+ private final int adjX;
|
|
+ private final int adjY;
|
|
+ private final int adjZ;
|
|
+ // Paper end
|
|
|
|
private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) {
|
|
this.data3d = id;
|
|
@@ -71,6 +76,11 @@ public enum Direction implements StringRepresentable {
|
|
this.axis = axis;
|
|
this.axisDirection = direction;
|
|
this.normal = vector;
|
|
+ // Paper start
|
|
+ this.adjX = vector.getX();
|
|
+ this.adjY = vector.getY();
|
|
+ this.adjZ = vector.getZ();
|
|
+ // Paper end
|
|
}
|
|
|
|
public static Direction[] orderedByNearest(Entity entity) {
|
|
@@ -310,15 +320,15 @@ public enum Direction implements StringRepresentable {
|
|
}
|
|
|
|
public int getStepX() {
|
|
- return this.normal.getX();
|
|
+ return this.adjX; // Paper
|
|
}
|
|
|
|
public int getStepY() {
|
|
- return this.normal.getY();
|
|
+ return this.adjY; // Paper
|
|
}
|
|
|
|
public int getStepZ() {
|
|
- return this.normal.getZ();
|
|
+ return this.adjZ; // Paper
|
|
}
|
|
|
|
public Vector3f step() {
|