diff --git a/src/api b/src/api index f76a79bb5..509f3b871 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit f76a79bb521d5ffb9ed407c43b7d40b1ac5841f4 +Subproject commit 509f3b871f7865eb2f009689b85a407556a0f8e1 diff --git a/src/main/java/noppes/npcs/scripted/ScriptBlock.java b/src/main/java/noppes/npcs/scripted/ScriptBlock.java index 8da5a6506..f9e65ed4d 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptBlock.java +++ b/src/main/java/noppes/npcs/scripted/ScriptBlock.java @@ -19,7 +19,6 @@ import noppes.npcs.util.LRUHashMap; import java.util.Map; public class ScriptBlock implements IBlock { - private static final Map blockCache = new LRUHashMap(400); protected IWorld world; protected Block block; protected BlockPos pos; @@ -147,10 +146,6 @@ public class ScriptBlock implements IBlock { return this.block; } - public static void clearCache() { - blockCache.clear(); - } - public boolean hasTileEntity() { return this.tile != null; } @@ -226,4 +221,10 @@ public class ScriptBlock implements IBlock { public String toString() { return this.getName() + " @" + this.getPos() + (world == null ? "" : " in DIM" + world.getDimensionID()); } + + public boolean equals(Object obj) { + return obj instanceof IBlock && ((ScriptBlock)obj).getName().equals(this.getName()) && + ((ScriptBlock)obj).getWorld() == this.getWorld() && + ((ScriptBlock)obj).getPos().equals(this.getPos()); + } } diff --git a/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java b/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java index 43feb5d16..c84b4edc8 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java +++ b/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java @@ -154,4 +154,8 @@ public class ScriptBlockPos implements IPos { public String toString() { return "(" + this.getX() + ", " + this.getY() + ", " + this.getZ() + ")"; } + + public boolean equals(Object object) { + return object instanceof IPos && ((IPos) object).toLong() == this.toLong(); + } } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java index acd8ec079..750afcb5b 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java @@ -895,4 +895,8 @@ public class ScriptEntity implements IEntity { public IWorld getWorld() { return NpcAPI.Instance().getIWorld(entity.worldObj); } + + public boolean equals(Object object) { + return object instanceof IEntity && ((IEntity)object).getMCEntity().equals(this.entity); + } } \ No newline at end of file diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptItemStack.java b/src/main/java/noppes/npcs/scripted/item/ScriptItemStack.java index 80065534f..30eb75c4c 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptItemStack.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptItemStack.java @@ -409,4 +409,8 @@ public class ScriptItemStack implements IItemStack { public int itemHash() { return item.hashCode(); } + + public boolean equals(Object object) { + return object instanceof ScriptItemStack && ((ScriptItemStack) object).getMCItemStack().equals(this.getMCItemStack()); + } }