diff --git a/patches/server/0010-Add-config-for-logging-login-location.patch b/patches/server/0010-Add-config-for-logging-login-location.patch index 25593ed..2d7f1db 100644 --- a/patches/server/0010-Add-config-for-logging-login-location.patch +++ b/patches/server/0010-Add-config-for-logging-login-location.patch @@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f55f8c0b2c748a5442199c0a7f772b02ed533753..c23408e641f7af74d126632813b4ba537898f62b 100644 +index cd08f9b16c065be8f0eacaeba51d3e72d332daf9..c1156377bb9314241772ba5e4f458915bba84d47 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -483,7 +483,13 @@ public abstract class PlayerList { +@@ -487,7 +487,13 @@ public abstract class PlayerList { } // Paper end // CraftBukkit - Moved from above, added world diff --git a/patches/server/0013-Stop-wasting-resources-on-JsonList-get.patch b/patches/server/0013-Stop-wasting-resources-on-JsonList-get.patch index ebe9c04..6053456 100644 --- a/patches/server/0013-Stop-wasting-resources-on-JsonList-get.patch +++ b/patches/server/0013-Stop-wasting-resources-on-JsonList-get.patch @@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index c23408e641f7af74d126632813b4ba537898f62b..579047a4ab354ff001ccc80457c10d254b0e7cca 100644 +index c1156377bb9314241772ba5e4f458915bba84d47..29fafe94b0d42f84af810b9ec9d78e2913970d1d 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -743,13 +743,19 @@ public abstract class PlayerList { +@@ -747,13 +747,19 @@ public abstract class PlayerList { if (getBans().isBanned(gameprofile) && (gameprofilebanentry = getBans().get(gameprofile)) != null) { // Paper end diff --git a/patches/server/0014-Use-XoRoShiRoRandom.patch b/patches/server/0014-Use-XoRoShiRoRandom.patch index 7b194f3..ed005f6 100644 --- a/patches/server/0014-Use-XoRoShiRoRandom.patch +++ b/patches/server/0014-Use-XoRoShiRoRandom.patch @@ -68,7 +68,7 @@ index 7b23535a680d2a8534dcb8dd87770f66fb982c13..5e9c7f428e4a0d920569c2a02e999da9 for (int l1 = 0; l1 < i1; ++l1) { int i2 = (k1 + j1 * l1) % i1; diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 462d8c36166c63a4dc8fa74ac7f82859e6f4b83a..1be5ae3162f2e2b5a48310c162edf8bdc8a08c2b 100644 +index 60ba196e17df34c3ae2a9883e5d28830a2243517..f5f06eb1d4de5fdde57fd1ecac80244f7a617a9f 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -52,7 +52,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener @@ -253,10 +253,10 @@ index d33af84300db18ea2b71dba2c9ed43390a293500..e60d244c44396ec09ecff889d8b9543b MinecraftServer minecraftServer = this.level.getServer(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index c28f7074a07051ea9aee5dc67dfef9193426a42d..7ca746e36a98e0b7d7e47c68962975242c4dd070 100644 +index 5fb475b3ccaa98861e2c817b37cd1740e5bfed8d..e8c5c0c6e05194707db35246444e4a44878a227b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -229,7 +229,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -231,7 +231,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { } // Paper end diff --git a/patches/server/0042-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0042-Spread-out-and-optimise-player-list-ticksSpread-out-.patch index e9bd957..fbc1ea4 100644 --- a/patches/server/0042-Spread-out-and-optimise-player-list-ticksSpread-out-.patch +++ b/patches/server/0042-Spread-out-and-optimise-player-list-ticksSpread-out-.patch @@ -8,10 +8,10 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 579047a4ab354ff001ccc80457c10d254b0e7cca..8f7fe2655ba7fe7127606676bfa5b8454720c9ff 100644 +index 29fafe94b0d42f84af810b9ec9d78e2913970d1d..1e1f35df11f25dcd471cb3d918c9dfb70a35755a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1017,22 +1017,21 @@ public abstract class PlayerList { +@@ -1021,22 +1021,21 @@ public abstract class PlayerList { } public void tick() { @@ -47,10 +47,10 @@ index 579047a4ab354ff001ccc80457c10d254b0e7cca..8f7fe2655ba7fe7127606676bfa5b845 public void broadcastAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8de4ad9f2120d22b78202981624abd1d2fc70148..a8685b1e87d7f6a6dac77d758c1269d1562ecaf7 100644 +index 148e1985017f6955267b5c970730645394d700f6..55dd48144ec7cb54b279de2857f706858ba74772 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1544,7 +1544,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1558,7 +1558,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) { diff --git a/patches/server/0066-Packet-obfuscation-and-reduction.patch b/patches/server/0066-Packet-obfuscation-and-reduction.patch index e602bd5..44232f2 100644 --- a/patches/server/0066-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0066-Packet-obfuscation-and-reduction.patch @@ -158,7 +158,7 @@ index 042985988d11ca9f1bf6a62ec0622392c6e9b99f..756d4a9f7e2be49076af43212a7c1126 if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4f28e2167682e0fb119c8dcf3f983da28fa4a62e..e891390e35da547ee219911d1e796886d9f0c1fd 100644 +index f02c5a487ae3c1362b8e72f9188b0fe98265d82a..72790d1288ff471b2270ec96a207dd65d81e514d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2980,7 +2980,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -171,7 +171,7 @@ index 4f28e2167682e0fb119c8dcf3f983da28fa4a62e..e891390e35da547ee219911d1e796886 } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 570d2325997e2465a8e17803ea882bc07ca64c38..b871d89d16e0bb08cc8ce87e74ced974734be418 100644 +index d85da02be7f1d494af8f2cc840c49073774f5f9c..aaf3a82c57b92b53d6bd737a4e20c91b8a5685e9 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -631,7 +631,7 @@ public abstract class Player extends LivingEntity { @@ -184,10 +184,10 @@ index 570d2325997e2465a8e17803ea882bc07ca64c38..b871d89d16e0bb08cc8ce87e74ced974 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a8685b1e87d7f6a6dac77d758c1269d1562ecaf7..a3520c2f6e1c809d2a7bdbe06692a8246482f075 100644 +index 55dd48144ec7cb54b279de2857f706858ba74772..602c86594336bd5ad43d22582fdbd4c39186369e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2014,7 +2014,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2028,7 +2028,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.sendHealthUpdate(); } } diff --git a/patches/server/0067-Smooth-World-Teleports.patch b/patches/server/0067-Smooth-World-Teleports.patch index c56dc87..149f217 100644 --- a/patches/server/0067-Smooth-World-Teleports.patch +++ b/patches/server/0067-Smooth-World-Teleports.patch @@ -19,10 +19,10 @@ index c93c3c3f83a60aa1769607a26148f2eb754cbda6..c0301008fecdae18ade4c05115a60f96 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 8f7fe2655ba7fe7127606676bfa5b8454720c9ff..da84ae21026acd54478ff23673a817361ad01afd 100644 +index 1e1f35df11f25dcd471cb3d918c9dfb70a35755a..4b7f804b6dfe96c49444c0afcebfcc857440c7e6 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -949,12 +949,12 @@ public abstract class PlayerList { +@@ -953,12 +953,12 @@ public abstract class PlayerList { } // CraftBukkit start LevelData worlddata = worldserver1.getLevelData(); diff --git a/patches/server/0068-World-Instance-Flag.patch b/patches/server/0068-World-Instance-Flag.patch index 97c54fb..b4ec5a0 100644 --- a/patches/server/0068-World-Instance-Flag.patch +++ b/patches/server/0068-World-Instance-Flag.patch @@ -7,7 +7,7 @@ Original code by Cryptite, licensed under MIT You can find the original code on https://github.com/Cryptite/Slice diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2d2f1e3fe1c9314af18377458af74f8c6afa7603..4df7088e81ee6ccc7705d2c220ae80c373681c9e 100644 +index 75b885da98b308ed8894fc95e604076d8593461e..751faa74604edd15a1f8223043d9fe188f7375a8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -211,6 +211,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -19,10 +19,10 @@ index 2d2f1e3fe1c9314af18377458af74f8c6afa7603..4df7088e81ee6ccc7705d2c220ae80c3 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 7ca746e36a98e0b7d7e47c68962975242c4dd070..f404b38242485d081ecaad34a43eadcd9950cad2 100644 +index e8c5c0c6e05194707db35246444e4a44878a227b..27e817f805faf0bc882f75649dd4efeaf4067a2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1225,6 +1225,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1227,6 +1227,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { world.noSave = !value; } diff --git a/patches/server/0089-Add-new-Object-0-to-reduce-allocs.patch b/patches/server/0089-Add-new-Object-0-to-reduce-allocs.patch index 610badc..aed20e5 100644 --- a/patches/server/0089-Add-new-Object-0-to-reduce-allocs.patch +++ b/patches/server/0089-Add-new-Object-0-to-reduce-allocs.patch @@ -29,7 +29,7 @@ index 81dde0efc1a06420c0791520b9e40b24dd1f0318..371dd89f91f5b53e7d31155e22a4f29b } // Paper start diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c62dece6ea8869ce32ec04acc269f98d572d9034..5add4522234776ac7cc377441f71bed60f890e4d 100644 +index 944b4b288fd3f3d3160eeb73ae9060ef9d224b7a..efb3020e81a02d79ad07ceccd8d28ff94d883ad4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1441,8 +1441,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.networkManager.disconnect(msg); entityplayer.networkManager = null; -@@ -726,7 +726,7 @@ public abstract class PlayerList { +@@ -730,7 +730,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved diff --git a/patches/server/0095-c2me-optimization.math.patch b/patches/server/0095-c2me-optimization.math.patch index d6a9185..6bce3d3 100644 --- a/patches/server/0095-c2me-optimization.math.patch +++ b/patches/server/0095-c2me-optimization.math.patch @@ -3,11 +3,13 @@ From: ishland Date: Tue, 21 Sep 2021 10:37:34 +0200 Subject: [PATCH] c2me: optimization.math +Copyright (c) 2021-2022 ishland + Original code by RelativityMC, licensed under MIT You can find the original code on https://github.com/RelativityMC/C2ME-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java -index 765b56776e457109ddea9f7dbfd0b17beefee51e..22e94c9c01b845c363ede1ec6e86c5d115c56c7d 100644 +index 765b56776e457109ddea9f7dbfd0b17beefee51e..883a8dcf94b619cd5ffbcfc6f28809c2c6a71f55 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java +++ b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java @@ -11,6 +11,27 @@ public final class ImprovedNoise { @@ -90,7 +92,7 @@ index 765b56776e457109ddea9f7dbfd0b17beefee51e..22e94c9c01b845c363ede1ec6e86c5d1 public double noiseWithDerivative(double x, double y, double z, double[] ds) { double d = x + this.xo; -@@ -84,26 +109,46 @@ public final class ImprovedNoise { +@@ -84,26 +109,141 @@ public final class ImprovedNoise { return this.p[hash & 255] & 255; } @@ -119,37 +121,132 @@ index 765b56776e457109ddea9f7dbfd0b17beefee51e..22e94c9c01b845c363ede1ec6e86c5d1 - double t = Mth.smoothstep(localZ); - return Mth.lerp3(r, s, t, d, e, f, g, h, o, p, q); + // TODO [VanillaCopy] but inlined -+ int i = this.p[sectionX & 0xFF]; -+ int j = this.p[sectionX + 1 & 0xFF]; -+ int k = this.p[i + sectionY & 0xFF]; -+ int l = this.p[i + sectionY + 1 & 0xFF]; -+ int m = this.p[j + sectionY & 0xFF]; -+ int n = this.p[j + sectionY + 1 & 0xFF]; ++ final int var0 = sectionX & 0xFF; ++ final int var1 = (sectionX + 1) & 0xFF; ++ final int var2 = this.p[var0] & 0xFF; ++ final int var3 = this.p[var1] & 0xFF; ++ final int var4 = (var2 + sectionY) & 0xFF; ++ final int var5 = (var2 + sectionY + 1) & 0xFF; ++ final int var6 = (var3 + sectionY) & 0xFF; ++ final int var7 = (var3 + sectionY + 1) & 0xFF; ++ final int var8 = this.p[var4] & 0xFF; ++ final int var9 = this.p[var5] & 0xFF; ++ final int var10 = this.p[var6] & 0xFF; ++ final int var11 = this.p[var7] & 0xFF; + -+ final double[] grad0 = SIMPLEX_NOISE_GRADIENTS[this.p[k + sectionZ & 0xFF] & 15]; -+ final double[] grad1 = SIMPLEX_NOISE_GRADIENTS[this.p[m + sectionZ & 0xFF] & 15]; -+ final double[] grad2 = SIMPLEX_NOISE_GRADIENTS[this.p[l + sectionZ & 0xFF] & 15]; -+ final double[] grad3 = SIMPLEX_NOISE_GRADIENTS[this.p[n + sectionZ & 0xFF] & 15]; -+ final double[] grad4 = SIMPLEX_NOISE_GRADIENTS[this.p[k + sectionZ + 1 & 0xFF] & 15]; -+ final double[] grad5 = SIMPLEX_NOISE_GRADIENTS[this.p[m + sectionZ + 1 & 0xFF] & 15]; -+ final double[] grad6 = SIMPLEX_NOISE_GRADIENTS[this.p[l + sectionZ + 1 & 0xFF] & 15]; -+ final double[] grad7 = SIMPLEX_NOISE_GRADIENTS[this.p[n + sectionZ + 1 & 0xFF] & 15]; -+ double d = (grad0[0] * localX) + (grad0[1] * localY) + (grad0[2] * localZ); -+ double e = (grad1[0] * (localX - 1.0)) + (grad1[1] * localY) + (grad1[2] * localZ); -+ double f = (grad2[0] * localX) + (grad2[1] * (localY - 1.0)) + (grad2[2] * localZ); -+ double g = (grad3[0] * (localX - 1.0)) + (grad3[1] * (localY - 1.0)) + (grad3[2] * localZ); -+ double h = (grad4[0] * localX) + (grad4[1] * localY) + (grad4[2] * (localZ - 1.0)); -+ double o = (grad5[0] * (localX - 1.0)) + (grad5[1] * localY) + (grad5[2] * (localZ - 1.0)); -+ double p = (grad6[0] * localX) + (grad6[1] * (localY - 1.0)) + (grad6[2] * (localZ - 1.0)); -+ double q = (grad7[0] * (localX - 1.0)) + (grad7[1] * (localY - 1.0)) + (grad7[2] * (localZ - 1.0)); ++ final int var12 = (var8 + sectionZ) & 0xFF; ++ final int var13 = (var10 + sectionZ) & 0xFF; ++ final int var14 = (var9 + sectionZ) & 0xFF; ++ final int var15 = (var11 + sectionZ) & 0xFF; ++ final int var16 = (var8 + sectionZ + 1) & 0xFF; ++ final int var17 = (var10 + sectionZ + 1) & 0xFF; ++ final int var18 = (var9 + sectionZ + 1) & 0xFF; ++ final int var19 = (var11 + sectionZ + 1) & 0xFF; ++ final int var20 = this.p[var12] & 15; ++ final int var21 = this.p[var13] & 15; ++ final int var22 = this.p[var14] & 15; ++ final int var23 = this.p[var15] & 15; ++ final int var24 = this.p[var16] & 15; ++ final int var25 = this.p[var17] & 15; ++ final int var26 = this.p[var18] & 15; ++ final int var27 = this.p[var19] & 15; ++ final double[] var28 = SIMPLEX_NOISE_GRADIENTS[var20]; ++ final double[] var29 = SIMPLEX_NOISE_GRADIENTS[var21]; ++ final double[] var30 = SIMPLEX_NOISE_GRADIENTS[var22]; ++ final double[] var31 = SIMPLEX_NOISE_GRADIENTS[var23]; ++ final double[] var32 = SIMPLEX_NOISE_GRADIENTS[var24]; ++ final double[] var33 = SIMPLEX_NOISE_GRADIENTS[var25]; ++ final double[] var34 = SIMPLEX_NOISE_GRADIENTS[var26]; ++ final double[] var35 = SIMPLEX_NOISE_GRADIENTS[var27]; ++ final double var36 = var28[0]; ++ final double var37 = var28[1]; ++ final double var38 = var28[2]; ++ final double var39 = var29[0]; ++ final double var40 = var29[1]; ++ final double var41 = var29[2]; ++ final double var42 = var30[0]; ++ final double var43 = var30[1]; ++ final double var44 = var30[2]; ++ final double var45 = var31[0]; ++ final double var46 = var31[1]; ++ final double var47 = var31[2]; ++ final double var48 = var32[0]; ++ final double var49 = var32[1]; ++ final double var50 = var32[2]; ++ final double var51 = var33[0]; ++ final double var52 = var33[1]; ++ final double var53 = var33[2]; ++ final double var54 = var34[0]; ++ final double var55 = var34[1]; ++ final double var56 = var34[2]; ++ final double var57 = var35[0]; ++ final double var58 = var35[1]; ++ final double var59 = var35[2]; ++ final double var60 = localX - 1.0; ++ final double var61 = localY - 1.0; ++ final double var62 = localZ - 1.0; ++ final double var63 = var36 * localX; ++ final double var64 = var37 * localY; ++ final double var65 = var38 * localZ; ++ final double var66 = var39 * var60; ++ final double var67 = var40 * localY; ++ final double var68 = var41 * localZ; ++ final double var69 = var42 * localX; ++ final double var70 = var43 * var61; ++ final double var71 = var44 * localZ; ++ final double var72 = var45 * var60; ++ final double var73 = var46 * var61; ++ final double var74 = var47 * localZ; ++ final double var75 = var48 * localX; ++ final double var76 = var49 * localY; ++ final double var77 = var50 * var62; ++ final double var78 = var51 * var60; ++ final double var79 = var52 * localY; ++ final double var80 = var53 * var62; ++ final double var81 = var54 * localX; ++ final double var82 = var55 * var61; ++ final double var83 = var56 * var62; ++ final double var84 = var57 * var60; ++ final double var85 = var58 * var61; ++ final double var86 = var59 * var62; ++ final double var87 = var63 + var64 + var65; ++ final double var88 = var66 + var67 + var68; ++ final double var89 = var69 + var70 + var71; ++ final double var90 = var72 + var73 + var74; ++ final double var91 = var75 + var76 + var77; ++ final double var92 = var78 + var79 + var80; ++ final double var93 = var81 + var82 + var83; ++ final double var94 = var84 + var85 + var86; + -+ double r = localX * localX * localX * (localX * (localX * 6.0 - 15.0) + 10.0); -+ double s = fadeLocalX * fadeLocalX * fadeLocalX * (fadeLocalX * (fadeLocalX * 6.0 - 15.0) + 10.0); -+ double t = localZ * localZ * localZ * (localZ * (localZ * 6.0 - 15.0) + 10.0); ++ final double var95 = localX * 6.0 - 15.0; ++ final double var96 = fadeLocalX * 6.0 - 15.0; ++ final double var97 = localZ * 6.0 - 15.0; ++ final double var98 = localX * var95 + 10.0; ++ final double var99 = fadeLocalX * var96 + 10.0; ++ final double var100 = localZ * var97 + 10.0; ++ final double var101 = localX * localX * localX * var98; ++ final double var102 = fadeLocalX * fadeLocalX * fadeLocalX * var99; ++ final double var103 = localZ * localZ * localZ * var100; + -+ double v0 = d + r * (e - d) + s * (f + r * (g - f) - (d + r * (e - d))); -+ double v1 = h + r * (o - h) + s * (p + r * (q - p) - (h + r * (o - h))); -+ return v0 + (t * (v1 - v0)); ++ final double var104 = var90 - var89; ++ final double var105 = var88 - var87; ++ final double var106 = var94 - var93; ++ final double var107 = var92 - var91; ++ final double var108 = var101 * var104; ++ final double var109 = var101 * var105; ++ final double var110 = var101 * var106; ++ final double var111 = var101 * var107; ++ final double var112 = var89 + var108; ++ final double var113 = var87 + var109; ++ final double var114 = var93 + var110; ++ final double var115 = var91 + var111; ++ final double var116 = var112 - var113; ++ final double var117 = var114 - var115; ++ final double var118 = var102 * var116; ++ final double var119 = var102 * var117; ++ final double var120 = var113 + var118; ++ final double var121 = var115 + var119; ++ return var120 + (var103 * (var121 - var120)); } + // Mirai end diff --git a/patches/server/0098-c2me-vectorizations.vectorize_noise.patch b/patches/server/0098-c2me-vectorizations.vectorize_noise.patch index 1efe6f4..85a7fc1 100644 --- a/patches/server/0098-c2me-vectorizations.vectorize_noise.patch +++ b/patches/server/0098-c2me-vectorizations.vectorize_noise.patch @@ -3,12 +3,14 @@ From: ishland Date: Tue, 21 Sep 2021 10:37:45 +0200 Subject: [PATCH] c2me: vectorizations.vectorize_noise +Copyright (c) 2021-2022 ishland + Original code by RelativityMC, licensed under MIT You can find the original code on https://github.com/RelativityMC/C2ME-fabric (Yarn mappings) diff --git a/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedAlgorithms.java b/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedAlgorithms.java new file mode 100644 -index 0000000000000000000000000000000000000000..43d1959002295b5f6431e024813b49e30ee7099f +index 0000000000000000000000000000000000000000..77aed653efa723b17e1943e40202954d730f4b47 --- /dev/null +++ b/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedAlgorithms.java @@ -0,0 +1,9 @@ @@ -21,10 +23,9 @@ index 0000000000000000000000000000000000000000..43d1959002295b5f6431e024813b49e3 + } + +} -\ No newline at end of file diff --git a/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedPerlinNoise.java b/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedPerlinNoise.java new file mode 100644 -index 0000000000000000000000000000000000000000..44085c98292654ebb1f6d522b908bd727c761ede +index 0000000000000000000000000000000000000000..6679e557f4a3c7dbe88c77c605c97ff673425d7e --- /dev/null +++ b/src/main/java/com/ishland/c2me/libs/vectorized_algorithms/VectorizedPerlinNoise.java @@ -0,0 +1,115 @@ @@ -143,9 +144,8 @@ index 0000000000000000000000000000000000000000..44085c98292654ebb1f6d522b908bd72 + } + +} -\ No newline at end of file diff --git a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java -index 22e94c9c01b845c363ede1ec6e86c5d115c56c7d..c0bd6e5c4424748a758c763028d87a161df3d9d3 100644 +index 883a8dcf94b619cd5ffbcfc6f28809c2c6a71f55..873614980ec45bcd64ef05fd938bd99b85b9e51e 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java +++ b/src/main/java/net/minecraft/world/level/levelgen/synth/ImprovedNoise.java @@ -1,5 +1,6 @@ @@ -161,8 +161,8 @@ index 22e94c9c01b845c363ede1ec6e86c5d115c56c7d..c0bd6e5c4424748a758c763028d87a16 private double sampleAndLerp(int sectionX, int sectionY, int sectionZ, double localX, double localY, double localZ, double fadeLocalX) { + if (wtf.etil.mirai.MiraiConfig.vectorizedPerlinNoise) { return VectorizedAlgorithms.perlinNoiseVectorized(p, sectionX, sectionY, sectionZ, localX, localY, localZ, fadeLocalX); } // Mirai - c2me: vectorizations.vectorize_noise // TODO [VanillaCopy] but inlined - int i = this.p[sectionX & 0xFF]; - int j = this.p[sectionX + 1 & 0xFF]; + final int var0 = sectionX & 0xFF; + final int var1 = (sectionX + 1) & 0xFF; diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java index 1ba057cbd0ec23cd7ef3d3d1c7685f44cfe34eec..90cf922c8df669ac80451d64b376918dece09dc9 100644 --- a/src/main/java/wtf/etil/mirai/MiraiConfig.java