Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
Stairs.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 Stairs extends MaterialData implements Directional {
10 
11  public Stairs(final int type) {
12  super(type);
13  }
14 
15  public Stairs(final Material type) {
16  super(type);
17  }
18 
19  public Stairs(final int type, final byte data) {
20  super(type, data);
21  }
22 
23  public Stairs(final Material type, final byte data) {
24  super(type, data);
25  }
26 
31  byte data = getData();
32 
33  switch (data & 0x3) {
34  case 0x0:
35  default:
36  return BlockFace.EAST;
37 
38  case 0x1:
39  return BlockFace.WEST;
40 
41  case 0x2:
42  return BlockFace.SOUTH;
43 
44  case 0x3:
45  return BlockFace.NORTH;
46  }
47  }
48 
54  }
55 
59  public void setFacingDirection(BlockFace face) {
60  byte data;
61 
62  switch (face) {
63  case NORTH:
64  data = 0x3;
65  break;
66 
67  case SOUTH:
68  data = 0x2;
69  break;
70 
71  case EAST:
72  default:
73  data = 0x0;
74  break;
75 
76  case WEST:
77  data = 0x1;
78  break;
79  }
80 
81  setData((byte) ((getData() & 0xC) | data));
82  }
83 
87  public BlockFace getFacing() {
88  return getDescendingDirection();
89  }
90 
95  public boolean isInverted() {
96  return ((getData() & 0x4) != 0);
97  }
98 
103  public void setInverted(boolean inv) {
104  int dat = getData() & 0x3;
105  if (inv) {
106  dat |= 0x4;
107  }
108  setData((byte) dat);
109  }
110 
111  @Override
112  public String toString() {
113  return super.toString() + " facing " + getFacing() + (isInverted()?" inverted":"");
114  }
115 
116  @Override
117  public Stairs clone() {
118  return (Stairs) super.clone();
119  }
120 }