mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-14 19:55:52 -07:00
Fixed TrapDoor and added MaterialData for LONG_GRASS. Thanks sunkid!
By: EvilSeph <evilseph@unaligned.org>
This commit is contained in:
57
paper-api/src/main/java/org/bukkit/material/LongGrass.java
Normal file
57
paper-api/src/main/java/org/bukkit/material/LongGrass.java
Normal file
@@ -0,0 +1,57 @@
|
||||
package org.bukkit.material;
|
||||
|
||||
import org.bukkit.GrassSpecies;
|
||||
import org.bukkit.Material;
|
||||
|
||||
/**
|
||||
* Represents the different types of long grasses.
|
||||
*/
|
||||
public class LongGrass extends MaterialData {
|
||||
public LongGrass() {
|
||||
super(Material.LOG);
|
||||
}
|
||||
|
||||
public LongGrass(GrassSpecies species) {
|
||||
this();
|
||||
setSpecies(species);
|
||||
}
|
||||
|
||||
public LongGrass(final int type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
public LongGrass(final Material type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
public LongGrass(final int type, final byte data) {
|
||||
super(type, data);
|
||||
}
|
||||
|
||||
public LongGrass(final Material type, final byte data) {
|
||||
super(type, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current species of this grass
|
||||
*
|
||||
* @return GrassSpecies of this grass
|
||||
*/
|
||||
public GrassSpecies getSpecies() {
|
||||
return GrassSpecies.getByData(getData());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the species of this grass
|
||||
*
|
||||
* @param species New species of this grass
|
||||
*/
|
||||
public void setSpecies(GrassSpecies species) {
|
||||
setData(species.getData());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getSpecies() + " " + super.toString();
|
||||
}
|
||||
}
|
@@ -1,12 +1,12 @@
|
||||
|
||||
package org.bukkit.material;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.BlockFace;
|
||||
|
||||
/**
|
||||
* Represents a trap door
|
||||
*/
|
||||
public class TrapDoor extends MaterialData implements Redstone {
|
||||
public class TrapDoor extends SimpleAttachableMaterialData {
|
||||
public TrapDoor() {
|
||||
super(Material.TRAP_DOOR);
|
||||
}
|
||||
@@ -28,17 +28,56 @@ public class TrapDoor extends MaterialData implements Redstone {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current state of this Material, indicating if it's powered or
|
||||
* unpowered
|
||||
* Check to see if the trap door is open.
|
||||
*
|
||||
* @return true if powered, otherwise false
|
||||
* @return true if the trap door is open.
|
||||
*/
|
||||
public boolean isPowered() {
|
||||
return (getData() & 0x8) == 0x8;
|
||||
public boolean isOpen() {
|
||||
return ((getData() & 0x4) == 0x4);
|
||||
}
|
||||
|
||||
public BlockFace getAttachedFace() {
|
||||
byte data = (byte) (getData() & 0x3);
|
||||
|
||||
switch (data) {
|
||||
case 0x0:
|
||||
return BlockFace.WEST;
|
||||
|
||||
case 0x1:
|
||||
return BlockFace.EAST;
|
||||
|
||||
case 0x2:
|
||||
return BlockFace.SOUTH;
|
||||
|
||||
case 0x3:
|
||||
return BlockFace.NORTH;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public void setFacingDirection(BlockFace face) {
|
||||
byte data = (byte) (getData() & 0x4);
|
||||
|
||||
switch (face) {
|
||||
case WEST:
|
||||
data |= 0x1;
|
||||
break;
|
||||
case NORTH:
|
||||
data |= 0x2;
|
||||
break;
|
||||
case SOUTH:
|
||||
data |= 0x3;
|
||||
break;
|
||||
}
|
||||
|
||||
setData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + "[powered=" + isPowered() + "]";
|
||||
return (isOpen() ? "OPEN " : "CLOSED ") + super.toString() + " with hinges set " + getAttachedFace();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user