--- a/com/mojang/math/OctahedralGroup.java +++ b/com/mojang/math/OctahedralGroup.java @@ -123,6 +_,12 @@ } ); + static { + for (OctahedralGroup octahedralGroup : values()) { + octahedralGroup.initializeRotationDirections(); // Paper - Avoid Lazy Initialization for Enum Fields + } + } + private OctahedralGroup(final String name, final SymmetricGroup3 permutation, final boolean invertX, final boolean invertY, final boolean invertZ) { this.name = name; this.invertX = invertX; @@ -160,7 +_,7 @@ return this.name; } - public Direction rotate(Direction direction) { + public void initializeRotationDirections() { // Paper - Avoid Lazy Initialization for Enum Fields if (this.rotatedDirections == null) { this.rotatedDirections = Util.makeEnumMap(Direction.class, direction1 -> { Direction.Axis axis = direction1.getAxis(); @@ -171,6 +_,11 @@ }); } + // Paper start - Avoid Lazy Initialization for Enum Fields + } + + public Direction rotate(Direction direction) { + // Paper end - Avoid Lazy Initialization for Enum Fields return this.rotatedDirections.get(direction); }