From ff811ffd5cba3dff1e48d71e5260d64c9a80a063 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Sat, 20 Jul 2024 00:23:26 +0100 Subject: [PATCH] Drop useless reduce movement allocations patch --- ...006-Optional-Force-Position-Updates.patch} | 2 +- ...006-Reduce-deltaMovement-Allocations.patch | 250 ------------------ ...tch => 0007-Load-Chunks-on-Movement.patch} | 8 +- ...and.patch => 0008-TPS-Graph-Command.patch} | 0 ...h => 0009-Optimise-New-Liquid-Level.patch} | 0 ...ce-Packet-obfuscation-and-reduction.patch} | 8 +- ...0011-Use-Optimised-TrackedEntityMap.patch} | 0 ...tityList-methods-to-BasicEntityList.patch} | 0 ...Add-utility-methods-to-EntitySlices.patch} | 0 ...h => 0014-Optimise-paper-explosions.patch} | 4 +- ...tch => 0015-Store-Entity-Data-State.patch} | 2 +- ...patch => 0016-Merge-Cannon-Entities.patch} | 8 +- ...017-Replace-explosion-density-cache.patch} | 6 +- ...ise-explosions-in-protected-regions.patch} | 2 +- ...atch => 0019-Specialised-Explosions.patch} | 30 ++- ...020-Optimise-cannon-entity-movement.patch} | 14 +- ... => 0021-Entity-pushed-by-fluid-API.patch} | 4 +- ...nics.patch => 0022-Cannon-Mechanics.patch} | 8 +- ...e-MovingBlockEntity-collision-shape.patch} | 0 ...ch => 0024-Optimise-TNT-fluid-state.patch} | 4 +- ...> 0025-Add-maxSearch-to-getEntities.patch} | 2 +- ...-Optimise-LivingEntity-pushEntities.patch} | 0 ...alling-blocks-inside-moving-pistons.patch} | 2 +- ... => 0028-Configure-Entity-Knockback.patch} | 0 ...ch => 0029-Explosion-Durable-Blocks.patch} | 4 +- ... => 0030-Destroy-Waterlogged-Blocks.patch} | 2 +- ...1-Cache-Vanillia-and-Eigen-Redstone.patch} | 0 ...Falling-Block-Stacking-Restrictions.patch} | 2 +- ...ItemEntity-s-that-ignore-explosions.patch} | 0 ...034-Add-option-to-disable-entity-ai.patch} | 0 ...=> 0035-Consistent-Explosion-Radius.patch} | 2 +- ...0036-Remove-spigot-max-tnt-per-tick.patch} | 4 +- ...-configure-entity-water-sensitivity.patch} | 0 ...Configure-cannon-physics-by-version.patch} | 42 +-- ...h => 0039-Allow-water-in-the-nether.patch} | 0 ...igure-concrete-solidifying-in-water.patch} | 2 +- ...tion-for-fast-nether-dimension-lava.patch} | 0 ...42-Allow-explosions-to-destroy-lava.patch} | 2 +- ...e-columns-affecting-cannon-entities.patch} | 0 ...lid-blocks-as-full-when-moving-fast.patch} | 7 +- ...045-Add-redstone-implementation-API.patch} | 0 ...educe-entity-tracker-player-updates.patch} | 0 ...ion-for-legacy-lava-block-formation.patch} | 0 ...0048-Configure-mob-spawner-defaults.patch} | 0 ...ing-random-dispenser-item-selection.patch} | 0 ...050-Add-instant-mob-death-animation.patch} | 0 ...-Configure-fluids-breaking-redstone.patch} | 2 +- ...-disable-explosions-hurting-players.patch} | 0 ...> 0053-Iron-golems-take-fall-damage.patch} | 0 ...dd-explosions-dropping-items-config.patch} | 4 +- ...mise-check-inside-blocks-and-fluids.patch} | 8 +- ...or-lava-if-throttled-water-flow-spe.patch} | 0 ...-biome-noise-once-per-chunk-section.patch} | 0 ...-gamerule-preventing-falling-blocks.patch} | 2 +- ...9-Add-entity-travel-distance-limits.patch} | 6 +- ...-speed-and-breaking-inside-entities.patch} | 0 ...dd-outline-colliison-to-enderpearls.patch} | 0 ...layer-poses-shrinking-collision-box.patch} | 0 ...patch => 0063-Mob-spawner-behaviour.patch} | 0 ...ance-for-crop-growth-instead-of-age.patch} | 0 ...rotect-block-shapes-against-plugins.patch} | 0 ...0066-Legacy-player-combat-mechanics.patch} | 0 ... 0067-Allow-disabling-sweep-attacks.patch} | 0 ...068-Change-shields-to-reduce-damage.patch} | 0 ...=> 0069-Old-enchanted-golden-apples.patch} | 0 ...=> 0070-Configure-fast-health-regen.patch} | 0 ...-for-fishing-hooks-pulling-entities.patch} | 0 ...-combat-sounds-and-particle-effects.patch} | 0 ...3-Protect-scaffolding-from-creepers.patch} | 2 +- ...0074-Entity-tracking-range-modifier.patch} | 0 70 files changed, 104 insertions(+), 341 deletions(-) rename patches/server/{0007-Optional-Force-Position-Updates.patch => 0006-Optional-Force-Position-Updates.patch} (91%) delete mode 100644 patches/server/0006-Reduce-deltaMovement-Allocations.patch rename patches/server/{0008-Load-Chunks-on-Movement.patch => 0007-Load-Chunks-on-Movement.patch} (96%) rename patches/server/{0009-TPS-Graph-Command.patch => 0008-TPS-Graph-Command.patch} (100%) rename patches/server/{0010-Optimise-New-Liquid-Level.patch => 0009-Optimise-New-Liquid-Level.patch} (100%) rename patches/server/{0011-Slice-Packet-obfuscation-and-reduction.patch => 0010-Slice-Packet-obfuscation-and-reduction.patch} (96%) rename patches/server/{0012-Use-Optimised-TrackedEntityMap.patch => 0011-Use-Optimised-TrackedEntityMap.patch} (100%) rename patches/server/{0013-Copy-EntityList-methods-to-BasicEntityList.patch => 0012-Copy-EntityList-methods-to-BasicEntityList.patch} (100%) rename patches/server/{0014-Add-utility-methods-to-EntitySlices.patch => 0013-Add-utility-methods-to-EntitySlices.patch} (100%) rename patches/server/{0015-Optimise-paper-explosions.patch => 0014-Optimise-paper-explosions.patch} (98%) rename patches/server/{0016-Store-Entity-Data-State.patch => 0015-Store-Entity-Data-State.patch} (97%) rename patches/server/{0017-Merge-Cannon-Entities.patch => 0016-Merge-Cannon-Entities.patch} (98%) rename patches/server/{0018-Replace-explosion-density-cache.patch => 0017-Replace-explosion-density-cache.patch} (98%) rename patches/server/{0019-Optimise-explosions-in-protected-regions.patch => 0018-Optimise-explosions-in-protected-regions.patch} (96%) rename patches/server/{0020-Specialised-Explosions.patch => 0019-Specialised-Explosions.patch} (97%) rename patches/server/{0021-Optimise-cannon-entity-movement.patch => 0020-Optimise-cannon-entity-movement.patch} (94%) rename patches/server/{0022-Entity-pushed-by-fluid-API.patch => 0021-Entity-pushed-by-fluid-API.patch} (92%) rename patches/server/{0023-Cannon-Mechanics.patch => 0022-Cannon-Mechanics.patch} (92%) rename patches/server/{0024-Cache-MovingBlockEntity-collision-shape.patch => 0023-Cache-MovingBlockEntity-collision-shape.patch} (100%) rename patches/server/{0025-Optimise-TNT-fluid-state.patch => 0024-Optimise-TNT-fluid-state.patch} (90%) rename patches/server/{0026-Add-maxSearch-to-getEntities.patch => 0025-Add-maxSearch-to-getEntities.patch} (98%) rename patches/server/{0027-Optimise-LivingEntity-pushEntities.patch => 0026-Optimise-LivingEntity-pushEntities.patch} (100%) rename patches/server/{0028-Despawn-falling-blocks-inside-moving-pistons.patch => 0027-Despawn-falling-blocks-inside-moving-pistons.patch} (93%) rename patches/server/{0029-Configure-Entity-Knockback.patch => 0028-Configure-Entity-Knockback.patch} (100%) rename patches/server/{0030-Explosion-Durable-Blocks.patch => 0029-Explosion-Durable-Blocks.patch} (98%) rename patches/server/{0031-Destroy-Waterlogged-Blocks.patch => 0030-Destroy-Waterlogged-Blocks.patch} (92%) rename patches/server/{0032-Cache-Vanillia-and-Eigen-Redstone.patch => 0031-Cache-Vanillia-and-Eigen-Redstone.patch} (100%) rename patches/server/{0033-Falling-Block-Stacking-Restrictions.patch => 0032-Falling-Block-Stacking-Restrictions.patch} (93%) rename patches/server/{0034-Added-list-of-ItemEntity-s-that-ignore-explosions.patch => 0033-Added-list-of-ItemEntity-s-that-ignore-explosions.patch} (100%) rename patches/server/{0035-Add-option-to-disable-entity-ai.patch => 0034-Add-option-to-disable-entity-ai.patch} (100%) rename patches/server/{0036-Consistent-Explosion-Radius.patch => 0035-Consistent-Explosion-Radius.patch} (95%) rename patches/server/{0037-Remove-spigot-max-tnt-per-tick.patch => 0036-Remove-spigot-max-tnt-per-tick.patch} (81%) rename patches/server/{0038-Option-to-configure-entity-water-sensitivity.patch => 0037-Option-to-configure-entity-water-sensitivity.patch} (100%) rename patches/server/{0039-Configure-cannon-physics-by-version.patch => 0038-Configure-cannon-physics-by-version.patch} (97%) rename patches/server/{0040-Allow-water-in-the-nether.patch => 0039-Allow-water-in-the-nether.patch} (100%) rename patches/server/{0041-Configure-concrete-solidifying-in-water.patch => 0040-Configure-concrete-solidifying-in-water.patch} (93%) rename patches/server/{0042-Option-for-fast-nether-dimension-lava.patch => 0041-Option-for-fast-nether-dimension-lava.patch} (100%) rename patches/server/{0043-Allow-explosions-to-destroy-lava.patch => 0042-Allow-explosions-to-destroy-lava.patch} (91%) rename patches/server/{0044-Disable-bubble-columns-affecting-cannon-entities.patch => 0043-Disable-bubble-columns-affecting-cannon-entities.patch} (100%) rename patches/server/{0045-Treat-solid-blocks-as-full-when-moving-fast.patch => 0044-Treat-solid-blocks-as-full-when-moving-fast.patch} (94%) rename patches/server/{0046-Add-redstone-implementation-API.patch => 0045-Add-redstone-implementation-API.patch} (100%) rename patches/server/{0047-Reduce-entity-tracker-player-updates.patch => 0046-Reduce-entity-tracker-player-updates.patch} (100%) rename patches/server/{0048-Add-option-for-legacy-lava-block-formation.patch => 0047-Add-option-for-legacy-lava-block-formation.patch} (100%) rename patches/server/{0049-Configure-mob-spawner-defaults.patch => 0048-Configure-mob-spawner-defaults.patch} (100%) rename patches/server/{0050-Allow-disabling-random-dispenser-item-selection.patch => 0049-Allow-disabling-random-dispenser-item-selection.patch} (100%) rename patches/server/{0051-Add-instant-mob-death-animation.patch => 0050-Add-instant-mob-death-animation.patch} (100%) rename patches/server/{0052-Configure-fluids-breaking-redstone.patch => 0051-Configure-fluids-breaking-redstone.patch} (93%) rename patches/server/{0053-Option-to-disable-explosions-hurting-players.patch => 0052-Option-to-disable-explosions-hurting-players.patch} (100%) rename patches/server/{0054-Iron-golems-take-fall-damage.patch => 0053-Iron-golems-take-fall-damage.patch} (100%) rename patches/server/{0055-Add-explosions-dropping-items-config.patch => 0054-Add-explosions-dropping-items-config.patch} (86%) rename patches/server/{0056-Optimise-check-inside-blocks-and-fluids.patch => 0055-Optimise-check-inside-blocks-and-fluids.patch} (94%) rename patches/server/{0057-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch => 0056-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch} (100%) rename patches/server/{0058-Calculate-biome-noise-once-per-chunk-section.patch => 0057-Calculate-biome-noise-once-per-chunk-section.patch} (100%) rename patches/server/{0059-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch => 0058-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch} (95%) rename patches/server/{0060-Add-entity-travel-distance-limits.patch => 0059-Add-entity-travel-distance-limits.patch} (92%) rename patches/server/{0061-Configure-potion-speed-and-breaking-inside-entities.patch => 0060-Configure-potion-speed-and-breaking-inside-entities.patch} (100%) rename patches/server/{0062-Add-outline-colliison-to-enderpearls.patch => 0061-Add-outline-colliison-to-enderpearls.patch} (100%) rename patches/server/{0063-Disable-player-poses-shrinking-collision-box.patch => 0062-Disable-player-poses-shrinking-collision-box.patch} (100%) rename patches/server/{0064-Mob-spawner-behaviour.patch => 0063-Mob-spawner-behaviour.patch} (100%) rename patches/server/{0065-Use-random-chance-for-crop-growth-instead-of-age.patch => 0064-Use-random-chance-for-crop-growth-instead-of-age.patch} (100%) rename patches/server/{0066-Protect-block-shapes-against-plugins.patch => 0065-Protect-block-shapes-against-plugins.patch} (100%) rename patches/server/{0067-Legacy-player-combat-mechanics.patch => 0066-Legacy-player-combat-mechanics.patch} (100%) rename patches/server/{0068-Allow-disabling-sweep-attacks.patch => 0067-Allow-disabling-sweep-attacks.patch} (100%) rename patches/server/{0069-Change-shields-to-reduce-damage.patch => 0068-Change-shields-to-reduce-damage.patch} (100%) rename patches/server/{0070-Old-enchanted-golden-apples.patch => 0069-Old-enchanted-golden-apples.patch} (100%) rename patches/server/{0071-Configure-fast-health-regen.patch => 0070-Configure-fast-health-regen.patch} (100%) rename patches/server/{0072-Add-option-for-fishing-hooks-pulling-entities.patch => 0071-Add-option-for-fishing-hooks-pulling-entities.patch} (100%) rename patches/server/{0073-Old-combat-sounds-and-particle-effects.patch => 0072-Old-combat-sounds-and-particle-effects.patch} (100%) rename patches/server/{0074-Protect-scaffolding-from-creepers.patch => 0073-Protect-scaffolding-from-creepers.patch} (92%) rename patches/server/{0075-Entity-tracking-range-modifier.patch => 0074-Entity-tracking-range-modifier.patch} (100%) diff --git a/patches/server/0007-Optional-Force-Position-Updates.patch b/patches/server/0006-Optional-Force-Position-Updates.patch similarity index 91% rename from patches/server/0007-Optional-Force-Position-Updates.patch rename to patches/server/0006-Optional-Force-Position-Updates.patch index d23db64..bcfdc0a 100644 --- a/patches/server/0007-Optional-Force-Position-Updates.patch +++ b/patches/server/0006-Optional-Force-Position-Updates.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optional Force Position Updates diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index d14128dd5d63e93a3d4aec76b0ee8d0e7d786687..6902a97bcf858aab63547451a656bc336eeb2b93 100644 +index 28a15f612239614c6c56974da5855ce3bfd7c89e..ef245198ce6385c66f58e0dbcdebffbe6d2b625e 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -129,6 +129,14 @@ public class PrimedTnt extends Entity implements TraceableEntity { diff --git a/patches/server/0006-Reduce-deltaMovement-Allocations.patch b/patches/server/0006-Reduce-deltaMovement-Allocations.patch deleted file mode 100644 index 53a3c8e..0000000 --- a/patches/server/0006-Reduce-deltaMovement-Allocations.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Samsuik -Date: Fri, 24 Mar 2023 16:29:21 +0000 -Subject: [PATCH] Reduce deltaMovement Allocations - - -diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a04c417602c928e09b856d4ac73562a18a4995e4..03f87fe754c46bd3d726ecbf9948c224d07759bc 100644 ---- a/src/main/java/net/minecraft/world/entity/Entity.java -+++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1276,7 +1276,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - this.tryCheckInsideBlocks(); - float f = this.getBlockSpeedFactor(); - -- this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); -+ this.multiplyDeltaMovement((double) f, 1.0D, (double) f); // Sakura - reduce movement allocations - if (this.level().getBlockStatesIfLoaded(this.getBoundingBox().deflate(1.0E-6D)).noneMatch((iblockdata2) -> { - return iblockdata2.is(BlockTags.FIRE) || iblockdata2.is(Blocks.LAVA); - })) { -@@ -1821,7 +1821,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - double d0 = this.getGravity(); - - if (d0 != 0.0D) { -- this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -d0, 0.0D)); -+ this.addDeltaMovement(0.0D, -d0, 0.0D); // Sakura - reduce movement allocations - } - - } -@@ -2121,6 +2121,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - public void moveTo(double x, double y, double z, float yaw, float pitch) { - // Paper start - Fix Entity Teleportation and cancel velocity if teleported - if (!preserveMotion) { -+ this.movementDirty = false; // Sakura - this.deltaMovement = Vec3.ZERO; - } else { - this.preserveMotion = false; -@@ -3548,29 +3549,33 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } - - public void onAboveBubbleCol(boolean drag) { -- Vec3 vec3d = this.getDeltaMovement(); -+ // Sakura start - remove bubble column allocations -+ // Vec3 vec3d = this.getDeltaMovement(); -+ this.syncDeltaMovement(); - double d0; - - if (drag) { -- d0 = Math.max(-0.9D, vec3d.y - 0.03D); -+ d0 = Math.max(-0.9D, this.movementY - 0.03D); - } else { -- d0 = Math.min(1.8D, vec3d.y + 0.1D); -+ d0 = Math.min(1.8D, this.movementY + 0.1D); - } - -- this.setDeltaMovement(vec3d.x, d0, vec3d.z); -+ this.setDeltaMovement(this.movementX, d0, this.movementZ); - } - - public void onInsideBubbleColumn(boolean drag) { -- Vec3 vec3d = this.getDeltaMovement(); -+ // Vec3 vec3d = this.getDeltaMovement(); -+ this.syncDeltaMovement(); - double d0; - - if (drag) { -- d0 = Math.max(-0.3D, vec3d.y - 0.03D); -+ d0 = Math.max(-0.3D, this.movementY - 0.03D); - } else { -- d0 = Math.min(0.7D, vec3d.y + 0.06D); -+ d0 = Math.min(0.7D, this.movementY + 0.06D); - } - -- this.setDeltaMovement(vec3d.x, d0, vec3d.z); -+ this.setDeltaMovement(this.movementX, d0, this.movementZ); -+ // Sakura end - remove bubble column allocations - this.resetFallDistance(); - } - -@@ -4511,16 +4516,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - vec3d = vec3d.normalize(); - } - -- Vec3 vec3d2 = this.getDeltaMovement(); -+ // Sakura start - reduce movement allocations -+ // Vec3 vec3d2 = this.getDeltaMovement(); -+ this.syncDeltaMovement(); - - vec3d = vec3d.scale(speed); - double d3 = 0.003D; - -- if (Math.abs(vec3d2.x) < 0.003D && Math.abs(vec3d2.z) < 0.003D && vec3d.length() < 0.0045000000000000005D) { -+ if (Math.abs(movementX) < 0.003D && Math.abs(movementZ) < 0.003D && vec3d.length() < 0.0045000000000000005D) { - vec3d = vec3d.normalize().scale(0.0045000000000000005D); - } - -- this.setDeltaMovement(this.getDeltaMovement().add(vec3d)); -+ this.addDeltaMovement(vec3d.x, vec3d.y, vec3d.z); -+ // Sakura end - } - - this.fluidHeight.put(tag, d1); -@@ -4591,12 +4599,54 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - return this.chunkPosition; - } - -+ // Sakura start - reduce movement allocations -+ private double movementX; -+ private double movementY; -+ private double movementZ; -+ private boolean movementDirty; -+ -+ public final void addDeltaMovement(double x, double y, double z) { -+ this.syncDeltaMovement(); -+ this.movementX += x; -+ this.movementY += y; -+ this.movementZ += z; -+ } -+ -+ public final void scaleDeltaMovement(double n) { -+ this.syncDeltaMovement(); -+ this.movementX *= n; -+ this.movementY *= n; -+ this.movementZ *= n; -+ } -+ -+ public final void multiplyDeltaMovement(double x, double y, double z) { -+ this.syncDeltaMovement(); -+ this.movementX *= x; -+ this.movementY *= y; -+ this.movementZ *= z; -+ } -+ -+ private void updateDeltaMovement() { -+ if (this.movementDirty) { -+ this.deltaMovement = new Vec3(this.movementX, this.movementY, this.movementZ); -+ this.movementDirty = false; -+ } -+ } -+ -+ private void syncDeltaMovement() { -+ if (!this.movementDirty) { -+ this.setDeltaMovement(this.deltaMovement.x, this.deltaMovement.y, this.deltaMovement.z); -+ } -+ } -+ - public Vec3 getDeltaMovement() { -+ this.updateDeltaMovement(); - return this.deltaMovement; - } - - public void setDeltaMovement(Vec3 velocity) { - synchronized (this.posLock) { // Paper -+ this.movementDirty = false; - this.deltaMovement = velocity; - } // Paper - } -@@ -4606,7 +4656,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } - - public void setDeltaMovement(double x, double y, double z) { -- this.setDeltaMovement(new Vec3(x, y, z)); -+ this.movementX = x; -+ this.movementY = y; -+ this.movementZ = z; -+ this.movementDirty = true; -+ // Sakura end - reduce deltamovement allocations - } - - public final int getBlockX() { -diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 1bfdebe6c1057ee19fb96d8f0f571c9d20d14cc6..0b84c21749d942851d5126b795e4b609070ed31f 100644 ---- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -188,7 +188,7 @@ public class FallingBlockEntity extends Entity { - } else { - BlockState iblockdata = this.level().getBlockState(blockposition); - -- this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, -0.5D, 0.7D)); -+ this.multiplyDeltaMovement(0.7D, -0.5D, 0.7D); // Sakura - reduce movement allocations - if (!iblockdata.is(Blocks.MOVING_PISTON)) { - if (!this.cancelDrop) { - boolean flag2 = iblockdata.canBeReplaced((BlockPlaceContext) (new DirectionalPlaceContext(this.level(), blockposition, Direction.DOWN, ItemStack.EMPTY, Direction.UP))); -@@ -255,7 +255,7 @@ public class FallingBlockEntity extends Entity { - } - } - -- this.setDeltaMovement(this.getDeltaMovement().scale(0.98D)); -+ this.scaleDeltaMovement(0.98D); // Sakura - reduce movement allocations - } - } - -diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 28a15f612239614c6c56974da5855ce3bfd7c89e..d14128dd5d63e93a3d4aec76b0ee8d0e7d786687 100644 ---- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -@@ -106,9 +106,9 @@ public class PrimedTnt extends Entity implements TraceableEntity { - return; - } - // Paper end - Configurable TNT height nerf -- this.setDeltaMovement(this.getDeltaMovement().scale(0.98D)); -+ this.scaleDeltaMovement(0.98D); // Sakura - reduce movement allocations - if (this.onGround()) { -- this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, -0.5D, 0.7D)); -+ this.multiplyDeltaMovement(0.7D, -0.5D, 0.7D); // Sakura - reduce movement allocations - } - - int i = this.getFuse() - 1; -diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index a248d859cbce48f4a34c4771a7acffc17d7edc84..798b840af2dc5f58e6df55426a1802d79ff5d6cb 100644 ---- a/src/main/java/net/minecraft/world/level/Explosion.java -+++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -595,17 +595,23 @@ public class Explosion { - d8 *= d13; - d9 *= d13; - d10 *= d13; -- Vec3 vec3d1 = new Vec3(d8, d9, d10); -+ Vec3 vec3d1 = null; // Sakura - move allocation into living entity condition - - // CraftBukkit start - Call EntityKnockbackEvent - if (entity instanceof LivingEntity) { -+ vec3d1 = new Vec3(d8, d9, d10); // Sakura - reduce deltaMovement allocations - // Paper start - knockback events - io.papermc.paper.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) entity.getBukkitEntity(), this.damageSource.getEntity() != null ? this.damageSource.getEntity() : this.source, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.EXPLOSION, d13, vec3d1); - vec3d1 = event.isCancelled() ? Vec3.ZERO : org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getKnockback()); - // Paper end - knockback events -+ // Sakura start - reduce deltaMovement allocations -+ entity.addDeltaMovement(vec3d1.x(), vec3d1.y(), vec3d1.z()); -+ } else { -+ entity.addDeltaMovement(d8, d9, d10); -+ // Sakura end - reduce deltaMovement allocations - } - // CraftBukkit end -- entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d1)); -+ // Sakura - moved up - if (entity instanceof Player) { - Player entityhuman = (Player) entity; - -diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index a7108b2be0746aa1f0e574d8c6f5ffad6d369835..6daca887dd4cc0683a4d066aa164bcd6dc2fc575 100644 ---- a/src/main/java/net/minecraft/world/level/block/Block.java -+++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -461,7 +461,7 @@ public class Block extends BlockBehaviour implements ItemLike { - } - - public void updateEntityAfterFallOn(BlockGetter world, Entity entity) { -- entity.setDeltaMovement(entity.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D)); -+ entity.multiplyDeltaMovement(1.0D, 0.0D, 1.0D); // Sakura - } - - public ItemStack getCloneItemStack(LevelReader world, BlockPos pos, BlockState state) { diff --git a/patches/server/0008-Load-Chunks-on-Movement.patch b/patches/server/0007-Load-Chunks-on-Movement.patch similarity index 96% rename from patches/server/0008-Load-Chunks-on-Movement.patch rename to patches/server/0007-Load-Chunks-on-Movement.patch index eaad591..fb15401 100644 --- a/patches/server/0008-Load-Chunks-on-Movement.patch +++ b/patches/server/0007-Load-Chunks-on-Movement.patch @@ -52,7 +52,7 @@ index f56e5c0f53f9b52a9247b9be9265b949494fc924..5a480f36e709a5e9fea2cbb8ccc0a14d public static TicketType create(String name, Comparator argumentComparator) { return new TicketType<>(name, argumentComparator, 0L); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 03f87fe754c46bd3d726ecbf9948c224d07759bc..8cbbe924f56e2e3d3c0e48e14e3b9176e3ef714f 100644 +index a04c417602c928e09b856d4ac73562a18a4995e4..067a0aa9a57628d0d7b41e419d91df5ece7ec3d3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -554,6 +554,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -85,7 +85,7 @@ index 03f87fe754c46bd3d726ecbf9948c224d07759bc..8cbbe924f56e2e3d3c0e48e14e3b9176 null, null ); -@@ -4924,12 +4938,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4870,12 +4884,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @Override public boolean shouldBeSaved() { @@ -101,7 +101,7 @@ index 03f87fe754c46bd3d726ecbf9948c224d07759bc..8cbbe924f56e2e3d3c0e48e14e3b9176 public boolean mayInteract(Level world, BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 0b84c21749d942851d5126b795e4b609070ed31f..c030d4e3e059227995c2f9a3a1c58d78d29ec41c 100644 +index 1bfdebe6c1057ee19fb96d8f0f571c9d20d14cc6..eaafd4905229d111381c188d5373196a9f9288ab 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -79,6 +79,7 @@ public class FallingBlockEntity extends Entity { @@ -113,7 +113,7 @@ index 0b84c21749d942851d5126b795e4b609070ed31f..c030d4e3e059227995c2f9a3a1c58d78 public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 2eb69c7d7843a7b58479049633b838212d003c10..eeb3ef7a3f86a062e39e6978e97ab7bd71dfa574 100644 +index ef245198ce6385c66f58e0dbcdebffbe6d2b625e..b7c8c2335d59853dbc97d3b9496b5e3a63f0d9ab 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -58,6 +58,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { diff --git a/patches/server/0009-TPS-Graph-Command.patch b/patches/server/0008-TPS-Graph-Command.patch similarity index 100% rename from patches/server/0009-TPS-Graph-Command.patch rename to patches/server/0008-TPS-Graph-Command.patch diff --git a/patches/server/0010-Optimise-New-Liquid-Level.patch b/patches/server/0009-Optimise-New-Liquid-Level.patch similarity index 100% rename from patches/server/0010-Optimise-New-Liquid-Level.patch rename to patches/server/0009-Optimise-New-Liquid-Level.patch diff --git a/patches/server/0011-Slice-Packet-obfuscation-and-reduction.patch b/patches/server/0010-Slice-Packet-obfuscation-and-reduction.patch similarity index 96% rename from patches/server/0011-Slice-Packet-obfuscation-and-reduction.patch rename to patches/server/0010-Slice-Packet-obfuscation-and-reduction.patch index ee3dfb2..c918bfb 100644 --- a/patches/server/0011-Slice-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0010-Slice-Packet-obfuscation-and-reduction.patch @@ -185,10 +185,10 @@ index 8ea2f24695f5dad55e21f238b69442513e7a90c6..66ce58684d7a571ebcb33e62ef1d67fe 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 8cbbe924f56e2e3d3c0e48e14e3b9176e3ef714f..05d78fec35caee04241bb33808afb2d2d09f999c 100644 +index 067a0aa9a57628d0d7b41e419d91df5ece7ec3d3..a5c69230536d163496e0d7f175fd240c6202584a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3494,7 +3494,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3493,7 +3493,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } @@ -198,7 +198,7 @@ index 8cbbe924f56e2e3d3c0e48e14e3b9176e3ef714f..05d78fec35caee04241bb33808afb2d2 } diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index c030d4e3e059227995c2f9a3a1c58d78d29ec41c..0458d965ca266606f922bf1b03b729810a3948a4 100644 +index eaafd4905229d111381c188d5373196a9f9288ab..0891d4107c9a724522a7abbb6cf61298b18e42a6 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -115,7 +115,7 @@ public class FallingBlockEntity extends Entity { @@ -211,7 +211,7 @@ index c030d4e3e059227995c2f9a3a1c58d78d29ec41c..0458d965ca266606f922bf1b03b72981 public BlockPos getStartPos() { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index eeb3ef7a3f86a062e39e6978e97ab7bd71dfa574..af9bd6822f60ee46ff5cc173bc8bd76d13020a80 100644 +index b7c8c2335d59853dbc97d3b9496b5e3a63f0d9ab..888d018a8e73234332455b7d3700e70e1a50c5db 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -203,7 +203,7 @@ public class PrimedTnt extends Entity implements TraceableEntity { diff --git a/patches/server/0012-Use-Optimised-TrackedEntityMap.patch b/patches/server/0011-Use-Optimised-TrackedEntityMap.patch similarity index 100% rename from patches/server/0012-Use-Optimised-TrackedEntityMap.patch rename to patches/server/0011-Use-Optimised-TrackedEntityMap.patch diff --git a/patches/server/0013-Copy-EntityList-methods-to-BasicEntityList.patch b/patches/server/0012-Copy-EntityList-methods-to-BasicEntityList.patch similarity index 100% rename from patches/server/0013-Copy-EntityList-methods-to-BasicEntityList.patch rename to patches/server/0012-Copy-EntityList-methods-to-BasicEntityList.patch diff --git a/patches/server/0014-Add-utility-methods-to-EntitySlices.patch b/patches/server/0013-Add-utility-methods-to-EntitySlices.patch similarity index 100% rename from patches/server/0014-Add-utility-methods-to-EntitySlices.patch rename to patches/server/0013-Add-utility-methods-to-EntitySlices.patch diff --git a/patches/server/0015-Optimise-paper-explosions.patch b/patches/server/0014-Optimise-paper-explosions.patch similarity index 98% rename from patches/server/0015-Optimise-paper-explosions.patch rename to patches/server/0014-Optimise-paper-explosions.patch index e8237fe..fcd61da 100644 --- a/patches/server/0015-Optimise-paper-explosions.patch +++ b/patches/server/0014-Optimise-paper-explosions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimise paper explosions diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 798b840af2dc5f58e6df55426a1802d79ff5d6cb..94636b235eac944b955944425b44b9e864a319d0 100644 +index a248d859cbce48f4a34c4771a7acffc17d7edc84..e4061762e3a421197f25ddd58d49eea6076597d1 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -100,7 +100,7 @@ public class Explosion { @@ -176,7 +176,7 @@ index 798b840af2dc5f58e6df55426a1802d79ff5d6cb..94636b235eac944b955944425b44b9e8 } // CraftBukkit end } else { seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); } // Paper - optimise collisions -@@ -625,6 +708,11 @@ public class Explosion { +@@ -619,6 +702,11 @@ public class Explosion { } } } diff --git a/patches/server/0016-Store-Entity-Data-State.patch b/patches/server/0015-Store-Entity-Data-State.patch similarity index 97% rename from patches/server/0016-Store-Entity-Data-State.patch rename to patches/server/0015-Store-Entity-Data-State.patch index 3bdde27..0d26936 100644 --- a/patches/server/0016-Store-Entity-Data-State.patch +++ b/patches/server/0015-Store-Entity-Data-State.patch @@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..c9f2c5ae57878283e8c8bc3847fe63b9 + +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 05d78fec35caee04241bb33808afb2d2d09f999c..1fa332238999fd45b20bc2be2d6284329da909b6 100644 +index a5c69230536d163496e0d7f175fd240c6202584a..089502717ca22296888a82804239fd4f9938abff 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -568,6 +568,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess diff --git a/patches/server/0017-Merge-Cannon-Entities.patch b/patches/server/0016-Merge-Cannon-Entities.patch similarity index 98% rename from patches/server/0017-Merge-Cannon-Entities.patch rename to patches/server/0016-Merge-Cannon-Entities.patch index 81c7538..5f8517a 100644 --- a/patches/server/0017-Merge-Cannon-Entities.patch +++ b/patches/server/0016-Merge-Cannon-Entities.patch @@ -418,7 +418,7 @@ index 4d0938df1604c3faca3997680a957dec3f07083b..df0465e4e073af7cbcee4939175d8f8c this.guardEntityTick(this::tickNonPassenger, entity); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1fa332238999fd45b20bc2be2d6284329da909b6..d044262b2e1363151b8d076a9e3855db2a27254c 100644 +index 089502717ca22296888a82804239fd4f9938abff..9e4ea632b757c187a32afecd0d6942b606ee96b3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -587,6 +587,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -445,7 +445,7 @@ index 1fa332238999fd45b20bc2be2d6284329da909b6..d044262b2e1363151b8d076a9e3855db public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4928,6 +4945,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4874,6 +4891,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system this.levelCallback.onRemove(entity_removalreason); @@ -458,7 +458,7 @@ index 1fa332238999fd45b20bc2be2d6284329da909b6..d044262b2e1363151b8d076a9e3855db if (!(this instanceof ServerPlayer) && entity_removalreason != RemovalReason.CHANGED_DIMENSION && !alreadyRemoved) { // Players need to be special cased, because they are regularly removed from the world diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 0458d965ca266606f922bf1b03b729810a3948a4..b873f6fce87afb048128d642f7588c18fcc6f7f5 100644 +index 0891d4107c9a724522a7abbb6cf61298b18e42a6..19eed968884f79a7982d96ae8c3c378f00afbdf9 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -57,7 +57,7 @@ import org.bukkit.craftbukkit.event.CraftEventFactory; @@ -566,7 +566,7 @@ index 0458d965ca266606f922bf1b03b729810a3948a4..b873f6fce87afb048128d642f7588c18 public void setHurtsEntities(float fallHurtAmount, int fallHurtMax) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index af9bd6822f60ee46ff5cc173bc8bd76d13020a80..bdbee5ce0483a4fc4173c6ccf98d6a7a57f48867 100644 +index 888d018a8e73234332455b7d3700e70e1a50c5db..6fc9a352dbae57e867ae35f2a1f30eebe20073c7 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -30,7 +30,7 @@ import org.bukkit.event.entity.EntityRemoveEvent; diff --git a/patches/server/0018-Replace-explosion-density-cache.patch b/patches/server/0017-Replace-explosion-density-cache.patch similarity index 98% rename from patches/server/0018-Replace-explosion-density-cache.patch rename to patches/server/0017-Replace-explosion-density-cache.patch index 9555ef1..edd1399 100644 --- a/patches/server/0018-Replace-explosion-density-cache.patch +++ b/patches/server/0017-Replace-explosion-density-cache.patch @@ -141,7 +141,7 @@ index b0e95e1dbf3248101d63bd2c0f9ba05e720623c6..67ca905c0821deb279383811fd112f02 this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 94636b235eac944b955944425b44b9e864a319d0..3a4aa5930e0c2b560e00878d072989287b34ebc0 100644 +index e4061762e3a421197f25ddd58d49eea6076597d1..3572334f7594a284124d879b8165e9401e9d2aad 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -305,7 +305,12 @@ public class Explosion { @@ -176,7 +176,7 @@ index 94636b235eac944b955944425b44b9e864a319d0..3a4aa5930e0c2b560e00878d07298928 ++i; } -@@ -810,6 +824,11 @@ public class Explosion { +@@ -804,6 +818,11 @@ public class Explosion { }); } @@ -188,7 +188,7 @@ index 94636b235eac944b955944425b44b9e864a319d0..3a4aa5930e0c2b560e00878d07298928 Iterator iterator = list.iterator(); while (iterator.hasNext()) { -@@ -938,14 +957,12 @@ public class Explosion { +@@ -932,14 +951,12 @@ public class Explosion { } // Paper start - Optimize explosions private float getBlockDensity(Vec3 vec3d, Entity entity, ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos) { // Paper - optimise collisions diff --git a/patches/server/0019-Optimise-explosions-in-protected-regions.patch b/patches/server/0018-Optimise-explosions-in-protected-regions.patch similarity index 96% rename from patches/server/0019-Optimise-explosions-in-protected-regions.patch rename to patches/server/0018-Optimise-explosions-in-protected-regions.patch index 17151ca..4049662 100644 --- a/patches/server/0019-Optimise-explosions-in-protected-regions.patch +++ b/patches/server/0018-Optimise-explosions-in-protected-regions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimise explosions in protected regions diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 03461922b9b42b4f6e9a62d1af1c1e1f6570cb09..5bf07349621d058739f12b9463bba47e9abfffd7 100644 +index 3572334f7594a284124d879b8165e9401e9d2aad..eaf2201301813c68b5c0826394120daffdee72f8 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -353,6 +353,22 @@ public class Explosion { diff --git a/patches/server/0020-Specialised-Explosions.patch b/patches/server/0019-Specialised-Explosions.patch similarity index 97% rename from patches/server/0020-Specialised-Explosions.patch rename to patches/server/0019-Specialised-Explosions.patch index 241a7bb..4316bf1 100644 --- a/patches/server/0020-Specialised-Explosions.patch +++ b/patches/server/0019-Specialised-Explosions.patch @@ -23,10 +23,10 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..442119e7c4670582556b067dfc03e39a if (index >= 0) { diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java new file mode 100644 -index 0000000000000000000000000000000000000000..268db3306a46cbd89bffb51f1bce8446aaed4175 +index 0000000000000000000000000000000000000000..709dc51ab4c9e8dad26cf883eebb3902a95bebf8 --- /dev/null +++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java -@@ -0,0 +1,205 @@ +@@ -0,0 +1,219 @@ +package me.samsuik.sakura.explosion.special; + +import ca.spottedleaf.moonrise.patches.chunk_system.level.entity.ChunkEntitySlices; @@ -225,12 +225,26 @@ index 0000000000000000000000000000000000000000..268db3306a46cbd89bffb51f1bce8446 + y *= exposure; + z *= exposure; + -+ for (int i = 0; i < potential; ++i) { -+ entity.addDeltaMovement(x, y, z); -+ } ++ this.applyEntityVelocity(entity, x, y, z, potential); + } + } + } ++ ++ protected final void applyEntityVelocity(Entity entity, double x, double y, double z, int potential) { ++ Vec3 movement = entity.getDeltaMovement(); ++ ++ double moveX = movement.x(); ++ double moveY = movement.y(); ++ double moveZ = movement.z(); ++ ++ for (int i = 0; i < potential; ++i) { ++ moveX += x; ++ moveY += y; ++ moveZ += z; ++ } ++ ++ entity.setDeltaMovement(moveX, moveY, moveZ); ++ } +} diff --git a/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java new file mode 100644 @@ -469,7 +483,7 @@ index df0465e4e073af7cbcee4939175d8f8c4b280396..a7ac1afc9db4daba86a492aea3a52880 @Override diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 3e1aa60220ef67029f0d7679626d044dc84d8502..8e146df15dd0c86042fedf1d89396a74a59f30e7 100644 +index 6fc9a352dbae57e867ae35f2a1f30eebe20073c7..e048542cdd1fe9c807ce21e57af9cf59b4adb33f 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -73,20 +73,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -495,7 +509,7 @@ index 3e1aa60220ef67029f0d7679626d044dc84d8502..8e146df15dd0c86042fedf1d89396a74 // Sakura end - merge cannon entities diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index a6cf8b00b707f10c34c32eef0c2acd7e9d78e6c9..315518ec8114b5b02778410c5e12b682e67cdc09 100644 +index eaf2201301813c68b5c0826394120daffdee72f8..f412c39d7f3b95152e76c63a589e298250e9c438 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -57,9 +57,11 @@ public class Explosion { @@ -582,7 +596,7 @@ index a6cf8b00b707f10c34c32eef0c2acd7e9d78e6c9..315518ec8114b5b02778410c5e12b682 // use initial cache value that is most likely to be used: the source position final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache initialCache; { -@@ -972,7 +987,7 @@ public class Explosion { +@@ -966,7 +981,7 @@ public class Explosion { private BlockInteraction() {} } // Paper start - Optimize explosions diff --git a/patches/server/0021-Optimise-cannon-entity-movement.patch b/patches/server/0020-Optimise-cannon-entity-movement.patch similarity index 94% rename from patches/server/0021-Optimise-cannon-entity-movement.patch rename to patches/server/0020-Optimise-cannon-entity-movement.patch index f39b5a1..26639eb 100644 --- a/patches/server/0021-Optimise-cannon-entity-movement.patch +++ b/patches/server/0020-Optimise-cannon-entity-movement.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimise cannon entity movement diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d044262b2e1363151b8d076a9e3855db2a27254c..387217247431bf971dd612f42831552366de0510 100644 +index 9e4ea632b757c187a32afecd0d6942b606ee96b3..f4bce733451105287b736df21f9ff934a09f0c5b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1164,6 +1164,94 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -13,7 +13,7 @@ index d044262b2e1363151b8d076a9e3855db2a27254c..387217247431bf971dd612f428315523 } // Paper end - detailed watchdog information + // Sakura start - optimise cannon entity movement; stripped back movement method -+ public void moveBasic(MoverType movementType, Vec3 movement) { ++ public final void moveStripped(MoverType movementType, Vec3 movement) { + io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); + + if (this.noPhysics) { @@ -94,7 +94,7 @@ index d044262b2e1363151b8d076a9e3855db2a27254c..387217247431bf971dd612f428315523 + + float f = this.getBlockSpeedFactor(); + -+ this.multiplyDeltaMovement((double) f, 1.0D, (double) f); // Sakura - reduce movement allocations ++ this.setDeltaMovement(this.getDeltaMovement().multiply((double) f, 1.0D, (double) f)); + this.level().getProfiler().pop(); + } + } @@ -200,7 +200,7 @@ index d044262b2e1363151b8d076a9e3855db2a27254c..387217247431bf971dd612f428315523 // Paper start - optimise collisions final boolean xZero = movement.x == 0.0; diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index b873f6fce87afb048128d642f7588c18fcc6f7f5..7dd6f7df5927c55bcfdf3a4708155d49d207b5d4 100644 +index 19eed968884f79a7982d96ae8c3c378f00afbdf9..cc5ef63a99a18f093f600612bf972cf50722e3a5 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -204,7 +204,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -208,12 +208,12 @@ index b873f6fce87afb048128d642f7588c18fcc6f7f5..7dd6f7df5927c55bcfdf3a4708155d49 ++this.time; this.applyGravity(); - this.move(MoverType.SELF, this.getDeltaMovement()); -+ this.moveBasic(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement ++ this.moveStripped(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement // Paper start - Configurable falling blocks height nerf if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) { if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 767ad73a398e61b7b4a8c57078487252e70010a9..cc2f2dbee1d717d54014005ec57e8b864c2a7241 100644 +index e048542cdd1fe9c807ce21e57af9cf59b4adb33f..fdbc990af4190f93f207c3309cf9f89613092c0a 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -124,7 +124,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -221,7 +221,7 @@ index 767ad73a398e61b7b4a8c57078487252e70010a9..cc2f2dbee1d717d54014005ec57e8b86 this.handlePortal(); this.applyGravity(); - this.move(MoverType.SELF, this.getDeltaMovement()); -+ this.moveBasic(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement ++ this.moveStripped(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement // Paper start - Configurable TNT height nerf if (this.level().paperConfig().fixes.tntEntityHeightNerf.test(v -> this.getY() > v)) { this.discard(EntityRemoveEvent.Cause.OUT_OF_WORLD); diff --git a/patches/server/0022-Entity-pushed-by-fluid-API.patch b/patches/server/0021-Entity-pushed-by-fluid-API.patch similarity index 92% rename from patches/server/0022-Entity-pushed-by-fluid-API.patch rename to patches/server/0021-Entity-pushed-by-fluid-API.patch index 879791d..5e97c9f 100644 --- a/patches/server/0022-Entity-pushed-by-fluid-API.patch +++ b/patches/server/0021-Entity-pushed-by-fluid-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity pushed by fluid API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 387217247431bf971dd612f42831552366de0510..78821f286e5b0389d02dddbc1a9d8964a96c0af1 100644 +index f4bce733451105287b736df21f9ff934a09f0c5b..9cf6d06b190b8236e68b9b49e53b0eefbeb777fe 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -604,6 +604,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -16,7 +16,7 @@ index 387217247431bf971dd612f42831552366de0510..78821f286e5b0389d02dddbc1a9d8964 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4173,7 +4174,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4168,7 +4169,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean isPushedByFluid() { diff --git a/patches/server/0023-Cannon-Mechanics.patch b/patches/server/0022-Cannon-Mechanics.patch similarity index 92% rename from patches/server/0023-Cannon-Mechanics.patch rename to patches/server/0022-Cannon-Mechanics.patch index 01645d0..31ce0bc 100644 --- a/patches/server/0023-Cannon-Mechanics.patch +++ b/patches/server/0022-Cannon-Mechanics.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cannon Mechanics diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 7dd6f7df5927c55bcfdf3a4708155d49d207b5d4..388b1985ee9e1d17f41aea7488efa99257f38076 100644 +index cc5ef63a99a18f093f600612bf972cf50722e3a5..c1a2345cbf3f2004fc679b1b4b1691cff288c6e4 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -72,6 +72,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -39,7 +39,7 @@ index 7dd6f7df5927c55bcfdf3a4708155d49d207b5d4..388b1985ee9e1d17f41aea7488efa992 protected double getDefaultGravity() { return 0.04D; diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index cc2f2dbee1d717d54014005ec57e8b864c2a7241..7c2323bf7682254de14ed963e8d57b24dd55ad5f 100644 +index fdbc990af4190f93f207c3309cf9f89613092c0a..ee5d0dd90ebc2eb3280c9047450f8eac5dca167c 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -96,6 +96,12 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -48,8 +48,8 @@ index cc2f2dbee1d717d54014005ec57e8b864c2a7241..7c2323bf7682254de14ed963e8d57b24 this.owner = igniter; + // Sakura start - configure cannon mechanics + switch (world.sakuraConfig().cannons.mechanics.tntSpread) { -+ case NONE -> this.multiplyDeltaMovement(0, 0, 0); -+ case Y -> this.multiplyDeltaMovement(0, 1, 0); ++ case NONE -> this.setDeltaMovement(0.0, 0.0, 0.0); ++ case Y -> this.setDeltaMovement(this.getDeltaMovement().multiply(0.0, 1.0, 0.0)); + } + // Sakura end - configure cannon mechanics } diff --git a/patches/server/0024-Cache-MovingBlockEntity-collision-shape.patch b/patches/server/0023-Cache-MovingBlockEntity-collision-shape.patch similarity index 100% rename from patches/server/0024-Cache-MovingBlockEntity-collision-shape.patch rename to patches/server/0023-Cache-MovingBlockEntity-collision-shape.patch diff --git a/patches/server/0025-Optimise-TNT-fluid-state.patch b/patches/server/0024-Optimise-TNT-fluid-state.patch similarity index 90% rename from patches/server/0025-Optimise-TNT-fluid-state.patch rename to patches/server/0024-Optimise-TNT-fluid-state.patch index fc4376a..f004714 100644 --- a/patches/server/0025-Optimise-TNT-fluid-state.patch +++ b/patches/server/0024-Optimise-TNT-fluid-state.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimise TNT fluid state diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 78821f286e5b0389d02dddbc1a9d8964a96c0af1..4ff172a89cbbaba96e5c1056f9d9356a4da13499 100644 +index 9cf6d06b190b8236e68b9b49e53b0eefbeb777fe..f005e68998d30ec3ab062e3d562d9d4c2a89dc67 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2152,7 +2152,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -18,7 +18,7 @@ index 78821f286e5b0389d02dddbc1a9d8964a96c0af1..4ff172a89cbbaba96e5c1056f9d9356a if (entity instanceof Boat entityboat) { diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 7c2323bf7682254de14ed963e8d57b24dd55ad5f..860aa93e2ae997beaacf3028e8fa7a8cfafece4e 100644 +index ee5d0dd90ebc2eb3280c9047450f8eac5dca167c..64ebae26c3c58c94b9907a5819cdc09f4f748cf1 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -120,6 +120,21 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak diff --git a/patches/server/0026-Add-maxSearch-to-getEntities.patch b/patches/server/0025-Add-maxSearch-to-getEntities.patch similarity index 98% rename from patches/server/0026-Add-maxSearch-to-getEntities.patch rename to patches/server/0025-Add-maxSearch-to-getEntities.patch index 905aa20..a6778f9 100644 --- a/patches/server/0026-Add-maxSearch-to-getEntities.patch +++ b/patches/server/0025-Add-maxSearch-to-getEntities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add maxSearch to getEntities diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java -index c140e3a73712d2123bc9ed09e9bab25e48c4420e..ee58a65582800be827c8f386ec2d50a2eadad404 100644 +index 8126c4fdbbc586cf3722c6ee2986338de044602e..0a8f593784322454335236d6f0dbb6ec9a9b8332 100644 --- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java +++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java @@ -336,10 +336,16 @@ public final class ChunkEntitySlices { diff --git a/patches/server/0027-Optimise-LivingEntity-pushEntities.patch b/patches/server/0026-Optimise-LivingEntity-pushEntities.patch similarity index 100% rename from patches/server/0027-Optimise-LivingEntity-pushEntities.patch rename to patches/server/0026-Optimise-LivingEntity-pushEntities.patch diff --git a/patches/server/0028-Despawn-falling-blocks-inside-moving-pistons.patch b/patches/server/0027-Despawn-falling-blocks-inside-moving-pistons.patch similarity index 93% rename from patches/server/0028-Despawn-falling-blocks-inside-moving-pistons.patch rename to patches/server/0027-Despawn-falling-blocks-inside-moving-pistons.patch index 3a1eec5..d24d2ed 100644 --- a/patches/server/0028-Despawn-falling-blocks-inside-moving-pistons.patch +++ b/patches/server/0027-Despawn-falling-blocks-inside-moving-pistons.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Despawn falling blocks inside moving pistons diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 388b1985ee9e1d17f41aea7488efa99257f38076..cde44444f88ab5feb481acca1f830d8131f80c2e 100644 +index c1a2345cbf3f2004fc679b1b4b1691cff288c6e4..e7c6074a83be4d93367c7465b74d79b4c00d1afd 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -240,7 +240,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti diff --git a/patches/server/0029-Configure-Entity-Knockback.patch b/patches/server/0028-Configure-Entity-Knockback.patch similarity index 100% rename from patches/server/0029-Configure-Entity-Knockback.patch rename to patches/server/0028-Configure-Entity-Knockback.patch diff --git a/patches/server/0030-Explosion-Durable-Blocks.patch b/patches/server/0029-Explosion-Durable-Blocks.patch similarity index 98% rename from patches/server/0030-Explosion-Durable-Blocks.patch rename to patches/server/0029-Explosion-Durable-Blocks.patch index b5a6ce2..353ffd9 100644 --- a/patches/server/0030-Explosion-Durable-Blocks.patch +++ b/patches/server/0029-Explosion-Durable-Blocks.patch @@ -124,7 +124,7 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5a46b9d27b930870c68dbde93d8731 public String getDescriptionId() { return this.getOrCreateDescriptionId(); diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 315518ec8114b5b02778410c5e12b682e67cdc09..3466ab0e81e0a2b20472c148278425855a6f4d1e 100644 +index f412c39d7f3b95152e76c63a589e298250e9c438..91c8ceccf29bd25eb59a14a7d60c75a92bb016cb 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -144,7 +144,7 @@ public class Explosion { @@ -158,7 +158,7 @@ index 315518ec8114b5b02778410c5e12b682e67cdc09..3466ab0e81e0a2b20472c14827842585 private boolean clipsAnything(final Vec3 from, final Vec3 to, final ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.LazyEntityCollisionContext context, final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, -@@ -840,6 +855,16 @@ public class Explosion { +@@ -834,6 +849,16 @@ public class Explosion { // CraftBukkit start - TNTPrimeEvent BlockState iblockdata = this.level.getBlockState(blockposition); Block block = iblockdata.getBlock(); diff --git a/patches/server/0031-Destroy-Waterlogged-Blocks.patch b/patches/server/0030-Destroy-Waterlogged-Blocks.patch similarity index 92% rename from patches/server/0031-Destroy-Waterlogged-Blocks.patch rename to patches/server/0030-Destroy-Waterlogged-Blocks.patch index 305c73c..15e5d8a 100644 --- a/patches/server/0031-Destroy-Waterlogged-Blocks.patch +++ b/patches/server/0030-Destroy-Waterlogged-Blocks.patch @@ -5,7 +5,7 @@ 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 3466ab0e81e0a2b20472c148278425855a6f4d1e..c81ab05f8b9a3d79ccf6fc89f23140a49a734912 100644 +index 91c8ceccf29bd25eb59a14a7d60c75a92bb016cb..81284ec481ac6cc82d2b1171d1772c107d1a5a0c 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -167,6 +167,11 @@ public class Explosion { diff --git a/patches/server/0032-Cache-Vanillia-and-Eigen-Redstone.patch b/patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch similarity index 100% rename from patches/server/0032-Cache-Vanillia-and-Eigen-Redstone.patch rename to patches/server/0031-Cache-Vanillia-and-Eigen-Redstone.patch diff --git a/patches/server/0033-Falling-Block-Stacking-Restrictions.patch b/patches/server/0032-Falling-Block-Stacking-Restrictions.patch similarity index 93% rename from patches/server/0033-Falling-Block-Stacking-Restrictions.patch rename to patches/server/0032-Falling-Block-Stacking-Restrictions.patch index 43ca9c9..0bc3591 100644 --- a/patches/server/0033-Falling-Block-Stacking-Restrictions.patch +++ b/patches/server/0032-Falling-Block-Stacking-Restrictions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Falling Block Stacking Restrictions diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index cde44444f88ab5feb481acca1f830d8131f80c2e..f4c84e47b673066ee9ddc7a33c5fabdca7b9c563 100644 +index e7c6074a83be4d93367c7465b74d79b4c00d1afd..b5ce3bbce3cc71bab5ec5e9c1c42e7b7a2cdefa3 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -258,7 +258,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti diff --git a/patches/server/0034-Added-list-of-ItemEntity-s-that-ignore-explosions.patch b/patches/server/0033-Added-list-of-ItemEntity-s-that-ignore-explosions.patch similarity index 100% rename from patches/server/0034-Added-list-of-ItemEntity-s-that-ignore-explosions.patch rename to patches/server/0033-Added-list-of-ItemEntity-s-that-ignore-explosions.patch diff --git a/patches/server/0035-Add-option-to-disable-entity-ai.patch b/patches/server/0034-Add-option-to-disable-entity-ai.patch similarity index 100% rename from patches/server/0035-Add-option-to-disable-entity-ai.patch rename to patches/server/0034-Add-option-to-disable-entity-ai.patch diff --git a/patches/server/0036-Consistent-Explosion-Radius.patch b/patches/server/0035-Consistent-Explosion-Radius.patch similarity index 95% rename from patches/server/0036-Consistent-Explosion-Radius.patch rename to patches/server/0035-Consistent-Explosion-Radius.patch index 9ea63c4..f6442fc 100644 --- a/patches/server/0036-Consistent-Explosion-Radius.patch +++ b/patches/server/0035-Consistent-Explosion-Radius.patch @@ -5,7 +5,7 @@ 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 c81ab05f8b9a3d79ccf6fc89f23140a49a734912..f2543d250be7692dcebf29f19e34bd08961a60e0 100644 +index 81284ec481ac6cc82d2b1171d1772c107d1a5a0c..0dd0397036309c881f955b78ba3934e33bcf18fd 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -76,6 +76,7 @@ public class Explosion { diff --git a/patches/server/0037-Remove-spigot-max-tnt-per-tick.patch b/patches/server/0036-Remove-spigot-max-tnt-per-tick.patch similarity index 81% rename from patches/server/0037-Remove-spigot-max-tnt-per-tick.patch rename to patches/server/0036-Remove-spigot-max-tnt-per-tick.patch index 5b80a53..07b371e 100644 --- a/patches/server/0037-Remove-spigot-max-tnt-per-tick.patch +++ b/patches/server/0036-Remove-spigot-max-tnt-per-tick.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Remove spigot max tnt per tick diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 860aa93e2ae997beaacf3028e8fa7a8cfafece4e..7d5fdcf1e0b3cd46e12e1ae102eadb8f198a68c4 100644 +index 64ebae26c3c58c94b9907a5819cdc09f4f748cf1..56ad11f51e3ec395a88fa6d961cf8e99bde6b69f 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -142,7 +142,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak @@ -16,4 +16,4 @@ index 860aa93e2ae997beaacf3028e8fa7a8cfafece4e..7d5fdcf1e0b3cd46e12e1ae102eadb8f + // Sakura - remove max tnt per tick this.handlePortal(); this.applyGravity(); - this.moveBasic(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement + this.moveStripped(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement diff --git a/patches/server/0038-Option-to-configure-entity-water-sensitivity.patch b/patches/server/0037-Option-to-configure-entity-water-sensitivity.patch similarity index 100% rename from patches/server/0038-Option-to-configure-entity-water-sensitivity.patch rename to patches/server/0037-Option-to-configure-entity-water-sensitivity.patch diff --git a/patches/server/0039-Configure-cannon-physics-by-version.patch b/patches/server/0038-Configure-cannon-physics-by-version.patch similarity index 97% rename from patches/server/0039-Configure-cannon-physics-by-version.patch rename to patches/server/0038-Configure-cannon-physics-by-version.patch index 7d48d3d..a9330a7 100644 --- a/patches/server/0039-Configure-cannon-physics-by-version.patch +++ b/patches/server/0038-Configure-cannon-physics-by-version.patch @@ -67,7 +67,7 @@ index 740dc010cfd42941a6f9a2b2c543973429fdbfa3..523cd7cfd5e883cc4758ab9ad13251c3 if (xSmaller && z != 0.0) { z = performAABBCollisionsZ(axisalignedbb, z, aabbs); diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java -index 268db3306a46cbd89bffb51f1bce8446aaed4175..2167156ff6d2dec2daee4052dec87a013663bb6e 100644 +index 709dc51ab4c9e8dad26cf883eebb3902a95bebf8..db6e7f8a8faf38612dc5191001975333a9f2ca59 100644 --- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java @@ -177,9 +177,15 @@ public abstract class SpecialisedExplosion extends Explosion { @@ -88,7 +88,7 @@ index 268db3306a46cbd89bffb51f1bce8446aaed4175..2167156ff6d2dec2daee4052dec87a01 if (distance != 0.0D) { x /= distance; diff --git a/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java -index 605a0e78a19befeec902f3cb8bc84a55679e6904..07079e1d29cbc479dfd91956b8c6c2296959b428 100644 +index 2275999c5b6d9a6af59aa2539663e0edf575539f..43f26e1ec641f9dbaeba96ac3024d5cec1e8ed06 100644 --- a/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java +++ b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java @@ -39,6 +39,13 @@ public final class TntExplosion extends SpecialisedExplosion { @@ -106,7 +106,7 @@ index 605a0e78a19befeec902f3cb8bc84a55679e6904..07079e1d29cbc479dfd91956b8c6c229 protected int getExplosionCount() { return this.cause.getMergeEntityData().getCount(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ff172a89cbbaba96e5c1056f9d9356a4da13499..59635ea26387d3ea4c6bb5a64f32b7c5d9f1a5e2 100644 +index f005e68998d30ec3ab062e3d562d9d4c2a89dc67..b81522bf1f7cc3745f275b1d3eedd80cecc01527 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -385,7 +385,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -252,7 +252,7 @@ index 4ff172a89cbbaba96e5c1056f9d9356a4da13499..59635ea26387d3ea4c6bb5a64f32b7c5 if (this.level().hasChunksAt(blockposition, blockposition1)) { BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index f4c84e47b673066ee9ddc7a33c5fabdca7b9c563..42481aae8b4eb6a3a25fa96f1187774493009e46 100644 +index b5ce3bbce3cc71bab5ec5e9c1c42e7b7a2cdefa3..bb6bd75645d18933f6d1b5c68a33f28e30b5ac2d 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -147,6 +147,8 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti @@ -337,14 +337,14 @@ index f4c84e47b673066ee9ddc7a33c5fabdca7b9c563..42481aae8b4eb6a3a25fa96f11877744 + // Sakura end - physics version api ++this.time; this.applyGravity(); - this.moveBasic(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement + this.moveStripped(MoverType.SELF, this.getDeltaMovement()); // Sakura - optimise cannon entity movement @@ -225,8 +273,15 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti } // Paper end - Configurable falling blocks height nerf this.handlePortal(); + // Sakura start - physics version api + if (this.physics.before(1_12_0)) { -+ this.scaleDeltaMovement(0.98F); ++ this.setDeltaMovement(this.getDeltaMovement().scale(0.98F)); + } if (!this.level().isClientSide && (this.isAlive() || this.forceTickAfterTeleportToDuplicate)) { - BlockPos blockposition = this.blockPosition(); @@ -359,11 +359,11 @@ index f4c84e47b673066ee9ddc7a33c5fabdca7b9c563..42481aae8b4eb6a3a25fa96f11877744 } else { BlockState iblockdata = this.level().getBlockState(blockposition); -- this.multiplyDeltaMovement(0.7D, -0.5D, 0.7D); // Sakura - reduce movement allocations +- this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, -0.5D, 0.7D)); - if (!iblockdata.is(Blocks.MOVING_PISTON)) { + // Sakura start - physics version api + double friction = this.physics.before(1_14_0) ? 0.7F : 0.7D; -+ this.multiplyDeltaMovement(friction, -0.5D, friction); // Sakura - reduce movement allocations ++ this.setDeltaMovement(this.getDeltaMovement().multiply(friction, -0.5D, friction)); + if (!iblockdata.is(Blocks.MOVING_PISTON) && (flag1 || !this.physics.isWithin(1_9_0, 1_12_0) || this.isAbleToStackOnBlock())) { + // Sakura end - physics version api if (!this.cancelDrop) { @@ -373,29 +373,29 @@ index f4c84e47b673066ee9ddc7a33c5fabdca7b9c563..42481aae8b4eb6a3a25fa96f11877744 } } -- this.scaleDeltaMovement(0.98D); // Sakura - reduce movement allocations +- this.setDeltaMovement(this.getDeltaMovement().scale(0.98D)); + // Sakura start - physics version api + if (this.physics.afterOrEqual(1_12_0)) { + double drag = this.physics.before(1_14_0) ? 0.98F : 0.98D; -+ this.scaleDeltaMovement(drag); // Sakura - reduce movement allocations ++ this.setDeltaMovement(this.getDeltaMovement().scale(drag)); + } + // Sakura end - physics version api } } diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java -index 7d5fdcf1e0b3cd46e12e1ae102eadb8f198a68c4..a17491a826accc23fbafcdf07ed66293cd8ae5bf 100644 +index 56ad11f51e3ec395a88fa6d961cf8e99bde6b69f..095727d28139ffcda0da3be83b329ace6e28d551 100644 --- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java +++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java @@ -102,6 +102,13 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak - case Y -> this.multiplyDeltaMovement(0, 1, 0); + case Y -> this.setDeltaMovement(this.getDeltaMovement().multiply(0.0, 1.0, 0.0)); } // Sakura end - configure cannon mechanics + // Sakura start - physics version api + this.physics = world.localConfig().config(this.blockPosition()).physicsVersion; + this.eyeHeight = this.physics.isLegacy() ? 0.49f : this.eyeHeight; + if (this.physics.isLegacy()) { -+ this.multiplyDeltaMovement(0.0, 1.0, 0.0); ++ this.setDeltaMovement(this.getDeltaMovement().multiply(0.0, 1.0, 0.0)); + } + // Sakura end - physics version api } @@ -433,14 +433,14 @@ index 7d5fdcf1e0b3cd46e12e1ae102eadb8f198a68c4..a17491a826accc23fbafcdf07ed66293 return; } // Paper end - Configurable TNT height nerf -- this.scaleDeltaMovement(0.98D); // Sakura - reduce movement allocations +- this.setDeltaMovement(this.getDeltaMovement().scale(0.98D)); + // Sakura start - physics version api + double drag = this.physics.before(1_14_0) ? 0.98F : 0.98D; -+ this.scaleDeltaMovement(drag); // Sakura - reduce movement allocations ++ this.setDeltaMovement(this.getDeltaMovement().scale(drag)); if (this.onGround()) { -- this.multiplyDeltaMovement(0.7D, -0.5D, 0.7D); // Sakura - reduce movement allocations +- this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, -0.5D, 0.7D)); + double friction = this.physics.before(1_14_0) ? 0.7F : 0.7D; -+ this.multiplyDeltaMovement(friction, -0.5D, friction); // Sakura - reduce movement allocations ++ this.setDeltaMovement(this.getDeltaMovement().multiply(friction, -0.5D, friction)); + // Sakura end - physics version api } @@ -474,7 +474,7 @@ index 7d5fdcf1e0b3cd46e12e1ae102eadb8f198a68c4..a17491a826accc23fbafcdf07ed66293 // Paper end - Option to prevent TNT from moving in water } diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index f2543d250be7692dcebf29f19e34bd08961a60e0..bb16b526b512ebb15fedcc85c3f9b24693f7e00b 100644 +index 0dd0397036309c881f955b78ba3934e33bcf18fd..22fa16f67100c68668a99312e38475499acac38a 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -77,6 +77,7 @@ public class Explosion { @@ -539,7 +539,7 @@ index f2543d250be7692dcebf29f19e34bd08961a60e0..bb16b526b512ebb15fedcc85c3f9b246 if (d11 != 0.0D) { d8 /= d11; -@@ -1023,7 +1043,7 @@ public class Explosion { +@@ -1017,7 +1037,7 @@ public class Explosion { // Sakura start - replace density cache float blockDensity = this.level.densityCache.getDensity(vec3d, entity); if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) { @@ -548,7 +548,7 @@ index f2543d250be7692dcebf29f19e34bd08961a60e0..bb16b526b512ebb15fedcc85c3f9b246 this.level.densityCache.putDensity(vec3d, entity, blockDensity); // Sakura end - replace density cache } -@@ -1031,6 +1051,17 @@ public class Explosion { +@@ -1025,6 +1045,17 @@ public class Explosion { return blockDensity; } @@ -1215,7 +1215,7 @@ index d555ad1dd2f648b84920eceec6cc99e8801334b3..b2ecc615379856f661ba87bdeb28f75a } diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 9dda53434f72a14567fc77275726d67183f13317..70ff7e116e83ab3d4aaa39d2644a9ef3e5a89e95 100644 +index 1c82ff348769655f20ba4fde7914a326e072afce..700226cc972693336987184c761c0c8808fd77ad 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -514,7 +514,7 @@ public abstract class FlowingFluid extends Fluid { diff --git a/patches/server/0040-Allow-water-in-the-nether.patch b/patches/server/0039-Allow-water-in-the-nether.patch similarity index 100% rename from patches/server/0040-Allow-water-in-the-nether.patch rename to patches/server/0039-Allow-water-in-the-nether.patch diff --git a/patches/server/0041-Configure-concrete-solidifying-in-water.patch b/patches/server/0040-Configure-concrete-solidifying-in-water.patch similarity index 93% rename from patches/server/0041-Configure-concrete-solidifying-in-water.patch rename to patches/server/0040-Configure-concrete-solidifying-in-water.patch index e1da42e..ae1e1b9 100644 --- a/patches/server/0041-Configure-concrete-solidifying-in-water.patch +++ b/patches/server/0040-Configure-concrete-solidifying-in-water.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configure concrete solidifying in water diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 42481aae8b4eb6a3a25fa96f1187774493009e46..7a130dbd04b24b2905fbc2a6f9303aae7fd61fd9 100644 +index bb6bd75645d18933f6d1b5c68a33f28e30b5ac2d..89bdc1db40227ead1675645ec7711874a75ca9ca 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -282,7 +282,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti diff --git a/patches/server/0042-Option-for-fast-nether-dimension-lava.patch b/patches/server/0041-Option-for-fast-nether-dimension-lava.patch similarity index 100% rename from patches/server/0042-Option-for-fast-nether-dimension-lava.patch rename to patches/server/0041-Option-for-fast-nether-dimension-lava.patch diff --git a/patches/server/0043-Allow-explosions-to-destroy-lava.patch b/patches/server/0042-Allow-explosions-to-destroy-lava.patch similarity index 91% rename from patches/server/0043-Allow-explosions-to-destroy-lava.patch rename to patches/server/0042-Allow-explosions-to-destroy-lava.patch index 39a0be8..fa231b4 100644 --- a/patches/server/0043-Allow-explosions-to-destroy-lava.patch +++ b/patches/server/0042-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 bb16b526b512ebb15fedcc85c3f9b24693f7e00b..20bbf3f6f93178113170821700b5910c4a420878 100644 +index 22fa16f67100c68668a99312e38475499acac38a..6fbdbaa399c9381ea6906e7af7a7a29a4adb1666 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -174,6 +174,11 @@ public class Explosion { diff --git a/patches/server/0044-Disable-bubble-columns-affecting-cannon-entities.patch b/patches/server/0043-Disable-bubble-columns-affecting-cannon-entities.patch similarity index 100% rename from patches/server/0044-Disable-bubble-columns-affecting-cannon-entities.patch rename to patches/server/0043-Disable-bubble-columns-affecting-cannon-entities.patch diff --git a/patches/server/0045-Treat-solid-blocks-as-full-when-moving-fast.patch b/patches/server/0044-Treat-solid-blocks-as-full-when-moving-fast.patch similarity index 94% rename from patches/server/0045-Treat-solid-blocks-as-full-when-moving-fast.patch rename to patches/server/0044-Treat-solid-blocks-as-full-when-moving-fast.patch index d25dd57..a6f09f5 100644 --- a/patches/server/0045-Treat-solid-blocks-as-full-when-moving-fast.patch +++ b/patches/server/0044-Treat-solid-blocks-as-full-when-moving-fast.patch @@ -47,17 +47,16 @@ index 523cd7cfd5e883cc4758ab9ad13251c3c38584cb..bc70364df17b9e893c1c774fed619999 blockCollision = blockData.getCollisionShape(world, mutablePos, collisionShape); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 59635ea26387d3ea4c6bb5a64f32b7c5d9f1a5e2..85f1d44ba59d348d9c364ed684cc5df6a1eada29 100644 +index b81522bf1f7cc3745f275b1d3eedd80cecc01527..0886a33b036518083b86ca552521ef388d7055dd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -565,6 +565,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -565,6 +565,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess flags |= ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.COLLISION_FLAG_ADD_TICKET; } + // Sakura start - treat solid blocks as full when moving fast + if (this.level().sakuraConfig().cannons.treatAllBlocksAsFullWhenMoving && (this.isPrimedTNT || this.isFallingBlock)) { -+ this.syncDeltaMovement(); -+ double horizontalMovementSqr = this.movementX*this.movementX + this.movementZ*this.movementZ; ++ double horizontalMovementSqr = this.getDeltaMovement().horizontalDistanceSqr(); + if (horizontalMovementSqr > Math.pow(this.level().sakuraConfig().cannons.treatAllBlocksAsFullWhenMovingFasterThan, 2.0)) { + flags |= ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.COLLISION_FLAG_FULL_BLOCKS; + } diff --git a/patches/server/0046-Add-redstone-implementation-API.patch b/patches/server/0045-Add-redstone-implementation-API.patch similarity index 100% rename from patches/server/0046-Add-redstone-implementation-API.patch rename to patches/server/0045-Add-redstone-implementation-API.patch diff --git a/patches/server/0047-Reduce-entity-tracker-player-updates.patch b/patches/server/0046-Reduce-entity-tracker-player-updates.patch similarity index 100% rename from patches/server/0047-Reduce-entity-tracker-player-updates.patch rename to patches/server/0046-Reduce-entity-tracker-player-updates.patch diff --git a/patches/server/0048-Add-option-for-legacy-lava-block-formation.patch b/patches/server/0047-Add-option-for-legacy-lava-block-formation.patch similarity index 100% rename from patches/server/0048-Add-option-for-legacy-lava-block-formation.patch rename to patches/server/0047-Add-option-for-legacy-lava-block-formation.patch diff --git a/patches/server/0049-Configure-mob-spawner-defaults.patch b/patches/server/0048-Configure-mob-spawner-defaults.patch similarity index 100% rename from patches/server/0049-Configure-mob-spawner-defaults.patch rename to patches/server/0048-Configure-mob-spawner-defaults.patch diff --git a/patches/server/0050-Allow-disabling-random-dispenser-item-selection.patch b/patches/server/0049-Allow-disabling-random-dispenser-item-selection.patch similarity index 100% rename from patches/server/0050-Allow-disabling-random-dispenser-item-selection.patch rename to patches/server/0049-Allow-disabling-random-dispenser-item-selection.patch diff --git a/patches/server/0051-Add-instant-mob-death-animation.patch b/patches/server/0050-Add-instant-mob-death-animation.patch similarity index 100% rename from patches/server/0051-Add-instant-mob-death-animation.patch rename to patches/server/0050-Add-instant-mob-death-animation.patch diff --git a/patches/server/0052-Configure-fluids-breaking-redstone.patch b/patches/server/0051-Configure-fluids-breaking-redstone.patch similarity index 93% rename from patches/server/0052-Configure-fluids-breaking-redstone.patch rename to patches/server/0051-Configure-fluids-breaking-redstone.patch index 149889a..eed9f0e 100644 --- a/patches/server/0052-Configure-fluids-breaking-redstone.patch +++ b/patches/server/0051-Configure-fluids-breaking-redstone.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configure fluids breaking redstone diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 70ff7e116e83ab3d4aaa39d2644a9ef3e5a89e95..eb7333d2740a666b2302ff3200020dddf3985532 100644 +index 700226cc972693336987184c761c0c8808fd77ad..626b3c04547ca253b254604c8bf5fa004eed806a 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -466,6 +466,10 @@ public abstract class FlowingFluid extends Fluid { diff --git a/patches/server/0053-Option-to-disable-explosions-hurting-players.patch b/patches/server/0052-Option-to-disable-explosions-hurting-players.patch similarity index 100% rename from patches/server/0053-Option-to-disable-explosions-hurting-players.patch rename to patches/server/0052-Option-to-disable-explosions-hurting-players.patch diff --git a/patches/server/0054-Iron-golems-take-fall-damage.patch b/patches/server/0053-Iron-golems-take-fall-damage.patch similarity index 100% rename from patches/server/0054-Iron-golems-take-fall-damage.patch rename to patches/server/0053-Iron-golems-take-fall-damage.patch diff --git a/patches/server/0055-Add-explosions-dropping-items-config.patch b/patches/server/0054-Add-explosions-dropping-items-config.patch similarity index 86% rename from patches/server/0055-Add-explosions-dropping-items-config.patch rename to patches/server/0054-Add-explosions-dropping-items-config.patch index 48c990a..255a810 100644 --- a/patches/server/0055-Add-explosions-dropping-items-config.patch +++ b/patches/server/0054-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 20bbf3f6f93178113170821700b5910c4a420878..0c2650da2f0288318efd9428bdc2e62918dc4d23 100644 +index 6fbdbaa399c9381ea6906e7af7a7a29a4adb1666..cfcbbea230982cfa0f496eebcdc660c859650199 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -917,6 +917,11 @@ public class Explosion { +@@ -911,6 +911,11 @@ public class Explosion { this.level.densityCache.clear(-1); } // Sakura end - explosion density cache diff --git a/patches/server/0056-Optimise-check-inside-blocks-and-fluids.patch b/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch similarity index 94% rename from patches/server/0056-Optimise-check-inside-blocks-and-fluids.patch rename to patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch index 121247c..b160691 100644 --- a/patches/server/0056-Optimise-check-inside-blocks-and-fluids.patch +++ b/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise check inside blocks and fluids diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 85f1d44ba59d348d9c364ed684cc5df6a1eada29..012dec6d31e3932ed4a50e8c5c64a9e7751690cd 100644 +index 0886a33b036518083b86ca552521ef388d7055dd..cb3202e3cc4f87f606d8b2eb2a7a59bacae2077d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1924,18 +1924,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1923,18 +1923,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess BlockPos blockposition1 = BlockPos.containing(axisalignedbb.maxX - offset, axisalignedbb.maxY - offset, axisalignedbb.maxZ - offset); // Sakura end - physics version api @@ -50,7 +50,7 @@ index 85f1d44ba59d348d9c364ed684cc5df6a1eada29..012dec6d31e3932ed4a50e8c5c64a9e7 try { iblockdata.entityInside(this.level(), blockposition_mutableblockposition, this); -@@ -4717,7 +4736,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4711,7 +4730,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -59,7 +59,7 @@ index 85f1d44ba59d348d9c364ed684cc5df6a1eada29..012dec6d31e3932ed4a50e8c5c64a9e7 return false; } else { AABB axisalignedbb = this.getBoundingBox().deflate(0.001D); -@@ -4734,11 +4753,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4728,11 +4747,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0057-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch b/patches/server/0056-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch similarity index 100% rename from patches/server/0057-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch rename to patches/server/0056-Avoid-searching-for-lava-if-throttled-water-flow-spe.patch diff --git a/patches/server/0058-Calculate-biome-noise-once-per-chunk-section.patch b/patches/server/0057-Calculate-biome-noise-once-per-chunk-section.patch similarity index 100% rename from patches/server/0058-Calculate-biome-noise-once-per-chunk-section.patch rename to patches/server/0057-Calculate-biome-noise-once-per-chunk-section.patch diff --git a/patches/server/0059-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch b/patches/server/0058-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch similarity index 95% rename from patches/server/0059-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch rename to patches/server/0058-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch index 2ae666d..9baf63a 100644 --- a/patches/server/0059-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch +++ b/patches/server/0058-Fix-doEntityDrops-gamerule-preventing-falling-blocks.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix doEntityDrops gamerule preventing falling blocks from diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 7a130dbd04b24b2905fbc2a6f9303aae7fd61fd9..ad554a9361d6b27cc9f67f72cb7473622a53be1a 100644 +index 89bdc1db40227ead1675645ec7711874a75ca9ca..00f35010f927cfbe7e41131b1404b7ca92ebf6bd 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -357,10 +357,14 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti diff --git a/patches/server/0060-Add-entity-travel-distance-limits.patch b/patches/server/0059-Add-entity-travel-distance-limits.patch similarity index 92% rename from patches/server/0060-Add-entity-travel-distance-limits.patch rename to patches/server/0059-Add-entity-travel-distance-limits.patch index bacb29b..f453165 100644 --- a/patches/server/0060-Add-entity-travel-distance-limits.patch +++ b/patches/server/0059-Add-entity-travel-distance-limits.patch @@ -21,10 +21,10 @@ index a7ac1afc9db4daba86a492aea3a528806605231b..21b0c3f32e1a3837f040390514a30756 } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 012dec6d31e3932ed4a50e8c5c64a9e7751690cd..b5dc81e3fb62e82b3524ab812d4d194cb5fe101e 100644 +index cb3202e3cc4f87f606d8b2eb2a7a59bacae2077d..e8914a99346a4551888ef0ad2633cf68a364d891 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -621,6 +621,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -620,6 +620,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.physics; } // Sakura end - physics version api @@ -44,7 +44,7 @@ index 012dec6d31e3932ed4a50e8c5c64a9e7751690cd..b5dc81e3fb62e82b3524ab812d4d194c public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -670,6 +683,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -669,6 +682,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.entityData = datawatcher_a.build(); this.setPos(0.0D, 0.0D, 0.0D); this.eyeHeight = this.dimensions.eyeHeight(); diff --git a/patches/server/0061-Configure-potion-speed-and-breaking-inside-entities.patch b/patches/server/0060-Configure-potion-speed-and-breaking-inside-entities.patch similarity index 100% rename from patches/server/0061-Configure-potion-speed-and-breaking-inside-entities.patch rename to patches/server/0060-Configure-potion-speed-and-breaking-inside-entities.patch diff --git a/patches/server/0062-Add-outline-colliison-to-enderpearls.patch b/patches/server/0061-Add-outline-colliison-to-enderpearls.patch similarity index 100% rename from patches/server/0062-Add-outline-colliison-to-enderpearls.patch rename to patches/server/0061-Add-outline-colliison-to-enderpearls.patch diff --git a/patches/server/0063-Disable-player-poses-shrinking-collision-box.patch b/patches/server/0062-Disable-player-poses-shrinking-collision-box.patch similarity index 100% rename from patches/server/0063-Disable-player-poses-shrinking-collision-box.patch rename to patches/server/0062-Disable-player-poses-shrinking-collision-box.patch diff --git a/patches/server/0064-Mob-spawner-behaviour.patch b/patches/server/0063-Mob-spawner-behaviour.patch similarity index 100% rename from patches/server/0064-Mob-spawner-behaviour.patch rename to patches/server/0063-Mob-spawner-behaviour.patch diff --git a/patches/server/0065-Use-random-chance-for-crop-growth-instead-of-age.patch b/patches/server/0064-Use-random-chance-for-crop-growth-instead-of-age.patch similarity index 100% rename from patches/server/0065-Use-random-chance-for-crop-growth-instead-of-age.patch rename to patches/server/0064-Use-random-chance-for-crop-growth-instead-of-age.patch diff --git a/patches/server/0066-Protect-block-shapes-against-plugins.patch b/patches/server/0065-Protect-block-shapes-against-plugins.patch similarity index 100% rename from patches/server/0066-Protect-block-shapes-against-plugins.patch rename to patches/server/0065-Protect-block-shapes-against-plugins.patch diff --git a/patches/server/0067-Legacy-player-combat-mechanics.patch b/patches/server/0066-Legacy-player-combat-mechanics.patch similarity index 100% rename from patches/server/0067-Legacy-player-combat-mechanics.patch rename to patches/server/0066-Legacy-player-combat-mechanics.patch diff --git a/patches/server/0068-Allow-disabling-sweep-attacks.patch b/patches/server/0067-Allow-disabling-sweep-attacks.patch similarity index 100% rename from patches/server/0068-Allow-disabling-sweep-attacks.patch rename to patches/server/0067-Allow-disabling-sweep-attacks.patch diff --git a/patches/server/0069-Change-shields-to-reduce-damage.patch b/patches/server/0068-Change-shields-to-reduce-damage.patch similarity index 100% rename from patches/server/0069-Change-shields-to-reduce-damage.patch rename to patches/server/0068-Change-shields-to-reduce-damage.patch diff --git a/patches/server/0070-Old-enchanted-golden-apples.patch b/patches/server/0069-Old-enchanted-golden-apples.patch similarity index 100% rename from patches/server/0070-Old-enchanted-golden-apples.patch rename to patches/server/0069-Old-enchanted-golden-apples.patch diff --git a/patches/server/0071-Configure-fast-health-regen.patch b/patches/server/0070-Configure-fast-health-regen.patch similarity index 100% rename from patches/server/0071-Configure-fast-health-regen.patch rename to patches/server/0070-Configure-fast-health-regen.patch diff --git a/patches/server/0072-Add-option-for-fishing-hooks-pulling-entities.patch b/patches/server/0071-Add-option-for-fishing-hooks-pulling-entities.patch similarity index 100% rename from patches/server/0072-Add-option-for-fishing-hooks-pulling-entities.patch rename to patches/server/0071-Add-option-for-fishing-hooks-pulling-entities.patch diff --git a/patches/server/0073-Old-combat-sounds-and-particle-effects.patch b/patches/server/0072-Old-combat-sounds-and-particle-effects.patch similarity index 100% rename from patches/server/0073-Old-combat-sounds-and-particle-effects.patch rename to patches/server/0072-Old-combat-sounds-and-particle-effects.patch diff --git a/patches/server/0074-Protect-scaffolding-from-creepers.patch b/patches/server/0073-Protect-scaffolding-from-creepers.patch similarity index 92% rename from patches/server/0074-Protect-scaffolding-from-creepers.patch rename to patches/server/0073-Protect-scaffolding-from-creepers.patch index 5421106..880b69f 100644 --- a/patches/server/0074-Protect-scaffolding-from-creepers.patch +++ b/patches/server/0073-Protect-scaffolding-from-creepers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Protect scaffolding from creepers diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 0c2650da2f0288318efd9428bdc2e62918dc4d23..8b657d566445a7a2bda5f9e41f7e8633ce03abd1 100644 +index cfcbbea230982cfa0f496eebcdc660c859650199..5d0db6c87467b6b2bda37b2e3cf5eb76573069a6 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -179,6 +179,11 @@ public class Explosion { diff --git a/patches/server/0075-Entity-tracking-range-modifier.patch b/patches/server/0074-Entity-tracking-range-modifier.patch similarity index 100% rename from patches/server/0075-Entity-tracking-range-modifier.patch rename to patches/server/0074-Entity-tracking-range-modifier.patch