001 package org.bukkit.material;
002
003 import org.bukkit.block.BlockFace;
004 import org.bukkit.Material;
005
006 /**
007 * MaterialData for torches
008 */
009 public class Torch extends SimpleAttachableMaterialData {
010 public Torch() {
011 super(Material.TORCH);
012 }
013
014 /**
015 *
016 * @deprecated Magic value
017 */
018 @Deprecated
019 public Torch(final int type) {
020 super(type);
021 }
022
023 public Torch(final Material type) {
024 super(type);
025 }
026
027 /**
028 *
029 * @deprecated Magic value
030 */
031 @Deprecated
032 public Torch(final int type, final byte data) {
033 super(type, data);
034 }
035
036 /**
037 *
038 * @deprecated Magic value
039 */
040 @Deprecated
041 public Torch(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 0x1:
055 return BlockFace.WEST;
056
057 case 0x2:
058 return BlockFace.EAST;
059
060 case 0x3:
061 return BlockFace.NORTH;
062
063 case 0x4:
064 return BlockFace.SOUTH;
065
066 case 0x5:
067 default:
068 return BlockFace.DOWN;
069 }
070 }
071
072 public void setFacingDirection(BlockFace face) {
073 byte data;
074
075 switch (face) {
076 case EAST:
077 data = 0x1;
078 break;
079
080 case WEST:
081 data = 0x2;
082 break;
083
084 case SOUTH:
085 data = 0x3;
086 break;
087
088 case NORTH:
089 data = 0x4;
090 break;
091
092 case UP:
093 default:
094 data = 0x5;
095 }
096
097 setData(data);
098 }
099
100 @Override
101 public Torch clone() {
102 return (Torch) super.clone();
103 }
104 }