diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-06-30 15:18:11 +0100 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-06-30 15:18:11 +0100 |
commit | 542376d7b3bafccb811e28c2bf324ad8abb37211 (patch) | |
tree | 4436503d2074bea28bec18712d680459b2b49949 | |
parent | 762e66b69b784f334ed841942da7bad93869d364 (diff) | |
download | bukkit-542376d7b3bafccb811e28c2bf324ad8abb37211.tar bukkit-542376d7b3bafccb811e28c2bf324ad8abb37211.tar.gz bukkit-542376d7b3bafccb811e28c2bf324ad8abb37211.tar.lz bukkit-542376d7b3bafccb811e28c2bf324ad8abb37211.tar.xz bukkit-542376d7b3bafccb811e28c2bf324ad8abb37211.zip |
Update to 1.7
-rw-r--r-- | src/main/java/org/bukkit/Material.java | 5 | ||||
-rw-r--r-- | src/main/java/org/bukkit/material/PistonBaseMaterial.java | 93 | ||||
-rw-r--r-- | src/main/java/org/bukkit/material/PistonExtensionMaterial.java | 93 |
3 files changed, 191 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java index c29e29e1..bc089e63 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java @@ -41,10 +41,14 @@ public enum Material { BED_BLOCK(26, Bed.class), POWERED_RAIL(27, PoweredRail.class), DETECTOR_RAIL(28, DetectorRail.class), + PISTON_STICKY_BASE(29, PistonBaseMaterial.class), WEB(30), LONG_GRASS(31, LongGrass.class), DEAD_BUSH(32), + PISTON_BASE(33, PistonBaseMaterial.class), + PISTON_EXTENSION(34, PistonExtensionMaterial.class), WOOL(35, Wool.class), + PISTON_MOVING_PIECE(36), YELLOW_FLOWER(37), RED_ROSE(38), BROWN_MUSHROOM(39), @@ -209,6 +213,7 @@ public enum Material { DIODE(356), COOKIE(357), MAP(358), + SHEARS(359), GOLD_RECORD(2256, 1), GREEN_RECORD(2257, 1); diff --git a/src/main/java/org/bukkit/material/PistonBaseMaterial.java b/src/main/java/org/bukkit/material/PistonBaseMaterial.java new file mode 100644 index 00000000..922bb686 --- /dev/null +++ b/src/main/java/org/bukkit/material/PistonBaseMaterial.java @@ -0,0 +1,93 @@ + +package org.bukkit.material; + +import org.bukkit.Material; +import org.bukkit.block.BlockFace; + +/** + * Material data for the piston base block + */ +public class PistonBaseMaterial extends MaterialData implements Directional, Redstone { + public PistonBaseMaterial(final int type) { + super(type); + } + + public PistonBaseMaterial(final Material type) { + super(type); + } + + public PistonBaseMaterial(final int type, final byte data) { + super(type, data); + } + + public PistonBaseMaterial(final Material type, final byte data) { + super(type, data); + } + + public void setFacingDirection(BlockFace face) { + byte data = (byte)(getData() ^ 7); + + switch (face) { + case UP: + data |= 1; + break; + case NORTH: + data |= 2; + break; + case EAST: + data |= 3; + break; + case SOUTH: + data |= 4; + break; + case WEST: + data |= 5; + break; + } + + setData(data); + } + + public BlockFace getFacing() { + byte dir = (byte)(getData() & 7); + + switch (dir) { + case 0: + return BlockFace.DOWN; + case 1: + return BlockFace.UP; + case 2: + return BlockFace.NORTH; + case 3: + return BlockFace.SOUTH; + case 4: + return BlockFace.WEST; + case 5: + return BlockFace.EAST; + default: + return BlockFace.SELF; + } + } + + public boolean isPowered() { + return (getData() & 0x8) == 0x8; + } + + /** + * Sets the current state of this piston + * + * @param powered true if the piston is extended & powered, or false + */ + public void setPowered(boolean powered) { + setData((byte) (powered ? (getData() | 0x8) : (getData() & ~0x8))); + } + + /** + * Checks if this piston base is sticky, and returns true if so + * + * @return true if this piston is "sticky", or false + */ + public boolean isSticky() { + return this.getItemType() == Material.PISTON_STICKY_BASE; + } +} diff --git a/src/main/java/org/bukkit/material/PistonExtensionMaterial.java b/src/main/java/org/bukkit/material/PistonExtensionMaterial.java new file mode 100644 index 00000000..6ab45216 --- /dev/null +++ b/src/main/java/org/bukkit/material/PistonExtensionMaterial.java @@ -0,0 +1,93 @@ + +package org.bukkit.material; + +import org.bukkit.Material; +import org.bukkit.block.BlockFace; + +/** + * Material data for the piston extension block + */ +public class PistonExtensionMaterial extends MaterialData implements Directional, Attachable { + public PistonExtensionMaterial(final int type) { + super(type); + } + + public PistonExtensionMaterial(final Material type) { + super(type); + } + + public PistonExtensionMaterial(final int type, final byte data) { + super(type, data); + } + + public PistonExtensionMaterial(final Material type, final byte data) { + super(type, data); + } + + public void setFacingDirection(BlockFace face) { + byte data = (byte)(getData() ^ 7); + + switch (face) { + case UP: + data |= 1; + break; + case NORTH: + data |= 2; + break; + case EAST: + data |= 3; + break; + case SOUTH: + data |= 4; + break; + case WEST: + data |= 5; + break; + } + + setData(data); + } + + public BlockFace getFacing() { + byte dir = (byte)(getData() & 7); + + switch (dir) { + case 0: + return BlockFace.DOWN; + case 1: + return BlockFace.UP; + case 2: + return BlockFace.NORTH; + case 3: + return BlockFace.SOUTH; + case 4: + return BlockFace.WEST; + case 5: + return BlockFace.EAST; + default: + return BlockFace.SELF; + } + } + + /** + * Checks if this piston extension is sticky, and returns true if so + * + * @return true if this piston is "sticky", or false + */ + public boolean isSticky() { + return (getData() & 8) == 8; + } + + /** + * Sets whether or not this extension is sticky + * + * @param sticky true if sticky, otherwise false + */ + public void setSticky(boolean sticky) { + setData((byte) (sticky ? (getData() | 0x8) : (getData() & ~0x8))); + } + + public BlockFace getAttachedFace() { + return getFacing().getOppositeFace(); + } +} |