diff options
Diffstat (limited to 'src/main/java/net/minecraft/server')
4 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 51a5b38c..d510392e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -417,6 +417,12 @@ public abstract class Entity { } public void move(double d0, double d1, double d2) { + // CraftBukkit start - Don't do anything if we aren't moving + if (d0 == 0 && d1 == 0 && d2 == 0) { + return; + } + // CraftBukkit end + if (this.Z) { this.boundingBox.d(d0, d1, d2); this.locX = (this.boundingBox.a + this.boundingBox.d) / 2.0D; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 21819eeb..fd1327a4 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -1411,6 +1411,12 @@ public abstract class EntityLiving extends Entity { for (int i = 0; i < list.size(); ++i) { Entity entity = (Entity) list.get(i); + // CraftBukkit start - Only handle mob (non-player) collisions every other tick + if (entity instanceof EntityLiving && !(this instanceof EntityPlayer) && this.ticksLived % 2 == 0) { + continue; + } + // CraftBukkit end + if (entity.L()) { this.o(entity); } diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java index be8a5ed7..c6e8f786 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java @@ -63,9 +63,11 @@ public class EntitySquid extends EntityWaterAnimal { // CraftBukkit end } + /* CraftBukkit start - Delegate to Entity to use existing inWater value public boolean G() { return this.world.a(this.boundingBox.grow(0.0D, -0.6000000238418579D, 0.0D), Material.WATER, (Entity) this); } + // CraftBukkit end */ public void c() { super.c(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 03b71674..d896f692 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -30,7 +30,7 @@ public abstract class World implements IBlockAccess { public boolean d = false; public List entityList = new ArrayList(); protected List f = new ArrayList(); - public List tileEntityList = new ArrayList(); + public Set tileEntityList = new HashSet(); // CraftBukkit - ArrayList -> HashSet private List a = new ArrayList(); private List b = new ArrayList(); public List players = new ArrayList(); @@ -44,7 +44,6 @@ public abstract class World implements IBlockAccess { protected float o; protected float p; public int q = 0; - // public boolean suppressPhysics = false; // CraftBukkit (removed in vanilla) public boolean callingPlaceEvent = false; // CraftBukkit public int difficulty; public Random random = new Random(); |