Bukkit-API  1.7.9-R0.2
The inofficial Bukkit-API
TrapDoor.java
1 package org.bukkit.material;
2 
3 import org.bukkit.Material;
5 
6 /**
7  * Represents a trap door
8  */
9 public class TrapDoor extends SimpleAttachableMaterialData implements Openable {
10  public TrapDoor() {
11  super(Material.TRAP_DOOR);
12  }
13 
14  /**
15  *
16  * @deprecated Magic value
17  */
18  @Deprecated
19  public TrapDoor(final int type) {
20  super(type);
21  }
22 
23  public TrapDoor(final Material type) {
24  super(type);
25  }
26 
27  /**
28  *
29  * @deprecated Magic value
30  */
31  @Deprecated
32  public TrapDoor(final int type, final byte data) {
33  super(type, data);
34  }
35 
36  /**
37  *
38  * @deprecated Magic value
39  */
40  @Deprecated
41  public TrapDoor(final Material type, final byte data) {
42  super(type, data);
43  }
44 
45  public boolean isOpen() {
46  return ((getData() & 0x4) == 0x4);
47  }
48 
49  public void setOpen(boolean isOpen) {
50  byte data = getData();
51 
52  if (isOpen) {
53  data |= 0x4;
54  } else {
55  data &= ~0x4;
56  }
57 
58  setData(data);
59  }
60 
61  /**
62  * Test if trapdoor is inverted
63  *
64  * @return true if inverted (top half), false if normal (bottom half)
65  */
66  public boolean isInverted() {
67  return ((getData() & 0x8) != 0);
68  }
69 
70  /**
71  * Set trapdoor inverted state
72  *
73  * @param inv - true if inverted (top half), false if normal (bottom half)
74  */
75  public void setInverted(boolean inv) {
76  int dat = getData() & 0x7;
77  if (inv) {
78  dat |= 0x8;
79  }
80  setData((byte) dat);
81  }
82 
84  byte data = (byte) (getData() & 0x3);
85 
86  switch (data) {
87  case 0x0:
88  return BlockFace.SOUTH;
89 
90  case 0x1:
91  return BlockFace.NORTH;
92 
93  case 0x2:
94  return BlockFace.EAST;
95 
96  case 0x3:
97  return BlockFace.WEST;
98  }
99 
100  return null;
101 
102  }
103 
104  public void setFacingDirection(BlockFace face) {
105  byte data = (byte) (getData() & 0xC);
106 
107  switch (face) {
108  case SOUTH:
109  data |= 0x1;
110  break;
111  case WEST:
112  data |= 0x2;
113  break;
114  case EAST:
115  data |= 0x3;
116  break;
117  }
118 
119  setData(data);
120  }
121 
122  @Override
123  public String toString() {
124  return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace() + (isInverted() ? " inverted" : "");
125  }
126 
127  @Override
128  public TrapDoor clone() {
129  return (TrapDoor) super.clone();
130  }
131 }
void setOpen(boolean isOpen)
Definition: TrapDoor.java:49
TrapDoor(final Material type, final byte data)
Definition: TrapDoor.java:41
void setInverted(boolean inv)
Definition: TrapDoor.java:75
void setFacingDirection(BlockFace face)
Definition: TrapDoor.java:104
TrapDoor(final int type, final byte data)
Definition: TrapDoor.java:32
TrapDoor(final int type)
Definition: TrapDoor.java:19