From 99950f433c90ecaadbc740c8fefa0e89a03d62e0 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Mon, 17 Feb 2025 01:49:45 +0000 Subject: [PATCH] Remove stuck speed multiplier getter --- .../0006-Store-Entity-Data-State.patch | 8 ++------ .../features/0007-Merge-Cannon-Entities.patch | 6 +++--- ...0011-Optimise-cannon-entity-movement.patch | 6 +++--- .../0016-Configure-cannon-physics.patch | 20 +++++++++---------- ...21-Add-entity-travel-distance-limits.patch | 6 +++--- ...e-left-shooting-and-adjusting-limits.patch | 8 ++++---- ...ck-inside-blocks-and-traverse-blocks.patch | 6 +++--- .../me/samsuik/sakura/entity/EntityState.java | 2 +- 8 files changed, 29 insertions(+), 33 deletions(-) diff --git a/sakura-server/minecraft-patches/features/0006-Store-Entity-Data-State.patch b/sakura-server/minecraft-patches/features/0006-Store-Entity-Data-State.patch index 40681cb..d36069b 100644 --- a/sakura-server/minecraft-patches/features/0006-Store-Entity-Data-State.patch +++ b/sakura-server/minecraft-patches/features/0006-Store-Entity-Data-State.patch @@ -5,20 +5,16 @@ Subject: [PATCH] Store Entity Data/State diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 5e48d84c5ab335975f6533472aec1e1789375bbf..30e6492e60fc7b5767d09574304ad3a3977e862a 100644 +index 5e48d84c5ab335975f6533472aec1e1789375bbf..597a776ef357fb1a12722ed64bf09bfbc6619265 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -540,6 +540,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -540,6 +540,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return flags; } // Sakura end - load chunks on movement + // Sakura start - store entity data/state + private me.samsuik.sakura.entity.EntityState entityState = null; + -+ public final Vec3 stuckSpeedMultiplier() { -+ return this.stuckSpeedMultiplier; -+ } -+ + public final void storeEntityState() { + this.entityState = me.samsuik.sakura.entity.EntityState.of(this); + } diff --git a/sakura-server/minecraft-patches/features/0007-Merge-Cannon-Entities.patch b/sakura-server/minecraft-patches/features/0007-Merge-Cannon-Entities.patch index 798aaa9..a6f8d94 100644 --- a/sakura-server/minecraft-patches/features/0007-Merge-Cannon-Entities.patch +++ b/sakura-server/minecraft-patches/features/0007-Merge-Cannon-Entities.patch @@ -41,10 +41,10 @@ index 0604b5075122494ec82b4e1b458645958b93c806..8fec4a46a9cf13d832306bd87a4fe17b this.guardEntityTick(this::tickNonPassenger, entity); profilerFiller.pop(); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 30e6492e60fc7b5767d09574304ad3a3977e862a..9844928c361cfc31d618186ecd10fba5975bbb7d 100644 +index 597a776ef357fb1a12722ed64bf09bfbc6619265..8ef66c8b9fae500049b778232ca4016092a9a9b3 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -559,6 +559,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -555,6 +555,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return to.entityState() != null && to.entityState().comparePositionAndMotion(this); } // Sakura end - store entity data/state @@ -69,7 +69,7 @@ index 30e6492e60fc7b5767d09574304ad3a3977e862a..9844928c361cfc31d618186ecd10fba5 public Entity(EntityType entityType, Level level) { this.type = entityType; -@@ -4960,6 +4978,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4956,6 +4974,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(removalReason); this.onRemoval(removalReason); diff --git a/sakura-server/minecraft-patches/features/0011-Optimise-cannon-entity-movement.patch b/sakura-server/minecraft-patches/features/0011-Optimise-cannon-entity-movement.patch index 40dffc6..4700866 100644 --- a/sakura-server/minecraft-patches/features/0011-Optimise-cannon-entity-movement.patch +++ b/sakura-server/minecraft-patches/features/0011-Optimise-cannon-entity-movement.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise cannon entity movement diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 9844928c361cfc31d618186ecd10fba5975bbb7d..6d38f9437088984cc06a54823c0dae125f6bfafa 100644 +index 8ef66c8b9fae500049b778232ca4016092a9a9b3..2a73d2b49fff20abd282dd7f4ca0b4ee81f5a676 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -1183,7 +1183,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1179,7 +1179,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess Vec3 vec3 = this.collide(movement); double d = vec3.lengthSqr(); if (d > 1.0E-7 || movement.lengthSqr() - d < 1.0E-7) { @@ -17,7 +17,7 @@ index 9844928c361cfc31d618186ecd10fba5975bbb7d..6d38f9437088984cc06a54823c0dae12 BlockHitResult blockHitResult = this.level() .clip( new ClipContext(this.position(), this.position().add(vec3), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this) -@@ -1485,6 +1485,131 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1481,6 +1481,131 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return distance; } diff --git a/sakura-server/minecraft-patches/features/0016-Configure-cannon-physics.patch b/sakura-server/minecraft-patches/features/0016-Configure-cannon-physics.patch index d6321bb..083cffa 100644 --- a/sakura-server/minecraft-patches/features/0016-Configure-cannon-physics.patch +++ b/sakura-server/minecraft-patches/features/0016-Configure-cannon-physics.patch @@ -67,10 +67,10 @@ index 651a45b795818bd7b1364b95c52570fd99dd35e4..47c8ed946cb2ad81a4469daf60dabc40 if (xSmaller && z != 0.0) { z = performAABBCollisionsZ(axisalignedbb, z, aabbs); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0f45098e4 100644 +index 2a73d2b49fff20abd282dd7f4ca0b4ee81f5a676..12f3b0b555ab3f038d9ae8e49c340e95c874fed4 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -577,6 +577,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -573,6 +573,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } // Sakura end - merge cannon entities @@ -84,7 +84,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 public Entity(EntityType entityType, Level level) { this.type = entityType; -@@ -1089,7 +1096,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1085,7 +1092,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) { @@ -93,7 +93,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 AABB boundingBox = this.getBoundingBox(); AABB aabb = new AABB(boundingBox.minX, boundingBox.minY - 1.0E-6, boundingBox.minZ, boundingBox.maxX, boundingBox.minY, boundingBox.maxZ); Optional optional = this.level.findSupportingBlock(this, aabb); -@@ -1155,7 +1162,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1151,7 +1158,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { this.wasOnFire = this.isOnFire(); @@ -105,7 +105,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 this.activatedTick = Math.max(this.activatedTick, MinecraftServer.currentTick + 20); // Paper - EAR 2 this.activatedImmunityTick = Math.max(this.activatedImmunityTick, MinecraftServer.currentTick + 20); // Paper - EAR 2 movement = this.limitPistonMovement(movement); -@@ -1182,8 +1192,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1178,8 +1188,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess movement = this.maybeBackOffFromEdge(movement, type); Vec3 vec3 = this.collide(movement); double d = vec3.lengthSqr(); @@ -119,7 +119,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 BlockHitResult blockHitResult = this.level() .clip( new ClipContext(this.position(), this.position().add(vec3), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this) -@@ -1224,6 +1237,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1220,6 +1233,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } else { if (this.horizontalCollision) { Vec3 deltaMovement = this.getDeltaMovement(); @@ -132,7 +132,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 this.setDeltaMovement(flag ? 0.0 : deltaMovement.x, deltaMovement.y, flag1 ? 0.0 : deltaMovement.z); } -@@ -1514,7 +1533,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1510,7 +1529,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z); } this.collectCollisions(bb, voxelList, bbList, ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.COLLISION_FLAG_CHECK_BORDER); @@ -141,7 +141,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 } private Vec3 collideAxisScan(Vec3 movement, AABB currBoundingBox, List voxelList, List bbList) { -@@ -1522,7 +1541,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1518,7 +1537,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess double y = movement.y; double z = movement.z; @@ -153,7 +153,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 if (y != 0.0) { y = this.scanY(currBoundingBox, y, voxelList, bbList); -@@ -1644,7 +1666,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1640,7 +1662,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.COLLISION_FLAG_CHECK_BORDER | this.getExtraCollisionFlags(), null // Sakura - load chunks on movement ); potentialCollisionsBB.addAll(entityAABBs); @@ -162,7 +162,7 @@ index 6d38f9437088984cc06a54823c0dae125f6bfafa..661f913bfa8a8bd0c4929a79745ea2e0 final boolean collidedX = collided.x != movement.x; final boolean collidedY = collided.y != movement.y; -@@ -1803,9 +1825,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1799,9 +1821,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess for (Entity.Movement movement : movements) { Vec3 vec3 = movement.from(); Vec3 vec31 = movement.to(); diff --git a/sakura-server/minecraft-patches/features/0021-Add-entity-travel-distance-limits.patch b/sakura-server/minecraft-patches/features/0021-Add-entity-travel-distance-limits.patch index 981ff89..46573e7 100644 --- a/sakura-server/minecraft-patches/features/0021-Add-entity-travel-distance-limits.patch +++ b/sakura-server/minecraft-patches/features/0021-Add-entity-travel-distance-limits.patch @@ -21,10 +21,10 @@ index 88b377a53159a473a43bdf06b78bfd3d4a2362a1..539c2e465d4c89584b5bccaad18fadc4 } else {entity.inactiveTick();} // Paper - EAR 2 profilerFiller.pop(); diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index a80fd65ea35590a992c6340a2f42f578afdaf1ab..8c50cd2cd5b2c1ae5238be359c52b13948472cf7 100644 +index b894eb71fb9056f39d9d350b6ab78ce018ab4ef8..92be2dcb6411004ac7e58609224848e9d80f2b95 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -592,6 +592,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -588,6 +588,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.physics; } // Sakura end - configure cannon physics @@ -44,7 +44,7 @@ index a80fd65ea35590a992c6340a2f42f578afdaf1ab..8c50cd2cd5b2c1ae5238be359c52b139 public Entity(EntityType entityType, Level level) { this.type = entityType; -@@ -621,6 +634,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -617,6 +630,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(0.0, 0.0, 0.0); this.eyeHeight = this.dimensions.eyeHeight(); this.despawnTime = type == EntityType.PLAYER ? -1 : level.paperConfig().entities.spawning.despawnTime.getOrDefault(type, io.papermc.paper.configuration.type.number.IntOr.Disabled.DISABLED).or(-1); // Paper - entity despawn time limit diff --git a/sakura-server/minecraft-patches/features/0023-Configurable-left-shooting-and-adjusting-limits.patch b/sakura-server/minecraft-patches/features/0023-Configurable-left-shooting-and-adjusting-limits.patch index 0290bc4..226da44 100644 --- a/sakura-server/minecraft-patches/features/0023-Configurable-left-shooting-and-adjusting-limits.patch +++ b/sakura-server/minecraft-patches/features/0023-Configurable-left-shooting-and-adjusting-limits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable left shooting and adjusting limits diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 8c50cd2cd5b2c1ae5238be359c52b13948472cf7..5cf439ad2d823302f306f179151caffa131f7b89 100644 +index 92be2dcb6411004ac7e58609224848e9d80f2b95..371ca65ee7547ccd588ebdfae67588a31efc1bb3 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -605,6 +605,46 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -601,6 +601,46 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Math.max(x, z) >= this.travelDistanceLimit; } // Sakura end - entity travel distance limits @@ -55,7 +55,7 @@ index 8c50cd2cd5b2c1ae5238be359c52b13948472cf7..5cf439ad2d823302f306f179151caffa public Entity(EntityType entityType, Level level) { this.type = entityType; -@@ -1576,6 +1616,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1572,6 +1612,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (xSmaller && z != 0.0) { @@ -63,7 +63,7 @@ index 8c50cd2cd5b2c1ae5238be359c52b13948472cf7..5cf439ad2d823302f306f179151caffa z = this.scanZ(currBoundingBox, z, voxelList, bbList); if (z != 0.0) { currBoundingBox = ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.offsetZ(currBoundingBox, z); -@@ -1583,6 +1624,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1579,6 +1620,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (x != 0.0) { diff --git a/sakura-server/minecraft-patches/features/0026-Optimise-check-inside-blocks-and-traverse-blocks.patch b/sakura-server/minecraft-patches/features/0026-Optimise-check-inside-blocks-and-traverse-blocks.patch index 7f07fd3..ffdde98 100644 --- a/sakura-server/minecraft-patches/features/0026-Optimise-check-inside-blocks-and-traverse-blocks.patch +++ b/sakura-server/minecraft-patches/features/0026-Optimise-check-inside-blocks-and-traverse-blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise check inside blocks and traverse blocks diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 5cf439ad2d823302f306f179151caffa131f7b89..52125b7e0febdc587ae3548a2d123d351207cb4e 100644 +index 371ca65ee7547ccd588ebdfae67588a31efc1bb3..70bd9e730dbdbb7e99764be0e362b2e7a77f182a 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -1889,6 +1889,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1885,6 +1885,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private void checkInsideBlocks(List movements, Set blocksInside) { if (this.isAffectedByBlocks()) { LongSet set = this.visitedBlocks; @@ -20,7 +20,7 @@ index 5cf439ad2d823302f306f179151caffa131f7b89..52125b7e0febdc587ae3548a2d123d35 for (Entity.Movement movement : movements) { Vec3 vec3 = movement.from(); -@@ -1908,7 +1913,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1904,7 +1909,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return; } diff --git a/sakura-server/src/main/java/me/samsuik/sakura/entity/EntityState.java b/sakura-server/src/main/java/me/samsuik/sakura/entity/EntityState.java index aeb5f12..fa73f30 100644 --- a/sakura-server/src/main/java/me/samsuik/sakura/entity/EntityState.java +++ b/sakura-server/src/main/java/me/samsuik/sakura/entity/EntityState.java @@ -14,7 +14,7 @@ public record EntityState(Vec3 position, Vec3 momentum, AABB bb, Vec3 stuckSpeed public static EntityState of(Entity entity) { return new EntityState( entity.position(), entity.getDeltaMovement(), entity.getBoundingBox(), - entity.stuckSpeedMultiplier(), entity.mainSupportingBlockPos, + entity.stuckSpeedMultiplier, entity.mainSupportingBlockPos, entity.onGround(), entity.fallDistance ); }