mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-04 06:46:21 +00:00
implement all Bukkit block data
This commit is contained in:
@@ -9,22 +9,28 @@ import com.dfsek.terra.api.platform.world.WorldHandle;
|
||||
import com.dfsek.terra.api.transform.Transformer;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitBlockData;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitAnaloguePowerable;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitDirectional;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitMultipleFacing;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitOrientable;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitRedstoneWire;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitRotatable;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitSlab;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitStairs;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitWall;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitWaterlogged;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.AnaloguePowerable;
|
||||
import org.bukkit.block.data.Directional;
|
||||
import org.bukkit.block.data.MultipleFacing;
|
||||
import org.bukkit.block.data.Orientable;
|
||||
import org.bukkit.block.data.Rotatable;
|
||||
import org.bukkit.block.data.Waterlogged;
|
||||
import org.bukkit.block.data.type.RedstoneWire;
|
||||
import org.bukkit.block.data.type.Slab;
|
||||
import org.bukkit.block.data.type.Stairs;
|
||||
import org.bukkit.block.data.type.Wall;
|
||||
|
||||
public class BukkitWorldHandle implements WorldHandle {
|
||||
private Transformer<String, Tree> treeTransformer;
|
||||
@@ -54,13 +60,21 @@ public class BukkitWorldHandle implements WorldHandle {
|
||||
@Override
|
||||
public BlockData createBlockData(String data) {
|
||||
org.bukkit.block.data.BlockData bukkitData = Bukkit.createBlockData(data);
|
||||
if(bukkitData instanceof MultipleFacing) return new BukkitMultipleFacing((MultipleFacing) bukkitData);
|
||||
|
||||
if(bukkitData instanceof Stairs) return new BukkitStairs((Stairs) bukkitData);
|
||||
if(bukkitData instanceof Slab) return new BukkitSlab((Slab) bukkitData);
|
||||
if(bukkitData instanceof Wall) return new BukkitWall((Wall) bukkitData);
|
||||
|
||||
if(bukkitData instanceof RedstoneWire) return new BukkitRedstoneWire((RedstoneWire) bukkitData);
|
||||
if(bukkitData instanceof AnaloguePowerable) return new BukkitAnaloguePowerable((AnaloguePowerable) bukkitData);
|
||||
|
||||
if(bukkitData instanceof MultipleFacing) return new BukkitMultipleFacing((MultipleFacing) bukkitData);
|
||||
if(bukkitData instanceof Rotatable) return new BukkitRotatable((Rotatable) bukkitData);
|
||||
if(bukkitData instanceof Directional) return new BukkitDirectional((Directional) bukkitData);
|
||||
if(bukkitData instanceof Orientable) return new BukkitOrientable((Orientable) bukkitData);
|
||||
|
||||
if(bukkitData instanceof Waterlogged) return new BukkitWaterlogged((Waterlogged) bukkitData);
|
||||
|
||||
return new BukkitBlockData(Bukkit.createBlockData(data));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.platform.block.BlockData;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||
import com.dfsek.terra.bukkit.BukkitWorld;
|
||||
import com.dfsek.terra.bukkit.world.block.data.TerraEnumAdapter;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitEnumAdapter;
|
||||
|
||||
public class BukkitBlock implements Block {
|
||||
private final org.bukkit.block.Block delegate;
|
||||
@@ -27,12 +27,12 @@ public class BukkitBlock implements Block {
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face) {
|
||||
return new BukkitBlock(delegate.getRelative(TerraEnumAdapter.fromTerraBlockFace(face)));
|
||||
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block getRelative(BlockFace face, int len) {
|
||||
return new BukkitBlock(delegate.getRelative(TerraEnumAdapter.fromTerraBlockFace(face), len));
|
||||
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face), len));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.data.AnaloguePowerable;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitBlockData;
|
||||
|
||||
public class BukkitAnaloguePowerable extends BukkitBlockData implements AnaloguePowerable {
|
||||
public BukkitAnaloguePowerable(org.bukkit.block.data.AnaloguePowerable delegate) {
|
||||
super(delegate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaximumPower() {
|
||||
return ((org.bukkit.block.data.AnaloguePowerable) getHandle()).getMaximumPower();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPower() {
|
||||
return ((org.bukkit.block.data.AnaloguePowerable) getHandle()).getPower();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPower(int power) {
|
||||
((org.bukkit.block.data.AnaloguePowerable) getHandle()).setPower(power);
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,11 @@ public class BukkitDirectional extends BukkitBlockData implements Directional {
|
||||
|
||||
@Override
|
||||
public BlockFace getFacing() {
|
||||
return BukkitEnumAdapter.fromBukkitBlockFace(((org.bukkit.block.data.Directional) getHandle()).getFacing());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Directional) getHandle()).getFacing());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(BlockFace facing) {
|
||||
((org.bukkit.block.data.Directional) getHandle()).setFacing(TerraEnumAdapter.fromTerraBlockFace(facing));
|
||||
((org.bukkit.block.data.Directional) getHandle()).setFacing(BukkitEnumAdapter.adapt(facing));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,14 +4,17 @@ package com.dfsek.terra.bukkit.world.block.data;
|
||||
import com.dfsek.terra.api.platform.block.Axis;
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Bisected;
|
||||
import com.dfsek.terra.api.platform.block.data.Rail;
|
||||
import com.dfsek.terra.api.platform.block.data.RedstoneWire;
|
||||
import com.dfsek.terra.api.platform.block.data.Slab;
|
||||
import com.dfsek.terra.api.platform.block.data.Stairs;
|
||||
import org.bukkit.block.data.type.Wall;
|
||||
|
||||
/**
|
||||
* Utility class to adapt Bukkit enums to Terra enums.
|
||||
*/
|
||||
public final class BukkitEnumAdapter {
|
||||
public static Stairs.Shape fromBukkitStair(org.bukkit.block.data.type.Stairs.Shape shape) {
|
||||
public static Stairs.Shape adapt(org.bukkit.block.data.type.Stairs.Shape shape) {
|
||||
switch(shape) {
|
||||
case STRAIGHT:
|
||||
return Stairs.Shape.STRAIGHT;
|
||||
@@ -28,7 +31,7 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static Axis fromBukkitAxis(org.bukkit.Axis axis) {
|
||||
public static Axis adapt(org.bukkit.Axis axis) {
|
||||
switch(axis) {
|
||||
case X:
|
||||
return Axis.X;
|
||||
@@ -41,7 +44,7 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static Bisected.Half fromBukkitHalf(org.bukkit.block.data.Bisected.Half half) {
|
||||
public static Bisected.Half adapt(org.bukkit.block.data.Bisected.Half half) {
|
||||
switch(half) {
|
||||
case BOTTOM:
|
||||
return Bisected.Half.BOTTOM;
|
||||
@@ -52,7 +55,7 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static BlockFace fromBukkitBlockFace(org.bukkit.block.BlockFace face) {
|
||||
public static BlockFace adapt(org.bukkit.block.BlockFace face) {
|
||||
switch(face) {
|
||||
case DOWN:
|
||||
return BlockFace.DOWN;
|
||||
@@ -97,7 +100,7 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static Slab.Type fromBukkitSlabType(org.bukkit.block.data.type.Slab.Type type) {
|
||||
public static Slab.Type adapt(org.bukkit.block.data.type.Slab.Type type) {
|
||||
switch(type) {
|
||||
case BOTTOM:
|
||||
return Slab.Type.BOTTOM;
|
||||
@@ -110,4 +113,209 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static RedstoneWire.Connection adapt(org.bukkit.block.data.type.RedstoneWire.Connection connection) {
|
||||
switch(connection) {
|
||||
case NONE:
|
||||
return RedstoneWire.Connection.NONE;
|
||||
case UP:
|
||||
return RedstoneWire.Connection.UP;
|
||||
case SIDE:
|
||||
return RedstoneWire.Connection.SIDE;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.type.RedstoneWire.Connection adapt(RedstoneWire.Connection connection) {
|
||||
switch(connection) {
|
||||
case SIDE:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.SIDE;
|
||||
case UP:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.UP;
|
||||
case NONE:
|
||||
return org.bukkit.block.data.type.RedstoneWire.Connection.NONE;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.type.Stairs.Shape adapt(Stairs.Shape shape) {
|
||||
switch(shape) {
|
||||
case STRAIGHT:
|
||||
return org.bukkit.block.data.type.Stairs.Shape.STRAIGHT;
|
||||
case INNER_LEFT:
|
||||
return org.bukkit.block.data.type.Stairs.Shape.INNER_LEFT;
|
||||
case OUTER_LEFT:
|
||||
return org.bukkit.block.data.type.Stairs.Shape.OUTER_LEFT;
|
||||
case INNER_RIGHT:
|
||||
return org.bukkit.block.data.type.Stairs.Shape.INNER_RIGHT;
|
||||
case OUTER_RIGHT:
|
||||
return org.bukkit.block.data.type.Stairs.Shape.OUTER_RIGHT;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Rail.Shape adapt(org.bukkit.block.data.Rail.Shape shape) {
|
||||
switch(shape) {
|
||||
case SOUTH_WEST:
|
||||
return Rail.Shape.SOUTH_WEST;
|
||||
case SOUTH_EAST:
|
||||
return Rail.Shape.SOUTH_EAST;
|
||||
case NORTH_EAST:
|
||||
return Rail.Shape.NORTH_EAST;
|
||||
case NORTH_WEST:
|
||||
return Rail.Shape.NORTH_WEST;
|
||||
case ASCENDING_EAST:
|
||||
return Rail.Shape.ASCENDING_EAST;
|
||||
case ASCENDING_WEST:
|
||||
return Rail.Shape.ASCENDING_WEST;
|
||||
case ASCENDING_SOUTH:
|
||||
return Rail.Shape.ASCENDING_SOUTH;
|
||||
case ASCENDING_NORTH:
|
||||
return Rail.Shape.ASCENDING_NORTH;
|
||||
case NORTH_SOUTH:
|
||||
return Rail.Shape.NORTH_SOUTH;
|
||||
case EAST_WEST:
|
||||
return Rail.Shape.EAST_WEST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.Rail.Shape adapt(Rail.Shape shape) {
|
||||
switch(shape) {
|
||||
case EAST_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.EAST_WEST;
|
||||
case NORTH_SOUTH:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_SOUTH;
|
||||
case ASCENDING_NORTH:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_NORTH;
|
||||
case ASCENDING_SOUTH:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_SOUTH;
|
||||
case ASCENDING_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_WEST;
|
||||
case ASCENDING_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.ASCENDING_EAST;
|
||||
case NORTH_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_WEST;
|
||||
case NORTH_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.NORTH_EAST;
|
||||
case SOUTH_EAST:
|
||||
return org.bukkit.block.data.Rail.Shape.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return org.bukkit.block.data.Rail.Shape.SOUTH_WEST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static org.bukkit.block.data.Bisected.Half adapt(Bisected.Half half) {
|
||||
switch(half) {
|
||||
case TOP:
|
||||
return org.bukkit.block.data.Bisected.Half.TOP;
|
||||
case BOTTOM:
|
||||
return org.bukkit.block.data.Bisected.Half.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.Axis adapt(Axis axis) {
|
||||
switch(axis) {
|
||||
case Z:
|
||||
return org.bukkit.Axis.Z;
|
||||
case Y:
|
||||
return org.bukkit.Axis.Y;
|
||||
case X:
|
||||
return org.bukkit.Axis.X;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.BlockFace adapt(BlockFace face) {
|
||||
switch(face) {
|
||||
case DOWN:
|
||||
return org.bukkit.block.BlockFace.DOWN;
|
||||
case UP:
|
||||
return org.bukkit.block.BlockFace.UP;
|
||||
case NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.NORTH_WEST;
|
||||
case NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.NORTH_EAST;
|
||||
case SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_WEST;
|
||||
case NORTH_NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.NORTH_NORTH_WEST;
|
||||
case WEST_NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.WEST_NORTH_WEST;
|
||||
case WEST_SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.WEST_SOUTH_WEST;
|
||||
case SOUTH_SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST;
|
||||
case EAST_NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.EAST_NORTH_EAST;
|
||||
case WEST:
|
||||
return org.bukkit.block.BlockFace.WEST;
|
||||
case SOUTH:
|
||||
return org.bukkit.block.BlockFace.SOUTH;
|
||||
case EAST:
|
||||
return org.bukkit.block.BlockFace.EAST;
|
||||
case NORTH:
|
||||
return org.bukkit.block.BlockFace.NORTH;
|
||||
case SELF:
|
||||
return org.bukkit.block.BlockFace.SELF;
|
||||
case EAST_SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.EAST_SOUTH_EAST;
|
||||
case NORTH_NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.NORTH_NORTH_EAST;
|
||||
case SOUTH_SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.data.type.Slab.Type adapt(Slab.Type type) {
|
||||
switch(type) {
|
||||
case TOP:
|
||||
return org.bukkit.block.data.type.Slab.Type.TOP;
|
||||
case DOUBLE:
|
||||
return org.bukkit.block.data.type.Slab.Type.DOUBLE;
|
||||
case BOTTOM:
|
||||
return org.bukkit.block.data.type.Slab.Type.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Wall.Height adapt(com.dfsek.terra.api.platform.block.data.Wall.Height height) {
|
||||
switch(height) {
|
||||
case NONE:
|
||||
return Wall.Height.NONE;
|
||||
case LOW:
|
||||
return Wall.Height.LOW;
|
||||
case TALL:
|
||||
return Wall.Height.TALL;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static com.dfsek.terra.api.platform.block.data.Wall.Height adapt(Wall.Height height) {
|
||||
switch(height) {
|
||||
case TALL:
|
||||
return com.dfsek.terra.api.platform.block.data.Wall.Height.TALL;
|
||||
case LOW:
|
||||
return com.dfsek.terra.api.platform.block.data.Wall.Height.LOW;
|
||||
case NONE:
|
||||
return com.dfsek.terra.api.platform.block.data.Wall.Height.NONE;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,21 +15,21 @@ public class BukkitMultipleFacing extends BukkitBlockData implements MultipleFac
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getFaces() {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getFaces().stream().map(BukkitEnumAdapter::fromBukkitBlockFace).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFace(BlockFace face, boolean facing) {
|
||||
((org.bukkit.block.data.MultipleFacing) super.getHandle()).setFace(TerraEnumAdapter.fromTerraBlockFace(face), facing);
|
||||
((org.bukkit.block.data.MultipleFacing) super.getHandle()).setFace(BukkitEnumAdapter.adapt(face), facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getAllowedFaces() {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getAllowedFaces().stream().map(BukkitEnumAdapter::fromBukkitBlockFace).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).getAllowedFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFace(BlockFace f) {
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).hasFace(TerraEnumAdapter.fromTerraBlockFace(f));
|
||||
return ((org.bukkit.block.data.MultipleFacing) super.getHandle()).hasFace(BukkitEnumAdapter.adapt(f));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,16 +15,16 @@ public class BukkitOrientable extends BukkitBlockData implements Orientable {
|
||||
|
||||
@Override
|
||||
public Set<Axis> getAxes() {
|
||||
return ((org.bukkit.block.data.Orientable) getHandle()).getAxes().stream().map(BukkitEnumAdapter::fromBukkitAxis).collect(Collectors.toSet());
|
||||
return ((org.bukkit.block.data.Orientable) getHandle()).getAxes().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getAxis() {
|
||||
return BukkitEnumAdapter.fromBukkitAxis(((org.bukkit.block.data.Orientable) getHandle()).getAxis());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Orientable) getHandle()).getAxis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAxis(Axis axis) {
|
||||
((org.bukkit.block.data.Orientable) getHandle()).setAxis(TerraEnumAdapter.fromTerraAxis(axis));
|
||||
((org.bukkit.block.data.Orientable) getHandle()).setAxis(BukkitEnumAdapter.adapt(axis));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.data.Rail;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitBlockData;
|
||||
|
||||
public class BukkitRail extends BukkitBlockData implements Rail {
|
||||
public BukkitRail(org.bukkit.block.data.Rail delegate) {
|
||||
super(delegate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Shape getShape() {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Rail) getHandle()).getShape());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShape(Shape newShape) {
|
||||
((org.bukkit.block.data.Rail) getHandle()).setShape(BukkitEnumAdapter.adapt(newShape));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.RedstoneWire;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BukkitRedstoneWire extends BukkitAnaloguePowerable implements RedstoneWire {
|
||||
public BukkitRedstoneWire(org.bukkit.block.data.type.RedstoneWire delegate) {
|
||||
super(delegate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<BlockFace> getAllowedFaces() {
|
||||
return ((org.bukkit.block.data.type.RedstoneWire) getHandle()).getAllowedFaces().stream().map(BukkitEnumAdapter::adapt).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getFace(BlockFace face) {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.RedstoneWire) getHandle()).getFace(BukkitEnumAdapter.adapt(face)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFace(BlockFace face, Connection connection) {
|
||||
((org.bukkit.block.data.type.RedstoneWire) getHandle()).setFace(BukkitEnumAdapter.adapt(face), BukkitEnumAdapter.adapt(connection));
|
||||
}
|
||||
}
|
||||
@@ -11,11 +11,11 @@ public class BukkitRotatable extends BukkitBlockData implements Rotatable {
|
||||
|
||||
@Override
|
||||
public BlockFace getRotation() {
|
||||
return BukkitEnumAdapter.fromBukkitBlockFace(((org.bukkit.block.data.Rotatable) getHandle()).getRotation());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.Rotatable) getHandle()).getRotation());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRotation(BlockFace face) {
|
||||
((org.bukkit.block.data.Rotatable) getHandle()).setRotation(TerraEnumAdapter.fromTerraBlockFace(face));
|
||||
((org.bukkit.block.data.Rotatable) getHandle()).setRotation(BukkitEnumAdapter.adapt(face));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ public class BukkitSlab extends BukkitWaterlogged implements Slab {
|
||||
|
||||
@Override
|
||||
public Type getType() {
|
||||
return BukkitEnumAdapter.fromBukkitSlabType(((org.bukkit.block.data.type.Slab) getHandle()).getType());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Slab) getHandle()).getType());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(Type type) {
|
||||
((org.bukkit.block.data.type.Slab) getHandle()).setType(TerraEnumAdapter.fromTerraSlabType(type));
|
||||
((org.bukkit.block.data.type.Slab) getHandle()).setType(BukkitEnumAdapter.adapt(type));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,32 +12,32 @@ public class BukkitStairs extends BukkitBlockData implements Stairs {
|
||||
|
||||
@Override
|
||||
public Shape getShape() {
|
||||
return BukkitEnumAdapter.fromBukkitStair(((org.bukkit.block.data.type.Stairs) super.getHandle()).getShape());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getShape());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShape(Shape shape) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setShape(TerraEnumAdapter.fromTerraStair(shape));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setShape(BukkitEnumAdapter.adapt(shape));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Half getHalf() {
|
||||
return BukkitEnumAdapter.fromBukkitHalf(((org.bukkit.block.data.type.Stairs) super.getHandle()).getHalf());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getHalf());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHalf(Half half) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setHalf(TerraEnumAdapter.fromTerraHalf(half));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setHalf(BukkitEnumAdapter.adapt(half));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockFace getFacing() {
|
||||
return BukkitEnumAdapter.fromBukkitBlockFace(((org.bukkit.block.data.type.Stairs) super.getHandle()).getFacing());
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Stairs) super.getHandle()).getFacing());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(BlockFace facing) {
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setFacing(TerraEnumAdapter.fromTerraBlockFace(facing));
|
||||
((org.bukkit.block.data.type.Stairs) super.getHandle()).setFacing(BukkitEnumAdapter.adapt(facing));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import com.dfsek.terra.api.platform.block.data.Wall;
|
||||
|
||||
public class BukkitWall extends BukkitWaterlogged implements Wall {
|
||||
public BukkitWall(org.bukkit.block.data.type.Wall delegate) {
|
||||
super(delegate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUp() {
|
||||
return ((org.bukkit.block.data.type.Wall) getHandle()).isUp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUp(boolean up) {
|
||||
((org.bukkit.block.data.type.Wall) getHandle()).setUp(up);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHeight(BlockFace face, Height height) {
|
||||
((org.bukkit.block.data.type.Wall) getHandle()).setHeight(BukkitEnumAdapter.adapt(face), BukkitEnumAdapter.adapt(height));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Height getHeight(BlockFace face) {
|
||||
return BukkitEnumAdapter.adapt(((org.bukkit.block.data.type.Wall) getHandle()).getHeight(BukkitEnumAdapter.adapt(face)));
|
||||
}
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
|
||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||
import org.bukkit.Axis;
|
||||
import org.bukkit.block.data.Bisected;
|
||||
import org.bukkit.block.data.type.Slab;
|
||||
import org.bukkit.block.data.type.Stairs;
|
||||
|
||||
/**
|
||||
* Utility class to adapt Terra enums to Bukkit enums
|
||||
*/
|
||||
public final class TerraEnumAdapter {
|
||||
public static Stairs.Shape fromTerraStair(com.dfsek.terra.api.platform.block.data.Stairs.Shape shape) {
|
||||
switch(shape) {
|
||||
case STRAIGHT:
|
||||
return Stairs.Shape.STRAIGHT;
|
||||
case INNER_LEFT:
|
||||
return Stairs.Shape.INNER_LEFT;
|
||||
case OUTER_LEFT:
|
||||
return Stairs.Shape.OUTER_LEFT;
|
||||
case INNER_RIGHT:
|
||||
return Stairs.Shape.INNER_RIGHT;
|
||||
case OUTER_RIGHT:
|
||||
return Stairs.Shape.OUTER_RIGHT;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Bisected.Half fromTerraHalf(com.dfsek.terra.api.platform.block.data.Bisected.Half half) {
|
||||
switch(half) {
|
||||
case TOP:
|
||||
return Bisected.Half.TOP;
|
||||
case BOTTOM:
|
||||
return Bisected.Half.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Axis fromTerraAxis(com.dfsek.terra.api.platform.block.Axis axis) {
|
||||
switch(axis) {
|
||||
case Z:
|
||||
return Axis.Z;
|
||||
case Y:
|
||||
return Axis.Y;
|
||||
case X:
|
||||
return Axis.X;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static org.bukkit.block.BlockFace fromTerraBlockFace(BlockFace face) {
|
||||
switch(face) {
|
||||
case DOWN:
|
||||
return org.bukkit.block.BlockFace.DOWN;
|
||||
case UP:
|
||||
return org.bukkit.block.BlockFace.UP;
|
||||
case NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.NORTH_WEST;
|
||||
case NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.NORTH_EAST;
|
||||
case SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_EAST;
|
||||
case SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_WEST;
|
||||
case NORTH_NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.NORTH_NORTH_WEST;
|
||||
case WEST_NORTH_WEST:
|
||||
return org.bukkit.block.BlockFace.WEST_NORTH_WEST;
|
||||
case WEST_SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.WEST_SOUTH_WEST;
|
||||
case SOUTH_SOUTH_WEST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST;
|
||||
case EAST_NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.EAST_NORTH_EAST;
|
||||
case WEST:
|
||||
return org.bukkit.block.BlockFace.WEST;
|
||||
case SOUTH:
|
||||
return org.bukkit.block.BlockFace.SOUTH;
|
||||
case EAST:
|
||||
return org.bukkit.block.BlockFace.EAST;
|
||||
case NORTH:
|
||||
return org.bukkit.block.BlockFace.NORTH;
|
||||
case SELF:
|
||||
return org.bukkit.block.BlockFace.SELF;
|
||||
case EAST_SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.EAST_SOUTH_EAST;
|
||||
case NORTH_NORTH_EAST:
|
||||
return org.bukkit.block.BlockFace.NORTH_NORTH_EAST;
|
||||
case SOUTH_SOUTH_EAST:
|
||||
return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Slab.Type fromTerraSlabType(com.dfsek.terra.api.platform.block.data.Slab.Type type) {
|
||||
switch(type) {
|
||||
case TOP:
|
||||
return Slab.Type.TOP;
|
||||
case DOUBLE:
|
||||
return Slab.Type.DOUBLE;
|
||||
case BOTTOM:
|
||||
return Slab.Type.BOTTOM;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user