001 package org.bukkit.material;
002
003 import org.bukkit.Material;
004 import org.bukkit.block.BlockFace;
005
006 /**
007 * Represents a door.
008 *
009 * @deprecated No longer functions. Do not use.
010 */
011 @Deprecated
012 public class Door extends MaterialData implements Directional, Openable {
013 public Door() {
014 super(Material.WOODEN_DOOR);
015 }
016
017 /**
018 *
019 * @deprecated Magic value
020 */
021 @Deprecated
022 public Door(final int type) {
023 super(type);
024 }
025
026 public Door(final Material type) {
027 super(type);
028 }
029
030 /**
031 *
032 * @deprecated Magic value
033 */
034 @Deprecated
035 public Door(final int type, final byte data) {
036 super(type, data);
037 }
038
039 /**
040 *
041 * @deprecated Magic value
042 */
043 @Deprecated
044 public Door(final Material type, final byte data) {
045 super(type, data);
046 }
047
048 /**
049 * @deprecated Does not work (correctly) anymore
050 */
051 @Deprecated
052 public boolean isOpen() {
053 return ((getData() & 0x4) == 0x4);
054 }
055
056 /**
057 * @deprecated Does not work (correctly) anymore
058 */
059 @Deprecated
060 public void setOpen(boolean isOpen) {
061 setData((byte) (isOpen ? (getData() | 0x4) : (getData() & ~0x4)));
062 }
063
064 /**
065 * @return whether this is the top half of the door
066 */
067 public boolean isTopHalf() {
068 return ((getData() & 0x8) == 0x8);
069 }
070
071 /**
072 * Configure this part of the door to be either the top or the bottom half
073 *
074 * @param isTopHalf True to make it the top half.
075 * @deprecated Shouldn't be used anymore
076 */
077 @Deprecated
078 public void setTopHalf(boolean isTopHalf) {
079 setData((byte) (isTopHalf ? (getData() | 0x8) : (getData() & ~0x8)));
080 }
081
082 /**
083 * @return BlockFace.SELF
084 * @deprecated Does not work (correctly) anymore
085 */
086 @Deprecated
087 public BlockFace getHingeCorner() {
088 byte d = getData();
089
090 if ((d & 0x3) == 0x3) {
091 return BlockFace.NORTH_WEST;
092 } else if ((d & 0x1) == 0x1) {
093 return BlockFace.SOUTH_EAST;
094 } else if ((d & 0x2) == 0x2) {
095 return BlockFace.SOUTH_WEST;
096 }
097
098 return BlockFace.NORTH_EAST;
099 }
100
101 @Override
102 public String toString() {
103 return (isTopHalf() ? "TOP" : "BOTTOM") + " half of " + super.toString();
104 }
105
106 /**
107 * Set the direction that this door should is facing.
108 *
109 * @param face the direction
110 * @deprecated Does not work (correctly) anymore
111 */
112 @Deprecated
113 public void setFacingDirection(BlockFace face) {
114 byte data = (byte) (getData() & 0x12);
115 switch (face) {
116 case NORTH:
117 data |= 0x1;
118 break;
119
120 case EAST:
121 data |= 0x2;
122 break;
123
124 case SOUTH:
125 data |= 0x3;
126 break;
127 }
128 setData(data);
129 }
130
131 /**
132 * Get the direction that this door is facing.
133 *
134 * @return the direction
135 * @deprecated Does not work (correctly) anymore
136 */
137 @Deprecated
138 public BlockFace getFacing() {
139 byte data = (byte) (getData() & 0x3);
140 switch (data) {
141 case 0:
142 return BlockFace.WEST;
143
144 case 1:
145 return BlockFace.NORTH;
146
147 case 2:
148 return BlockFace.EAST;
149
150 case 3:
151 return BlockFace.SOUTH;
152 }
153 return null; // shouldn't happen
154 }
155
156 @Override
157 public Door clone() {
158 return (Door) super.clone();
159 }
160 }