public void setBlockMaterial(int xx, int yy, int zz, BlockMaterial material, short data) { final Vector3 transformed = transform(xx, yy, zz); position .getWorld() .setBlockMaterial( transformed.getFloorX(), transformed.getFloorY(), transformed.getFloorZ(), material, data, null); if (material instanceof Directional) { final Directional directional = (Directional) material; final Block block = position.getWorld().getBlock(transformed); final BlockFace face = directional.getFacing(block); if (face != BlockFace.BOTTOM && face != BlockFace.TOP) { directional.setFacing( block, BlockFace.fromYaw(face.getDirection().getYaw() + rotation.getYaw())); } } else if (material instanceof Attachable) { final Attachable attachable = (Attachable) material; final Block block = position.getWorld().getBlock(transformed); final BlockFace face = attachable.getAttachedFace(block); if (face != BlockFace.BOTTOM && face != BlockFace.TOP) { attachable.setAttachedFace( block, BlockFace.fromYaw(face.getDirection().getYaw() + rotation.getYaw()), null); } } }
public void placeDoor(int xx, int yy, int zz, DoorBlock door, BlockFace facing) { final Block bottom = getBlock(xx, yy, zz); door.create( getBlock(xx, yy, zz), bottom.translate(BlockFace.TOP), BlockFace.fromYaw(facing.getDirection().getYaw() + rotation.getYaw()), false, false); }