diff options
author | EvilSeph <evilseph@gmail.com> | 2012-04-20 00:28:30 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-04-21 00:45:30 -0400 |
commit | 8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771 (patch) | |
tree | 04df7ac31fdd7ebd1e35071322f12927327e1292 /src/main/java/net/minecraft/server/EntityTrackerEntry.java | |
parent | 3e15a6911f1a2b6ff9401a3c6058d3c361b0fb17 (diff) | |
download | craftbukkit-8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771.tar craftbukkit-8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771.tar.gz craftbukkit-8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771.tar.lz craftbukkit-8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771.tar.xz craftbukkit-8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771.zip |
Rework clipping logic again, now works as well as the original implementation
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityTrackerEntry.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityTrackerEntry.java | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java index 0af9fc35..8d020fe3 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -6,8 +6,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import org.bukkit.util.NumberConversions; // Craftbukkit - public class EntityTrackerEntry { public Entity tracker; @@ -66,29 +64,10 @@ public class EntityTrackerEntry { ++this.u; if (this.m++ % this.c == 0 || this.tracker.ce) { - // CraftBukkit start - Add logic for clipping; - boolean xFlag = NumberConversions.floor(this.tracker.locX) - this.tracker.locX > -.5d; - boolean zFlag = NumberConversions.floor(this.tracker.locZ) - this.tracker.locZ > -.5d; - if ((this.tracker.width % 2f) >= 1f) { - xFlag = !xFlag; - zFlag = !zFlag; - } - - int i; - int j = NumberConversions.ceil(this.tracker.locY * 32.0D);; - int k; - - if (xFlag) { - i = NumberConversions.ceil(this.tracker.locX * 32.0D); - } else { - i = NumberConversions.floor(this.tracker.locX * 32.0D); - } - - if (zFlag) { - k = NumberConversions.ceil(this.tracker.locZ * 32.0D); - } else { - k = NumberConversions.floor(this.tracker.locZ * 32.0D); - } + // CraftBukkit start - add logic for clipping + int i = this.tracker.size.getXZCoord(this.tracker.locX); + int j = org.bukkit.util.NumberConversions.floor(this.tracker.locY * 32.0D); + int k = this.tracker.size.getXZCoord(this.tracker.locZ); // CraftBukkit end - logic for clipping int l = MathHelper.d(this.tracker.yaw * 256.0F / 360.0F); @@ -124,7 +103,7 @@ public class EntityTrackerEntry { } else { this.u = 0; // CraftBukkit start - // remove (redundant?) setting of entity location to avoid clipping through blocks + // remove setting of entity location to avoid clipping through blocks //this.tracker.locX = (double) i / 32.0D; //this.tracker.locY = (double) j / 32.0D; //this.tracker.locZ = (double) k / 32.0D; @@ -133,7 +112,7 @@ public class EntityTrackerEntry { if (this.tracker instanceof EntityPlayer) { this.scanPlayers(new ArrayList(this.trackedPlayers)); } - object = new Packet34EntityTeleport(this.tracker.id, i, j, k, (byte) l, (byte) i1); // move entities down 1 client side so they don't clip up out of boxes + object = new Packet34EntityTeleport(this.tracker.id, i, j, k, (byte) l, (byte) i1); // CraftBukkit end } |