implement ChunkAccess

This commit is contained in:
dfsek
2021-01-24 01:58:51 -07:00
parent da5d3fe0ce
commit ce62f1d7ac
7 changed files with 77 additions and 27 deletions

View File

@@ -4,6 +4,7 @@ package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.math.vector.Vector3;
import com.dfsek.terra.api.platform.CommandSender;
import com.dfsek.terra.api.platform.block.Axis;
import com.dfsek.terra.api.platform.block.BlockData;
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;
@@ -16,6 +17,7 @@ import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.api.transform.MapTransform;
import com.dfsek.terra.api.transform.Transformer;
import com.dfsek.terra.bukkit.BukkitCommandSender;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
import com.dfsek.terra.bukkit.world.inventory.meta.BukkitEnchantment;
import org.bukkit.Location;
import org.bukkit.TreeType;
@@ -55,6 +57,14 @@ public final class BukkitAdapter {
}
}
public static BlockData adapt(org.bukkit.block.data.BlockData data) {
return BukkitBlockData.newInstance(data);
}
public static org.bukkit.block.data.BlockData adapt(BlockData data) {
return ((BukkitBlockData) data).getHandle();
}
public static Axis adapt(org.bukkit.Axis axis) {
switch(axis) {
case X:

View File

@@ -1,9 +1,11 @@
package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.api.platform.block.Block;
import com.dfsek.terra.api.platform.block.BlockData;
import com.dfsek.terra.api.platform.world.Chunk;
import com.dfsek.terra.api.platform.world.World;
import com.dfsek.terra.bukkit.world.block.BukkitBlock;
import org.jetbrains.annotations.NotNull;
public class BukkitChunk implements Chunk {
private final org.bukkit.Chunk delegate;
@@ -36,4 +38,14 @@ public class BukkitChunk implements Chunk {
public org.bukkit.Chunk getHandle() {
return delegate;
}
@Override
public void setBlock(int x, int y, int z, @NotNull BlockData blockData) {
delegate.getBlock(x, y, z).setBlockData(BukkitAdapter.adapt(blockData));
}
@Override
public @NotNull BlockData getBlockData(int x, int y, int z) {
return getBlock(x, y, z).getBlockData();
}
}