diff --git a/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch b/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch index cae516dc..b926367f 100644 --- a/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch +++ b/patches/server/0031-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch @@ -150,6 +150,19 @@ index b2f1d117abd3828140c1edf2baf314b34d2ccf40..d13bafdfa4175e193fa3e337f93e796d if (j < this.minimum) { throw ERROR_TICK_COUNT_TOO_LOW.create(j, this.minimum); } else { +diff --git a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +index 4b6e0fe2fabcc55007fd8979e81f66df9c0278b7..b067fd3dbad0861925f3938fbbc10def4f030041 100644 +--- a/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java ++++ b/src/main/java/net/minecraft/network/protocol/game/VecDeltaCodec.java +@@ -9,7 +9,7 @@ public class VecDeltaCodec { + + @VisibleForTesting + static long encode(double value) { +- return Math.round(value * 4096.0D); // Paper - diff on change ++ return carpetfixes.helpers.FastMath.round(value * 4096.0D); // Paper - diff on change // Mirai + } + + @VisibleForTesting diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 6662699cd28cfd337298b19e947a3f84c1d1972f..86702fec0b2999a8d04482f04f98e76ffa33ff59 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java @@ -384,6 +397,19 @@ index 7b0dbfaab5951aaf09c36bc5112d953585f0098a..8814e1320fa716184a7f8ae930717583 } return super.causeFallDamage(fallDistance, damageMultiplier, damageSource); +diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +index 9582050566c5afc4e0fc40f5d74b653e77f9aa28..9366674382d88cba96dc431f5cc2c041541f54b4 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +@@ -288,7 +288,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { + } + + protected static float lerpRotation(float prevRot, float newRot) { +- prevRot += Math.round((newRot - prevRot) / 360.0F) * 360.0F; // Paper - stop large look changes from crashing the server ++ prevRot += carpetfixes.helpers.FastMath.round((newRot - prevRot) / 360.0F) * 360.0F; // Paper - stop large look changes from crashing the server // Mirai + + return Mth.lerp(0.2F, prevRot, newRot); + } diff --git a/src/main/java/net/minecraft/world/item/Item.java b/src/main/java/net/minecraft/world/item/Item.java index dd2f6c67533cc3344a171fe3ae9b3704796d8c50..78e641cf4f5857712f60b168be803f311e7def10 100644 --- a/src/main/java/net/minecraft/world/item/Item.java @@ -423,6 +449,21 @@ index 81376e725151f723dad8a7b5c1a4bd597e60294e..5a33c98d29e1a76e5239dab166514ab9 } i = Mth.clamp(i, 0, 15); +diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java +index 51a05900d02dc116ea215730713cd2cf2a4f1c23..5d63d6d7ba4d450d32e5d1e58afabbc6a1848802 100644 +--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java ++++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGeneratorStructureState.java +@@ -233,8 +233,8 @@ public class ChunkGeneratorStructureState { + + for (int j1 = 0; j1 < j; ++j1) { + double d1 = (double) (4 * i + i * i1 * 6) + (randomsource.nextDouble() - 0.5D) * (double) i * 2.5D; +- int k1 = (int) Math.round(Math.cos(d0) * d1); +- int l1 = (int) Math.round(Math.sin(d0) * d1); ++ int k1 = (int) carpetfixes.helpers.FastMath.round(Math.cos(d0) * d1); // Mirai ++ int l1 = (int) carpetfixes.helpers.FastMath.round(Math.sin(d0) * d1); // Mirai + RandomSource randomsource1 = randomsource.fork(); + + list.add(CompletableFuture.supplyAsync(() -> { diff --git a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java b/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java index 3152d995f87beca1e0243a7d594d352ec458b0ed..d4dbee946d292e0d01910cc4fd1c67cda8fd7dc8 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java @@ -512,6 +553,19 @@ index 918631209956adae59b83dd28e7492290362311e..607b02f77c76760f607ce763ea2ea17e } public static String commandTPSBarOutput = "Tpsbar toggled for "; +diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java +index 8a6bc6d4dc5825e0d125ce3853bd3d7714ac113f..dcfcdab92b88a2c66f6a8eda6a94adb15433322f 100644 +--- a/src/main/java/org/spigotmc/ActivationRange.java ++++ b/src/main/java/org/spigotmc/ActivationRange.java +@@ -102,7 +102,7 @@ public class ActivationRange + if (deviation <= 0) { + return wakeUpDuration; + } +- return (int) Math.min(Integer.MAX_VALUE, Math.max(1, Math.round(wakeUpDuration * wakeUpDurationRandom.nextGaussian(1, deviation)))); ++ return (int) Math.min(Integer.MAX_VALUE, Math.max(1, carpetfixes.helpers.FastMath.round(wakeUpDuration * wakeUpDurationRandom.nextGaussian(1, deviation)))); // Mirai + } + // Gale end - variable entity wake-up duration + diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java index b2824b471ca8046631aa5a3da69015c1cc8631a3..61f8953b4472bdc79d33b4fa846929ba9e6e8bcd 100644 --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java