From 2408dd0818725c13f35f14eabe078b817d2fea76 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Sun, 21 Jan 2024 23:38:42 +0000 Subject: [PATCH] Rebase --- .../server/0019-Optimised-Explosions.patch | 24 +++++++++++-------- .../0029-Explosion-Durable-Blocks.patch | 6 ++--- .../0030-Destroy-Waterlogged-Blocks.patch | 4 ++-- .../0036-Consistent-Explosion-Radius.patch | 6 ++--- ...-Configure-cannon-physics-by-version.patch | 10 +++----- ...043-Allow-explosions-to-destroy-lava.patch | 4 ++-- ...Add-explosions-dropping-items-config.patch | 4 ++-- .../0057-fixup-Optimised-Explosions.patch | 23 ------------------ .../0058-fixup-Optimised-Explosions.patch | 21 ---------------- 9 files changed, 29 insertions(+), 73 deletions(-) delete mode 100644 patches/server/0057-fixup-Optimised-Explosions.patch delete mode 100644 patches/server/0058-fixup-Optimised-Explosions.patch diff --git a/patches/server/0019-Optimised-Explosions.patch b/patches/server/0019-Optimised-Explosions.patch index a4b95b7..e2da695 100644 --- a/patches/server/0019-Optimised-Explosions.patch +++ b/patches/server/0019-Optimised-Explosions.patch @@ -656,7 +656,7 @@ index 2bdd46350317a9fadf362b1a341993c92d7a9651..7b5d96670c6818949a0be556b547347e @Override diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe03290db2 100644 +index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..4487045d031948e01c37ec91a5114fc1e8909cf2 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -55,14 +55,16 @@ public class Explosion { @@ -767,7 +767,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe ++i; } -@@ -141,34 +206,75 @@ public class Explosion { +@@ -141,34 +206,79 @@ public class Explosion { return; } // CraftBukkit end @@ -806,9 +806,9 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe + { + { + { -+ double d0 = BLOCK_RAYCAST_VECTORS[0]; -+ double d1 = BLOCK_RAYCAST_VECTORS[1]; -+ double d2 = BLOCK_RAYCAST_VECTORS[2]; ++ double d0 = BLOCK_RAYCAST_VECTORS[i]; ++ double d1 = BLOCK_RAYCAST_VECTORS[i + 1]; ++ double d2 = BLOCK_RAYCAST_VECTORS[i + 2]; - d0 /= d3; - d1 /= d3; @@ -850,6 +850,10 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe + lastChunkZ = chunkZ; + } + ++ prevX = blockX; ++ prevY = blockY; ++ prevZ = blockZ; ++ + mutableBlockPos.set(blockX, blockY, blockZ); + + BlockPos blockposition = mutableBlockPos; @@ -859,7 +863,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe FluidState fluid = iblockdata.getFluidState(); // Paper if (!this.level.isInWorldBounds(blockposition)) { -@@ -181,8 +287,9 @@ public class Explosion { +@@ -181,8 +291,9 @@ public class Explosion { f -= ((Float) optional.get() + 0.3F) * 0.3F; } @@ -870,7 +874,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe // Paper start - prevent headless pistons from forming if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowHeadlessPistons && iblockdata.getBlock() == Blocks.MOVING_PISTON) { BlockEntity extension = this.level.getBlockEntity(blockposition); -@@ -193,21 +300,25 @@ public class Explosion { +@@ -193,21 +304,25 @@ public class Explosion { } // Paper end } @@ -903,7 +907,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe int l = Mth.floor(this.y - (double) f2 - 1.0D); int i1 = Mth.floor(this.y + (double) f2 + 1.0D); int j1 = Mth.floor(this.z - (double) f2 - 1.0D); -@@ -254,7 +365,7 @@ public class Explosion { +@@ -254,7 +369,7 @@ public class Explosion { // Calculate damage separately for each EntityComplexPart double d7part; if (list.contains(entityComplexPart) && (d7part = Math.sqrt(entityComplexPart.distanceToSqr(vec3d)) / f2) <= 1.0D) { @@ -912,7 +916,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe entityComplexPart.hurt(this.getDamageSource(), (float) ((int) ((d13part * d13part + d13part) / 2.0D * 7.0D * (double) f2 + 1.0D))); } } -@@ -362,6 +473,12 @@ public class Explosion { +@@ -362,6 +477,12 @@ public class Explosion { this.wasCanceled = true; return; } @@ -925,7 +929,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe // CraftBukkit end objectlistiterator = this.toBlow.iterator(); -@@ -525,15 +642,22 @@ public class Explosion { +@@ -525,15 +646,22 @@ public class Explosion { private BlockInteraction() {} } // Paper start - Optimize explosions diff --git a/patches/server/0029-Explosion-Durable-Blocks.patch b/patches/server/0029-Explosion-Durable-Blocks.patch index 954d4f0..7a99229 100644 --- a/patches/server/0029-Explosion-Durable-Blocks.patch +++ b/patches/server/0029-Explosion-Durable-Blocks.patch @@ -124,10 +124,10 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5c4d610d648ec8608ff0e5bbe0f3b2 @Override public String getDescriptionId() { diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 3a622a84b3846e368b099a27bbc44afe03290db2..1f0e98d8cfb93511be2841dd4823a9006f8be8be 100644 +index 4487045d031948e01c37ec91a5114fc1e8909cf2..97ebbb51773d7da046687ec00d16b3e4a8d569d5 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -283,6 +283,16 @@ public class Explosion { +@@ -287,6 +287,16 @@ public class Explosion { Optional optional = this.damageCalculator.getBlockExplosionResistance(this, this.level, blockposition, iblockdata, fluid); @@ -144,7 +144,7 @@ index 3a622a84b3846e368b099a27bbc44afe03290db2..1f0e98d8cfb93511be2841dd4823a900 if (optional.isPresent()) { f -= ((Float) optional.get() + 0.3F) * 0.3F; } -@@ -487,6 +497,16 @@ public class Explosion { +@@ -491,6 +501,16 @@ public class Explosion { BlockState iblockdata = this.level.getBlockState(blockposition); Block block = iblockdata.getBlock(); // CraftBukkit start - TNTPrimeEvent diff --git a/patches/server/0030-Destroy-Waterlogged-Blocks.patch b/patches/server/0030-Destroy-Waterlogged-Blocks.patch index a9753b7..022a2fe 100644 --- a/patches/server/0030-Destroy-Waterlogged-Blocks.patch +++ b/patches/server/0030-Destroy-Waterlogged-Blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Destroy Waterlogged Blocks diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 1f0e98d8cfb93511be2841dd4823a9006f8be8be..13606d7165bb2df19a45f95536f85fcad17c1375 100644 +index 97ebbb51773d7da046687ec00d16b3e4a8d569d5..40730373a60f2939e8c2ff261f75bd0abf454732 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -281,6 +281,12 @@ public class Explosion { +@@ -285,6 +285,12 @@ public class Explosion { break; } diff --git a/patches/server/0036-Consistent-Explosion-Radius.patch b/patches/server/0036-Consistent-Explosion-Radius.patch index 2d3120a..fdbc2c8 100644 --- a/patches/server/0036-Consistent-Explosion-Radius.patch +++ b/patches/server/0036-Consistent-Explosion-Radius.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Consistent Explosion Radius diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 13606d7165bb2df19a45f95536f85fcad17c1375..b017d33ece7563af8fc4d5fdc080b6b8bda79c7d 100644 +index 40730373a60f2939e8c2ff261f75bd0abf454732..81efe2985e3379b1dac2af797ae5ad6708e8bdcd 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -235,7 +235,7 @@ public class Explosion { - double d1 = BLOCK_RAYCAST_VECTORS[1]; - double d2 = BLOCK_RAYCAST_VECTORS[2]; + double d1 = BLOCK_RAYCAST_VECTORS[i + 1]; + double d2 = BLOCK_RAYCAST_VECTORS[i + 2]; - float f = this.radius * (0.7F + this.level.random.nextFloat() * 0.6F); + float f = this.radius * (0.7F + (this.level.sakuraConfig().cannons.explosion.consistentRadius ? 0.7F : this.level.random.nextFloat()) * 0.6F); // Sakura diff --git a/patches/server/0039-Configure-cannon-physics-by-version.patch b/patches/server/0039-Configure-cannon-physics-by-version.patch index 15be5c0..8160e21 100644 --- a/patches/server/0039-Configure-cannon-physics-by-version.patch +++ b/patches/server/0039-Configure-cannon-physics-by-version.patch @@ -445,11 +445,7 @@ index aa65887b72a96d87f0cad98047deffd01d60ec3f..c3c053884101b818274400f0ebcd6690 // Paper end } diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -<<<<<<< HEAD:patches/server/0039-Configure-cannon-physics-by-version.patch -index b017d33ece7563af8fc4d5fdc080b6b8bda79c7d..8646302289669685cd44bb70231a110b4b09affc 100644 -======= -index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae089d73c261 100644 ->>>>>>> e640167 (Fix wrong raytrace method used in getSeenPercent):patches/server/0040-Configure-cannon-physics-by-version.patch +index 81efe2985e3379b1dac2af797ae5ad6708e8bdcd..a7e9a7bcf659203045bcff3b20fc3e05c9d1d6bc 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -68,6 +68,7 @@ public class Explosion { @@ -488,7 +484,7 @@ index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae08 // Sakura end ++i; } -@@ -278,6 +288,10 @@ public class Explosion { +@@ -282,6 +292,10 @@ public class Explosion { FluidState fluid = iblockdata.getFluidState(); // Paper if (!this.level.isInWorldBounds(blockposition)) { @@ -499,7 +495,7 @@ index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae08 break; } -@@ -350,10 +364,17 @@ public class Explosion { +@@ -354,10 +368,17 @@ public class Explosion { if (d7 <= 1.0D) { double d8 = entity.getX() - this.x; diff --git a/patches/server/0043-Allow-explosions-to-destroy-lava.patch b/patches/server/0043-Allow-explosions-to-destroy-lava.patch index 75fa2a6..9190b39 100644 --- a/patches/server/0043-Allow-explosions-to-destroy-lava.patch +++ b/patches/server/0043-Allow-explosions-to-destroy-lava.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow explosions to destroy lava diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 8646302289669685cd44bb70231a110b4b09affc..8dd53e7c714657fe357757cdbfdfd7182b8a73eb 100644 +index a7e9a7bcf659203045bcff3b20fc3e05c9d1d6bc..3663575a27b21b01c54d9314282f47fd748e5f38 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -136,6 +136,12 @@ public class Explosion { @@ -21,7 +21,7 @@ index 8646302289669685cd44bb70231a110b4b09affc..8dd53e7c714657fe357757cdbfdfd718 float power = radius * 1.3f; float blockRes = state.getBlock().getExplosionResistance(); float fluidRes = state.getFluidState().getExplosionResistance(); -@@ -313,6 +319,12 @@ public class Explosion { +@@ -317,6 +323,12 @@ public class Explosion { } // Sakura end diff --git a/patches/server/0055-Add-explosions-dropping-items-config.patch b/patches/server/0055-Add-explosions-dropping-items-config.patch index 3c946f8..d12533b 100644 --- a/patches/server/0055-Add-explosions-dropping-items-config.patch +++ b/patches/server/0055-Add-explosions-dropping-items-config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add explosions dropping items config diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 8dd53e7c714657fe357757cdbfdfd7182b8a73eb..fda0aeae04276ff9ac3b041895f1344e8c6dd6fe 100644 +index 3663575a27b21b01c54d9314282f47fd748e5f38..310a6b14a12e9c7ba04ee7178aae509db368f92f 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -585,6 +585,12 @@ public class Explosion { +@@ -589,6 +589,12 @@ public class Explosion { } } diff --git a/patches/server/0057-fixup-Optimised-Explosions.patch b/patches/server/0057-fixup-Optimised-Explosions.patch deleted file mode 100644 index 2a4e0c9..0000000 --- a/patches/server/0057-fixup-Optimised-Explosions.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Samsuik -Date: Sun, 21 Jan 2024 22:12:30 +0000 -Subject: [PATCH] fixup! Optimised Explosions - - -diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index fda0aeae04276ff9ac3b041895f1344e8c6dd6fe..cd5ba771bd11549f9a9c2c03a31479d236f24e02 100644 ---- a/src/main/java/net/minecraft/world/level/Explosion.java -+++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -247,9 +247,9 @@ public class Explosion { - { - { - { -- double d0 = BLOCK_RAYCAST_VECTORS[0]; -- double d1 = BLOCK_RAYCAST_VECTORS[1]; -- double d2 = BLOCK_RAYCAST_VECTORS[2]; -+ double d0 = BLOCK_RAYCAST_VECTORS[i]; -+ double d1 = BLOCK_RAYCAST_VECTORS[i + 1]; -+ double d2 = BLOCK_RAYCAST_VECTORS[i + 2]; - - float f = this.radius * (0.7F + (this.level.sakuraConfig().cannons.explosion.consistentRadius ? 0.7F : this.level.random.nextFloat()) * 0.6F); // Sakura - double d4 = this.x; diff --git a/patches/server/0058-fixup-Optimised-Explosions.patch b/patches/server/0058-fixup-Optimised-Explosions.patch deleted file mode 100644 index 44785e8..0000000 --- a/patches/server/0058-fixup-Optimised-Explosions.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Samsuik -Date: Sun, 21 Jan 2024 23:14:26 +0000 -Subject: [PATCH] fixup! Optimised Explosions - - -diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index cd5ba771bd11549f9a9c2c03a31479d236f24e02..ee62cf3c8bbfdbf4bf6257322306bba232174380 100644 ---- a/src/main/java/net/minecraft/world/level/Explosion.java -+++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -285,6 +285,10 @@ public class Explosion { - lastChunkZ = chunkZ; - } - -+ prevX = blockX; -+ prevY = blockY; -+ prevZ = blockZ; -+ - mutableBlockPos.set(blockX, blockY, blockZ); - - BlockPos blockposition = mutableBlockPos;