diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/org/bukkit/Material.java | 2 | ||||
-rw-r--r-- | src/main/java/org/bukkit/material/Button.java | 58 |
2 files changed, 59 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java index f15acb40..83d096e4 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -79,7 +79,7 @@ public enum Material { GLOWING_REDSTONE_ORE(74), REDSTONE_TORCH_OFF(75, RedstoneTorch.class), REDSTONE_TORCH_ON(76, RedstoneTorch.class), - STONE_BUTTON(77), + STONE_BUTTON(77, Button.class), SNOW(78), ICE(79), SNOW_BLOCK(80), diff --git a/src/main/java/org/bukkit/material/Button.java b/src/main/java/org/bukkit/material/Button.java new file mode 100644 index 00000000..75b4d3da --- /dev/null +++ b/src/main/java/org/bukkit/material/Button.java @@ -0,0 +1,58 @@ + +package org.bukkit.material; + +import org.bukkit.BlockFace; +import org.bukkit.Material; + +/** + * Represents a button + */ +public class Button extends MaterialData implements Redstone, Attachable { + public Button(final int type) { + super(type); + } + + public Button(final Material type) { + super(type); + } + + public Button(final int type, final byte data) { + super(type, data); + } + + public Button(final Material type, final byte data) { + super(type, data); + } + + /** + * Gets the current state of this Material, indicating if it's powered or + * unpowered + * + * @return true if powered, otherwise false + */ + public boolean isPowered() { + return (getData() & 0x8) == 0x8; + } + + /** + * Gets the face that this block is attached on + * + * @return BlockFace attached to + */ + public BlockFace getAttachedFace() { + byte data = (byte) (getData() ^ 0x8); + + switch (data) { + case 0x1: + return BlockFace.NORTH; + case 0x2: + return BlockFace.SOUTH; + case 0x3: + return BlockFace.EAST; + case 0x4: + return BlockFace.WEST; + } + + return null; + } +} |