9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00
Files
Leaf/leaf-server/minecraft-patches/features/0270-optimize-waypoint.patch
Dreeam ccf2f9c0d2 Updated Upstream (Paper/Purpur)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@a9399451 Fixup sendAllDataToRemote calls
PaperMC/Paper@cb47e018 Remove more dead code, fix pre-existing desync when cancelling and closing container
PaperMC/Paper@40764534 Specify the class loader when loading services (#12829)
PaperMC/Paper@1bf6364b Update Mache for horse decompile fix
PaperMC/Paper@76fb5060 Add vanilla error message to precondition for DialogBaseImpl (#12831)

Purpur Changes:
PurpurMC/Purpur@5b26bab8 Updated Upstream (Paper)
PurpurMC/Purpur@8734844b sigh...
PurpurMC/Purpur@09ea9cb9 fix mobs not burning in daylight (#1689)
PurpurMC/Purpur@4d5a8e6e Updated Upstream (Paper)
PurpurMC/Purpur@7dbe4153 Add support for "/chase", a disabled Minecraft command. (#1690)
PurpurMC/Purpur@11c030a8 Updated Upstream (Paper)
2025-07-12 18:14:29 +08:00

38 lines
2.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: hayanesuru <hayanesuru@outlook.jp>
Date: Fri, 4 Jul 2025 03:13:33 +0900
Subject: [PATCH] optimize waypoint
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index bdac75d6c9805af0363d2d183330318ca2ff82da..2b29b0e5334ad9f8b3768e9b198565f093c6d3a4 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -5144,6 +5144,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return;
}
// Paper end - Block invalid positions and bounding box
+ boolean blockUpdated; // Leaf - optimize waypoint
if (this.position.x != x || this.position.y != y || this.position.z != z) {
synchronized (this.posLock) { // Paper - detailed watchdog information
this.position = new Vec3(x, y, z);
@@ -5151,7 +5152,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
int floor = Mth.floor(x);
int floor1 = Mth.floor(y);
int floor2 = Mth.floor(z);
- if (floor != this.blockPosition.getX() || floor1 != this.blockPosition.getY() || floor2 != this.blockPosition.getZ()) {
+ blockUpdated = floor != this.blockPosition.getX() || floor1 != this.blockPosition.getY() || floor2 != this.blockPosition.getZ(); // Leaf - optimize waypoint
+ if (blockUpdated) { // Leaf - optimize waypoint
this.blockPosition = new BlockPos(floor, floor1, floor2);
this.inBlockState = null;
if (SectionPos.blockToSectionCoord(floor) != this.chunkPosition.x || SectionPos.blockToSectionCoord(floor2) != this.chunkPosition.z) {
@@ -5160,7 +5162,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
this.levelCallback.onMove();
- if (!this.firstTick && this.level instanceof ServerLevel serverLevel && !this.isRemoved()) {
+ if ((!org.dreeam.leaf.config.modules.opt.OptimizeWaypoint.enabled || blockUpdated) && !this.firstTick && this.level instanceof ServerLevel serverLevel && !this.isRemoved()) { // Leaf - optimize waypoint
if (this instanceof WaypointTransmitter waypointTransmitter && waypointTransmitter.isTransmittingWaypoint()) {
serverLevel.getWaypointManager().updateWaypoint(waypointTransmitter);
}