mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-11 18:26:08 +00:00
Implement BukkitOrientable
This commit is contained in:
@@ -11,6 +11,7 @@ import com.dfsek.terra.bukkit.world.block.BukkitBlockData;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
||||
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.BukkitRotatable;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitSlab;
|
||||
import com.dfsek.terra.bukkit.world.block.data.BukkitStairs;
|
||||
@@ -19,6 +20,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
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.Slab;
|
||||
@@ -57,6 +59,7 @@ public class BukkitWorldHandle implements WorldHandle {
|
||||
if(bukkitData instanceof Slab) return new BukkitSlab((Slab) 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));
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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.Slab;
|
||||
@@ -27,6 +28,19 @@ public final class BukkitEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
public static Axis fromBukkitAxis(org.bukkit.Axis axis) {
|
||||
switch(axis) {
|
||||
case X:
|
||||
return Axis.X;
|
||||
case Y:
|
||||
return Axis.Y;
|
||||
case Z:
|
||||
return Axis.Z;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Bisected.Half fromBukkitHalf(org.bukkit.block.data.Bisected.Half half) {
|
||||
switch(half) {
|
||||
case BOTTOM:
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.dfsek.terra.bukkit.world.block.data;
|
||||
|
||||
import com.dfsek.terra.api.platform.block.Axis;
|
||||
import com.dfsek.terra.api.platform.block.data.Orientable;
|
||||
import com.dfsek.terra.bukkit.world.block.BukkitBlockData;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BukkitOrientable extends BukkitBlockData implements Orientable {
|
||||
|
||||
public BukkitOrientable(org.bukkit.block.data.Orientable delegate) {
|
||||
super(delegate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Axis> getAxes() {
|
||||
return ((org.bukkit.block.data.Orientable) getHandle()).getAxes().stream().map(BukkitEnumAdapter::fromBukkitAxis).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getAxis() {
|
||||
return BukkitEnumAdapter.fromBukkitAxis(((org.bukkit.block.data.Orientable) getHandle()).getAxis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAxis(Axis axis) {
|
||||
((org.bukkit.block.data.Orientable) getHandle()).setAxis(TerraEnumAdapter.fromTerraAxis(axis));
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ 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;
|
||||
@@ -38,6 +39,19 @@ public final class TerraEnumAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user