diff --git a/src/main/java/one/oth3r/sit/utl/Logic.java b/src/main/java/one/oth3r/sit/utl/Logic.java index 1c03670..4c9ce83 100644 --- a/src/main/java/one/oth3r/sit/utl/Logic.java +++ b/src/main/java/one/oth3r/sit/utl/Logic.java @@ -134,7 +134,9 @@ public class Logic { if (pos.getY() > entity.getY() - .80) pos2 = pos2.add(0,-1,0); // check if both poses are obstructed or not - return Utl.isNotObstructed(entity.getWorld(),pos1) && Utl.isNotObstructed(entity.getWorld(),pos2); + return Utl.isNotObstructed(entity.getWorld(),pos1) && Utl.isNotObstructed(entity.getWorld(),pos2) + // also check if occupied + && Utl.isNotOccupied(pos1) && Utl.isNotOccupied(pos2); } /** diff --git a/src/main/java/one/oth3r/sit/utl/Utl.java b/src/main/java/one/oth3r/sit/utl/Utl.java index fbda90a..b55f46a 100644 --- a/src/main/java/one/oth3r/sit/utl/Utl.java +++ b/src/main/java/one/oth3r/sit/utl/Utl.java @@ -54,6 +54,16 @@ public class Utl { return state.getCollisionShape(world,blockPos).isEmpty(); } + /** + * checks the list of sit entities and sees if any of them are occupying the block pos + */ + public static boolean isNotOccupied(BlockPos pos) { + for (DisplayEntity.TextDisplayEntity entity : Data.getSitEntities().values()) { + if (entity.getBlockPos().equals(pos)) return false; + } + return true; + } + public static class Num { public static boolean isInt(String string) {