Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
TrapDoor.java
Go to the documentation of this file.
1 package org.bukkit.material;
2 
3 import org.bukkit.Material;
4 import org.bukkit.block.BlockFace;
5 
9 public class TrapDoor extends SimpleAttachableMaterialData implements Openable {
10  public TrapDoor() {
11  super(Material.TRAP_DOOR);
12  }
13 
14  public TrapDoor(final int type) {
15  super(type);
16  }
17 
18  public TrapDoor(final Material type) {
19  super(type);
20  }
21 
22  public TrapDoor(final int type, final byte data) {
23  super(type, data);
24  }
25 
26  public TrapDoor(final Material type, final byte data) {
27  super(type, data);
28  }
29 
30  public boolean isOpen() {
31  return ((getData() & 0x4) == 0x4);
32  }
33 
34  public void setOpen(boolean isOpen) {
35  byte data = getData();
36 
37  if (isOpen) {
38  data |= 0x4;
39  } else {
40  data &= ~0x4;
41  }
42 
43  setData(data);
44  }
45 
47  byte data = (byte) (getData() & 0x3);
48 
49  switch (data) {
50  case 0x0:
51  return BlockFace.SOUTH;
52 
53  case 0x1:
54  return BlockFace.NORTH;
55 
56  case 0x2:
57  return BlockFace.EAST;
58 
59  case 0x3:
60  return BlockFace.WEST;
61  }
62 
63  return null;
64 
65  }
66 
67  public void setFacingDirection(BlockFace face) {
68  byte data = (byte) (getData() & 0x4);
69 
70  switch (face) {
71  case SOUTH:
72  data |= 0x1;
73  break;
74  case WEST:
75  data |= 0x2;
76  break;
77  case EAST:
78  data |= 0x3;
79  break;
80  }
81 
82  setData(data);
83  }
84 
85  @Override
86  public String toString() {
87  return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace();
88  }
89 
90  @Override
91  public TrapDoor clone() {
92  return (TrapDoor) super.clone();
93  }
94 }