From 41126e9aa7ca20a3d71467f354394644f99c31a6 Mon Sep 17 00:00:00 2001 From: tr7zw Date: Mon, 11 May 2020 21:31:27 +0200 Subject: [PATCH] Update upstream, add MixinAxisCycleDirection from lithium --- Tuinity | 2 +- ...0058-lithium-MixinAxisCycleDirection.patch | 70 +++++++++++++++++++ scripts/importmcdev_paper.sh | 1 + 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 patches/server/0058-lithium-MixinAxisCycleDirection.patch diff --git a/Tuinity b/Tuinity index 2520d73d..a02e9921 160000 --- a/Tuinity +++ b/Tuinity @@ -1 +1 @@ -Subproject commit 2520d73d4984926ace78e7f0814fa8a309f4d1fd +Subproject commit a02e99216340dd019211add1f545ed7ac5709b05 diff --git a/patches/server/0058-lithium-MixinAxisCycleDirection.patch b/patches/server/0058-lithium-MixinAxisCycleDirection.patch new file mode 100644 index 00000000..40f0a3df --- /dev/null +++ b/patches/server/0058-lithium-MixinAxisCycleDirection.patch @@ -0,0 +1,70 @@ +From 9f50dd301093abe72c23340c37a5227a98dde40f Mon Sep 17 00:00:00 2001 +From: tr7zw +Date: Mon, 11 May 2020 21:30:32 +0200 +Subject: [PATCH] lithium MixinAxisCycleDirection + +--- + .../net/minecraft/server/EnumAxisCycle.java | 30 ++++++++++++++++--- + 1 file changed, 26 insertions(+), 4 deletions(-) + +diff --git a/src/main/java/net/minecraft/server/EnumAxisCycle.java b/src/main/java/net/minecraft/server/EnumAxisCycle.java +index a7c2543fdd..d05cddcc90 100644 +--- a/src/main/java/net/minecraft/server/EnumAxisCycle.java ++++ b/src/main/java/net/minecraft/server/EnumAxisCycle.java +@@ -24,14 +24,27 @@ public enum EnumAxisCycle { + return enumdirection_enumaxis.a(k, i, j); + } + ++ /** ++ * The JVM has difficulty optimizing these functions due to the use of dynamic dispatch. They can trivially be ++ * implemented as a simple switch lookup table. ++ */ + @Override + public EnumDirection.EnumAxis a(EnumDirection.EnumAxis enumdirection_enumaxis) { +- return null.d[Math.floorMod(enumdirection_enumaxis.ordinal() + 1, 3)]; ++ switch (enumdirection_enumaxis) { ++ case X: ++ return EnumDirection.EnumAxis.Y; ++ case Y: ++ return EnumDirection.EnumAxis.Z; ++ case Z: ++ return EnumDirection.EnumAxis.X; ++ } ++ ++ throw new IllegalArgumentException(); + } + + @Override + public EnumAxisCycle a() { +- return null.BACKWARD; ++ return BACKWARD; + } + }, + BACKWARD { +@@ -42,12 +55,21 @@ public enum EnumAxisCycle { + + @Override + public EnumDirection.EnumAxis a(EnumDirection.EnumAxis enumdirection_enumaxis) { +- return null.d[Math.floorMod(enumdirection_enumaxis.ordinal() - 1, 3)]; ++ switch (enumdirection_enumaxis) { ++ case X: ++ return EnumDirection.EnumAxis.Z; ++ case Y: ++ return EnumDirection.EnumAxis.X; ++ case Z: ++ return EnumDirection.EnumAxis.Y; ++ } ++ ++ throw new IllegalArgumentException(); + } + + @Override + public EnumAxisCycle a() { +- return null.FORWARD; ++ return FORWARD; + } + }; + +-- +2.25.1.windows.1 + diff --git a/scripts/importmcdev_paper.sh b/scripts/importmcdev_paper.sh index 17c3337f..9af11fa5 100755 --- a/scripts/importmcdev_paper.sh +++ b/scripts/importmcdev_paper.sh @@ -94,6 +94,7 @@ done import PistonExtendsChecker import EnumDirection +import EnumAxisCycle # import TileEntityPiston # doesn't compile without fixes, copied into patch