Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
PistonBaseMaterial.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 PistonBaseMaterial extends MaterialData implements Directional, Redstone {
10  public PistonBaseMaterial(final int type) {
11  super(type);
12  }
13 
14  public PistonBaseMaterial(final Material type) {
15  super(type);
16  }
17 
18  public PistonBaseMaterial(final int type, final byte data) {
19  super(type, data);
20  }
21 
22  public PistonBaseMaterial(final Material type, final byte data) {
23  super(type, data);
24  }
25 
26  public void setFacingDirection(BlockFace face) {
27  byte data = (byte) (getData() & 0x8);
28 
29  switch (face) {
30  case UP:
31  data |= 1;
32  break;
33  case NORTH:
34  data |= 2;
35  break;
36  case SOUTH:
37  data |= 3;
38  break;
39  case WEST:
40  data |= 4;
41  break;
42  case EAST:
43  data |= 5;
44  break;
45  }
46  setData(data);
47  }
48 
49  public BlockFace getFacing() {
50  byte dir = (byte) (getData() & 7);
51 
52  switch (dir) {
53  case 0:
54  return BlockFace.DOWN;
55  case 1:
56  return BlockFace.UP;
57  case 2:
58  return BlockFace.NORTH;
59  case 3:
60  return BlockFace.SOUTH;
61  case 4:
62  return BlockFace.WEST;
63  case 5:
64  return BlockFace.EAST;
65  default:
66  return BlockFace.SELF;
67  }
68  }
69 
70  public boolean isPowered() {
71  return (getData() & 0x8) == 0x8;
72  }
73 
79  public void setPowered(boolean powered) {
80  setData((byte) (powered ? (getData() | 0x8) : (getData() & ~0x8)));
81  }
82 
88  public boolean isSticky() {
89  return this.getItemType() == Material.PISTON_STICKY_BASE;
90  }
91 
92  @Override
94  return (PistonBaseMaterial) super.clone();
95  }
96 }