001 package org.bukkit.material;
002
003 import org.bukkit.Material;
004 import org.bukkit.block.BlockFace;
005
006 /**
007 * Represents a furnace or a dispenser.
008 */
009 public class DirectionalContainer extends MaterialData implements Directional {
010 /**
011 *
012 * @deprecated Magic value
013 */
014 @Deprecated
015 public DirectionalContainer(final int type) {
016 super(type);
017 }
018
019 public DirectionalContainer(final Material type) {
020 super(type);
021 }
022
023 /**
024 *
025 * @deprecated Magic value
026 */
027 @Deprecated
028 public DirectionalContainer(final int type, final byte data) {
029 super(type, data);
030 }
031
032 /**
033 *
034 * @deprecated Magic value
035 */
036 @Deprecated
037 public DirectionalContainer(final Material type, final byte data) {
038 super(type, data);
039 }
040
041 public void setFacingDirection(BlockFace face) {
042 byte data;
043
044 switch (face) {
045 case NORTH:
046 data = 0x2;
047 break;
048
049 case SOUTH:
050 data = 0x3;
051 break;
052
053 case WEST:
054 data = 0x4;
055 break;
056
057 case EAST:
058 default:
059 data = 0x5;
060 }
061
062 setData(data);
063 }
064
065 public BlockFace getFacing() {
066 byte data = getData();
067
068 switch (data) {
069 case 0x2:
070 return BlockFace.NORTH;
071
072 case 0x3:
073 return BlockFace.SOUTH;
074
075 case 0x4:
076 return BlockFace.WEST;
077
078 case 0x5:
079 default:
080 return BlockFace.EAST;
081 }
082 }
083
084 @Override
085 public String toString() {
086 return super.toString() + " facing " + getFacing();
087 }
088
089 @Override
090 public DirectionalContainer clone() {
091 return (DirectionalContainer) super.clone();
092 }
093 }