diff options
Diffstat (limited to 'src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java index e51dddbd..3bf83db1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java @@ -1,6 +1,8 @@ package org.bukkit.craftbukkit.entity; +import net.minecraft.server.BlockPosition; import net.minecraft.server.EntityHanging; +import net.minecraft.server.EnumDirection; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.craftbukkit.CraftServer; @@ -23,30 +25,27 @@ public class CraftHanging extends CraftEntity implements Hanging { public boolean setFacingDirection(BlockFace face, boolean force) { Block block = getLocation().getBlock().getRelative(getAttachedFace()).getRelative(face.getOppositeFace()).getRelative(getFacing()); EntityHanging hanging = getHandle(); - int x = hanging.x, y = hanging.y, z = hanging.z, dir = hanging.direction; - hanging.x = block.getX(); - hanging.y = block.getY(); - hanging.z = block.getZ(); + BlockPosition old = hanging.getBlockPosition(); + EnumDirection dir = hanging.direction; + hanging.blockPosition = new BlockPosition(block.getX(), block.getY(), block.getZ()); switch (face) { case SOUTH: default: - getHandle().setDirection(0); + getHandle().setDirection(EnumDirection.SOUTH); break; case WEST: - getHandle().setDirection(1); + getHandle().setDirection(EnumDirection.WEST); break; case NORTH: - getHandle().setDirection(2); + getHandle().setDirection(EnumDirection.NORTH); break; case EAST: - getHandle().setDirection(3); + getHandle().setDirection(EnumDirection.EAST); break; } if (!force && !hanging.survives()) { // Revert since it doesn't fit - hanging.x = x; - hanging.y = y; - hanging.z = z; + hanging.blockPosition = old; hanging.setDirection(dir); return false; } @@ -55,14 +54,14 @@ public class CraftHanging extends CraftEntity implements Hanging { public BlockFace getFacing() { switch (this.getHandle().direction) { - case 0: + case SOUTH: default: return BlockFace.SOUTH; - case 1: + case WEST: return BlockFace.WEST; - case 2: + case NORTH: return BlockFace.NORTH; - case 3: + case EAST: return BlockFace.EAST; } } |