Update upstream, add MixinAxisCycleDirection from lithium

This commit is contained in:
tr7zw 2020-05-11 21:31:27 +02:00
parent 8f8ac72d5d
commit 41126e9aa7
3 changed files with 72 additions and 1 deletions

@ -1 +1 @@
Subproject commit 2520d73d4984926ace78e7f0814fa8a309f4d1fd
Subproject commit a02e99216340dd019211add1f545ed7ac5709b05

View File

@ -0,0 +1,70 @@
From 9f50dd301093abe72c23340c37a5227a98dde40f Mon Sep 17 00:00:00 2001
From: tr7zw <tr7zw@live.de>
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

View File

@ -94,6 +94,7 @@ done
import PistonExtendsChecker
import EnumDirection
import EnumAxisCycle
# import TileEntityPiston # doesn't compile without fixes, copied into patch