@Override public void placeBlock( GlowPlayer player, GlowBlockState state, BlockFace face, ItemStack holding, Vector clickedLoc) { super.placeBlock(player, state, face, holding, clickedLoc); MaterialData data = state.getData(); if (data instanceof Ladder) { if (face != BlockFace.DOWN && face != BlockFace.UP && isTargetOccluding(state, face.getOppositeFace())) { ((Ladder) data).setFacingDirection(face.getOppositeFace()); } else { if (isTargetOccluding(state, BlockFace.SOUTH)) { ((Ladder) data).setFacingDirection(BlockFace.SOUTH); } else if (isTargetOccluding(state, BlockFace.WEST)) { ((Ladder) data).setFacingDirection(BlockFace.WEST); } else if (isTargetOccluding(state, BlockFace.NORTH)) { ((Ladder) data).setFacingDirection(BlockFace.NORTH); } else if (isTargetOccluding(state, BlockFace.EAST)) { ((Ladder) data).setFacingDirection(BlockFace.EAST); } else { return; } } state.setData(data); } else { warnMaterialData(Ladder.class, data); } }
@Override public void placeBlock( GlowPlayer player, GlowBlockState state, BlockFace face, ItemStack holding, Vector clickedLoc) { super.placeBlock(player, state, face, holding, clickedLoc); MaterialData data = state.getData(); if (data instanceof Vine) { if (face == BlockFace.DOWN || face == BlockFace.UP) { return; } else { ((Vine) data).putOnFace(face.getOppositeFace()); } state.setData(data); } else { warnMaterialData(Vine.class, data); } }