From 02df003e7256cc264bf159aeda632fb5a61ff5ca Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> Date: Mon, 24 Feb 2025 19:14:12 +0300 Subject: [PATCH] lithium: fast_util --- .../features/0035-lithium-fast_util.patch | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 divinemc-server/minecraft-patches/features/0035-lithium-fast_util.patch diff --git a/divinemc-server/minecraft-patches/features/0035-lithium-fast_util.patch b/divinemc-server/minecraft-patches/features/0035-lithium-fast_util.patch new file mode 100644 index 0000000..aa52171 --- /dev/null +++ b/divinemc-server/minecraft-patches/features/0035-lithium-fast_util.patch @@ -0,0 +1,84 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> +Date: Mon, 24 Feb 2025 19:10:17 +0300 +Subject: [PATCH] lithium: fast_util + + +diff --git a/net/minecraft/core/Direction.java b/net/minecraft/core/Direction.java +index 216f97207dac88cc1dc3df59c6ee8a62c7614b4a..05c7de5729466786a0196fa5f91eccc3cfffc675 100644 +--- a/net/minecraft/core/Direction.java ++++ b/net/minecraft/core/Direction.java +@@ -217,7 +217,7 @@ public enum Direction implements StringRepresentable, ca.spottedleaf.moonrise.pa + } + + public Direction getOpposite() { +- return this.opposite; // Paper - optimise collisions ++ return VALUES[this.oppositeIndex]; // DivineMC - lithium: fast_util + } + + public Direction getClockWise(Direction.Axis axis) { +@@ -350,7 +350,7 @@ public enum Direction implements StringRepresentable, ca.spottedleaf.moonrise.pa + } + + public static Direction getRandom(RandomSource random) { +- return Util.getRandom(VALUES, random); ++ return VALUES[random.nextInt(VALUES.length)]; // DivineMC - lithium: fast_util + } + + public static Direction getApproximateNearest(double x, double y, double z) { +diff --git a/net/minecraft/world/phys/AABB.java b/net/minecraft/world/phys/AABB.java +index c9c6e4e460ad8435f12761704bb9b0284d6aa708..f40f54f0d8291cb51f11937e447f0c3c1d1a9dca 100644 +--- a/net/minecraft/world/phys/AABB.java ++++ b/net/minecraft/world/phys/AABB.java +@@ -18,6 +18,15 @@ public class AABB { + public final double maxY; + public final double maxZ; + ++ // DivineMC start - lithium: fast_util ++ static { ++ assert Direction.Axis.X.ordinal() == 0; ++ assert Direction.Axis.Y.ordinal() == 1; ++ assert Direction.Axis.Z.ordinal() == 2; ++ assert Direction.Axis.values().length == 3; ++ } ++ // DivineMC end - lithium: fast_util ++ + public AABB(double x1, double y1, double z1, double x2, double y2, double z2) { + this.minX = Math.min(x1, x2); + this.minY = Math.min(y1, y2); +@@ -79,11 +88,33 @@ public class AABB { + } + + public double min(Direction.Axis axis) { +- return axis.choose(this.minX, this.minY, this.minZ); ++ // DivineMC start - lithium: fast_util ++ switch (axis.ordinal()) { ++ case 0: // X ++ return this.minX; ++ case 1: // Y ++ return this.minY; ++ case 2: // Z ++ return this.minZ; ++ } ++ ++ throw new IllegalArgumentException(); ++ // DivineMC end - lithium: fast_util + } + + public double max(Direction.Axis axis) { +- return axis.choose(this.maxX, this.maxY, this.maxZ); ++ // DivineMC start - lithium: fast_util ++ switch (axis.ordinal()) { ++ case 0: // X ++ return this.maxX; ++ case 1: // Y ++ return this.maxY; ++ case 2: // Z ++ return this.maxZ; ++ } ++ ++ throw new IllegalArgumentException(); ++ // DivineMC end - lithium: fast_util + } + + @Override