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 /**
015 *
016 * @deprecated Magic value
017 */
018 @Deprecated
019 public Ladder(final int type) {
020 super(type);
021 }
022
023 public Ladder(final Material type) {
024 super(type);
025 }
026
027 /**
028 *
029 * @deprecated Magic value
030 */
031 @Deprecated
032 public Ladder(final int type, final byte data) {
033 super(type, data);
034 }
035
036 /**
037 *
038 * @deprecated Magic value
039 */
040 @Deprecated
041 public Ladder(final Material type, final byte data) {
042 super(type, data);
043 }
044
045 /**
046 * Gets the face that this block is attached on
047 *
048 * @return BlockFace attached to
049 */
050 public BlockFace getAttachedFace() {
051 byte data = getData();
052
053 switch (data) {
054 case 0x2:
055 return BlockFace.SOUTH;
056
057 case 0x3:
058 return BlockFace.NORTH;
059
060 case 0x4:
061 return BlockFace.EAST;
062
063 case 0x5:
064 return BlockFace.WEST;
065 }
066
067 return null;
068 }
069
070 /**
071 * Sets the direction this ladder is facing
072 */
073 public void setFacingDirection(BlockFace face) {
074 byte data = (byte) 0x0;
075
076 switch (face) {
077 case SOUTH:
078 data = 0x2;
079 break;
080
081 case NORTH:
082 data = 0x3;
083 break;
084
085 case EAST:
086 data = 0x4;
087 break;
088
089 case WEST:
090 data = 0x5;
091 break;
092 }
093
094 setData(data);
095
096 }
097
098 @Override
099 public Ladder clone() {
100 return (Ladder) super.clone();
101 }
102 }