Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package org.bukkit.material;
2
3import org.bukkit.Material;
4import org.bukkit.block.BlockFace;
5
6/**
7 * Represents a pumpkin.
8 */
9public class Pumpkin extends MaterialData implements Directional {
10
11 public Pumpkin() {
12 super(Material.PUMPKIN);
13 }
14
15 /**
16 * Instantiate a pumpkin facing in a particular direction.
17 *
18 * @param direction the direction the pumkin's face is facing
19 */
20 public Pumpkin(BlockFace direction) {
21 this();
22 setFacingDirection(direction);
23 }
24
25 public Pumpkin(final int type) {
26 super(type);
27 }
28
29 public Pumpkin(final Material type) {
30 super(type);
31 }
32
33 public Pumpkin(final int type, final byte data) {
34 super(type, data);
35 }
36
37 public Pumpkin(final Material type, final byte data) {
38 super(type, data);
39 }
40
41 public boolean isLit() {
42 return getItemType() == Material.JACK_O_LANTERN;
43 }
44
45 public void setFacingDirection(BlockFace face) {
46 byte data;
47
48 switch (face) {
49 case EAST:
50 data = 0x0;
51 break;
52
53 case SOUTH:
54 data = 0x1;
55 break;
56
57 case WEST:
58 data = 0x2;
59 break;
60
61 case NORTH:
62 default:
63 data = 0x3;
64 }
65
66 setData(data);
67 }
68
69 public BlockFace getFacing() {
70 byte data = getData();
71
72 switch (data) {
73 case 0x0:
74 return BlockFace.EAST;
75
76 case 0x1:
77 return BlockFace.SOUTH;
78
79 case 0x2:
80 return BlockFace.WEST;
81
82 case 0x3:
83 default:
84 return BlockFace.SOUTH;
85 }
86 }
87
88 @Override
89 public String toString() {
90 return super.toString() + " facing " + getFacing() + " " + (isLit() ? "" : "NOT ") + "LIT";
91 }
92}