001 package org.bukkit.material;
002
003 import org.bukkit.block.BlockFace;
004 import org.bukkit.Material;
005
006 /**
007 * Represents Ladder data
008 */
009 public class Ladder extends SimpleAttachableMaterialData {
010 public Ladder() {
011 super(Material.LADDER);
012 }
013
014 public Ladder(final int type) {
015 super(type);
016 }
017
018 public Ladder(final Material type) {
019 super(type);
020 }
021
022 public Ladder(final int type, final byte data) {
023 super(type, data);
024 }
025
026 public Ladder(final Material type, final byte data) {
027 super(type, data);
028 }
029
030 /**
031 * Gets the face that this block is attached on
032 *
033 * @return BlockFace attached to
034 */
035 public BlockFace getAttachedFace() {
036 byte data = getData();
037
038 switch (data) {
039 case 0x2:
040 return BlockFace.SOUTH;
041
042 case 0x3:
043 return BlockFace.NORTH;
044
045 case 0x4:
046 return BlockFace.EAST;
047
048 case 0x5:
049 return BlockFace.WEST;
050 }
051
052 return null;
053 }
054
055 /**
056 * Sets the direction this ladder is facing
057 */
058 public void setFacingDirection(BlockFace face) {
059 byte data = (byte) 0x0;
060
061 switch (face) {
062 case SOUTH:
063 data = 0x2;
064 break;
065
066 case NORTH:
067 data = 0x3;
068 break;
069
070 case EAST:
071 data = 0x4;
072 break;
073
074 case WEST:
075 data = 0x5;
076 break;
077 }
078
079 setData(data);
080
081 }
082
083 @Override
084 public Ladder clone() {
085 return (Ladder) super.clone();
086 }
087 }