byte data = getData(); if (!isWallSign()) { switch (data) { case 0x0: return getAttachedFace().getOppositeFace();
@Override public String toString() { return super.toString() + " facing " + getFacing(); }
@Override public void placeBlock(GlowPlayer player, GlowBlockState state, BlockFace face, ItemStack holding, Vector clickedLoc) { state.setType(getMaterial()); if (!(state.getData() instanceof Sign)) { warnMaterialData(Sign.class, state.getData()); return; } Sign sign = (Sign) state.getData(); sign.setFacingDirection(sign.isWallSign() ? face : player.getFacing().getOppositeFace()); }
/** * Gets the face that this block is attached on * * @return BlockFace attached to */ public BlockFace getAttachedFace() { if (isWallSign()) { byte data = getData(); switch (data) { case 0x2: return BlockFace.SOUTH; case 0x3: return BlockFace.NORTH; case 0x4: return BlockFace.EAST; case 0x5: return BlockFace.WEST; } return null; } else { return BlockFace.DOWN; } }
public void setFacingDirection(BlockFace face) { byte data; if (isWallSign()) { switch (face) { case NORTH: setData(data);
protected BlockFace getAttachedFace(GlowBlock me) { MaterialData data = me.getState().getData(); if (data instanceof SimpleAttachableMaterialData) { return ((SimpleAttachableMaterialData) data).getAttachedFace(); } else if (data instanceof Sign) { return ((Sign) data).getAttachedFace(); } else { return BlockFace.DOWN; } } }
protected static void onCreation(DungeonsXL plugin, Block startSign, String identifier, int maxElements, int startIfElementsAtLeast) { // TODO: Replace as soon as versions older than 1.13 are dropped World world = startSign.getWorld(); BlockFace facing = ((Attachable) startSign.getState().getData()).getAttachedFace().getOppositeFace(); //BlockFace facing = ((Directional) startSign.getBlockData()).getFacing().getOppositeFace(); int x = startSign.getX(), y = startSign.getY(), z = startSign.getZ(); int verticalSigns = (int) Math.ceil((float) (1 + maxElements) / 4); while (verticalSigns > 1) { Block block = world.getBlockAt(x, y - verticalSigns + 1, z); block.setType(VanillaItem.WALL_SIGN.getMaterial(), false); BlockState state = block.getState(); org.bukkit.material.Sign signData = (org.bukkit.material.Sign) state.getData(); signData.setFacingDirection(facing); state.setData(signData); state.update(true, false); // Directional directional = (Directional) block.getBlockData(); // directional.setFacing(facing); // block.setBlockData(directional, false); verticalSigns--; } LWCUtil.removeProtection(startSign); }
/** * @deprecated Use {@link #findConnectedContainer(Sign)} */ @Deprecated public static org.bukkit.block.Chest findConnectedChest(Sign sign) { BlockFace signFace = null; if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) { signFace = ((Attachable) sign.getData()).getAttachedFace(); } return findConnectedChest(sign.getBlock(), signFace); }
/** * Check if this sign is attached to a wall * * @return true if this sign is attached to a wall, false if set on top of * a block */ public boolean isWallSign() { return getItemType() == Material.WALL_SIGN; }
private Block getSignBlockAttached(Block signBlock) { if (!signBlock.getType().equals(Material.WALL_SIGN)) return null; return signBlock.getRelative(((org.bukkit.material.Sign) signBlock.getState().getData()).getAttachedFace()); }
public boolean rentField(Location signLocation, Player player, String rent, String timePeriod, BlockFace signDirection) { Block signBlock = signLocation.getBlock(); Material signMaterial = DefaultMaterials.getGroundSignBlock(); if (signMaterial == null) { return false; } signBlock.setType(signMaterial); Sign sign = (Sign)signBlock.getState(); sign.setLine(0, ChatColor.BLACK + "" + ChatColor.BOLD + "[Rent]"); sign.setLine(1, rent); sign.setLine(2, timePeriod); Object data = sign.getData(); if (data instanceof org.bukkit.material.Sign) { org.bukkit.material.Sign signData = (org.bukkit.material.Sign)data; signData.setFacingDirection(signDirection); sign.setData(signData); } sign.update(); final FieldSign s = new FieldSign(signBlock, sign.getLines(), player); return s.isValid(); } }
/** * Gets the face that this block is attached on * * @return BlockFace attached to */ public BlockFace getAttachedFace() { if (isWallSign()) { byte data = getData(); switch (data) { case 0x2: return BlockFace.SOUTH; case 0x3: return BlockFace.NORTH; case 0x4: return BlockFace.EAST; case 0x5: return BlockFace.WEST; } return null; } else { return BlockFace.DOWN; } }
public void setFacingDirection(BlockFace face) { byte data; if (isWallSign()) { switch (face) { case NORTH: setData(data);
/** * @deprecated Use {@link #findConnectedContainer(Block)} */ @Deprecated public static org.bukkit.block.Chest findConnectedChest(Block block) { BlockFace signFace = null; if (BlockUtil.isSign(block)) { Sign sign = (Sign) block.getState(); if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) { signFace = ((Attachable) sign.getData()).getAttachedFace(); } } return findConnectedChest(block, signFace); }
/** * Check if this sign is attached to a wall * * @return true if this sign is attached to a wall, false if set on top of * a block */ public boolean isWallSign() { return getItemType() == Material.WALL_SIGN; }
byte data = getData(); if (!isWallSign()) { switch (data) { case 0x0: return getAttachedFace().getOppositeFace();
@Override public void run() { if (id != -1 && id != 0 && subId != -1) { org.bukkit.material.Sign sign = (org.bukkit.material.Sign) location.getBlock().getState().getData(); location.getBlock().getRelative(sign.getAttachedFace()).setTypeIdAndData(id, (byte) subId, true); } } });
@Override public String toString() { return super.toString() + " facing " + getFacing(); }
if (data instanceof org.bukkit.material.Sign) { org.bukkit.material.Sign signData = (org.bukkit.material.Sign)data; signData.setFacingDirection(block.getFace(targetBlock)); blockState.setData(signData); while (yaw < 0) yaw += 360; while (yaw >= 360) yaw -= 360; signData.setFacingDirection(DirectionUtils.getDirection((int)yaw)); blockState.setData(signData);
public static Container findConnectedContainer(Sign sign) { BlockFace signFace = null; if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) { signFace = ((Attachable) sign.getData()).getAttachedFace(); } return findConnectedContainer(sign.getLocation(), signFace); }