Bukkit-API  1.7.9-R0.2
The inofficial Bukkit-API
Diode.java
1 package org.bukkit.material;
2 
3 import org.bukkit.Material;
5 
6 public class Diode extends MaterialData implements Directional {
7  public Diode() {
8  super(Material.DIODE_BLOCK_ON);
9  }
10 
11  /**
12  *
13  * @deprecated Magic value
14  */
15  @Deprecated
16  public Diode(int type) {
17  super(type);
18  }
19 
20  public Diode(Material type) {
21  super(type);
22  }
23 
24  /**
25  *
26  * @deprecated Magic value
27  */
28  @Deprecated
29  public Diode(int type, byte data) {
30  super(type, data);
31  }
32 
33  /**
34  *
35  * @deprecated Magic value
36  */
37  @Deprecated
38  public Diode(Material type, byte data) {
39  super(type, data);
40  }
41 
42  /**
43  * Sets the delay of the repeater
44  *
45  * @param delay
46  * The new delay (1-4)
47  */
48  public void setDelay(int delay) {
49  if (delay > 4) {
50  delay = 4;
51  }
52  if (delay < 1) {
53  delay = 1;
54  }
55  byte newData = (byte) (getData() & 0x3);
56 
57  setData((byte) (newData | ((delay - 1) << 2)));
58  }
59 
60  /**
61  * Gets the delay of the repeater in ticks
62  *
63  * @return The delay (1-4)
64  */
65  public int getDelay() {
66  return (getData() >> 2) + 1;
67  }
68 
69  public void setFacingDirection(BlockFace face) {
70  int delay = getDelay();
71  byte data;
72 
73  switch (face) {
74  case EAST:
75  data = 0x1;
76  break;
77 
78  case SOUTH:
79  data = 0x2;
80  break;
81 
82  case WEST:
83  data = 0x3;
84  break;
85 
86  case NORTH:
87  default:
88  data = 0x0;
89  }
90 
91  setData(data);
92  setDelay(delay);
93  }
94 
95  public BlockFace getFacing() {
96  byte data = (byte) (getData() & 0x3);
97 
98  switch (data) {
99  case 0x0:
100  default:
101  return BlockFace.NORTH;
102 
103  case 0x1:
104  return BlockFace.EAST;
105 
106  case 0x2:
107  return BlockFace.SOUTH;
108 
109  case 0x3:
110  return BlockFace.WEST;
111  }
112  }
113 
114  @Override
115  public String toString() {
116  return super.toString() + " facing " + getFacing() + " with " + getDelay() + " ticks delay";
117  }
118 
119  @Override
120  public Diode clone() {
121  return (Diode) super.clone();
122  }
123 }
Diode(Material type, byte data)
Definition: Diode.java:38
void setDelay(int delay)
Definition: Diode.java:48
BlockFace getFacing()
Definition: Diode.java:95
void setFacingDirection(BlockFace face)
Definition: Diode.java:69
Diode(int type, byte data)
Definition: Diode.java:29