Bukkit-API  1.7.9-R0.2
The inofficial Bukkit-API
CocoaPlant.java
1 package org.bukkit.material;
2 
3 import org.bukkit.Material;
5 
6 /**
7  * Represents the cocoa plant
8  */
9 public class CocoaPlant extends MaterialData implements Directional, Attachable {
10 
11  public enum CocoaPlantSize {
12  SMALL,
13  MEDIUM,
14  LARGE
15  }
16 
17  public CocoaPlant() {
18  super(Material.COCOA);
19  }
20 
21  /**
22  *
23  * @deprecated Magic value
24  */
25  @Deprecated
26  public CocoaPlant(final int type) {
27  super(type);
28  }
29 
30  /**
31  *
32  * @deprecated Magic value
33  */
34  @Deprecated
35  public CocoaPlant(final int type, final byte data) {
36  super(type, data);
37  }
38 
39  public CocoaPlant(CocoaPlantSize sz) {
40  this();
41  setSize(sz);
42  }
43 
44  public CocoaPlant(CocoaPlantSize sz, BlockFace dir) {
45  this();
46  setSize(sz);
47  setFacingDirection(dir);
48  }
49 
50  /**
51  * Get size of plant
52  *
53  * @return size
54  */
56  switch (getData() & 0xC) {
57  case 0:
58  return CocoaPlantSize.SMALL;
59  case 4:
60  return CocoaPlantSize.MEDIUM;
61  default:
62  return CocoaPlantSize.LARGE;
63  }
64  }
65 
66  /**
67  * Set size of plant
68  *
69  * @param sz - size of plant
70  */
71  public void setSize(CocoaPlantSize sz) {
72  int dat = getData() & 0x3;
73  switch (sz) {
74  case SMALL:
75  break;
76  case MEDIUM:
77  dat |= 0x4;
78  break;
79  case LARGE:
80  dat |= 0x8;
81  break;
82  }
83  setData((byte) dat);
84  }
85 
87  return getFacing().getOppositeFace();
88  }
89 
90  public void setFacingDirection(BlockFace face) {
91  int dat = getData() & 0xC;
92  switch (face) {
93  default:
94  case SOUTH:
95  break;
96  case WEST:
97  dat |= 0x1;
98  break;
99  case NORTH:
100  dat |= 0x2;
101  break;
102  case EAST:
103  dat |= 0x3;
104  break;
105  }
106  setData((byte) dat);
107  }
108 
109  public BlockFace getFacing() {
110  switch (getData() & 0x3) {
111  case 0:
112  return BlockFace.SOUTH;
113  case 1:
114  return BlockFace.WEST;
115  case 2:
116  return BlockFace.NORTH;
117  case 3:
118  return BlockFace.EAST;
119  }
120  return null;
121  }
122 
123  @Override
124  public CocoaPlant clone() {
125  return (CocoaPlant) super.clone();
126  }
127 
128  @Override
129  public String toString() {
130  return super.toString() + " facing " + getFacing() + " " + getSize();
131  }
132 }
void setSize(CocoaPlantSize sz)
Definition: CocoaPlant.java:71
CocoaPlant(final int type, final byte data)
Definition: CocoaPlant.java:35
void setFacingDirection(BlockFace face)
Definition: CocoaPlant.java:90