summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityTrackerEntry.java
diff options
context:
space:
mode:
authorEvilSeph <evilseph@gmail.com>2012-04-20 00:28:30 -0500
committerEvilSeph <evilseph@gmail.com>2012-04-21 00:45:30 -0400
commit8f6fe0a643fa6b8d86bcbb84771c2ad2398b8771 (patch)
tree04df7ac31fdd7ebd1e35071322f12927327e1292 /src/main/java/net/minecraft/server/EntityTrackerEntry.java
parent3e15a6911f1a2b6ff9401a3c6058d3c361b0fb17 (diff)
downloadcraftbukkit-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.java33
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
}