mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 14:00:14 +00:00
Implement Block interface
This commit is contained in:
1 parent
d9f585e4b2
commit
9f4e120283
6 files changed
+98
-14
No files matched your search
@@ -0,0 +1,27 @@
|
|||||||
|
package com.dfsek.terra.api.bukkit;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.BlockData;
|
||||||
|
import com.dfsek.terra.api.generic.world.Block;
|
||||||
|
|
||||||
|
public class BukkitBlock implements Block {
|
||||||
|
private final org.bukkit.block.Block delegate;
|
||||||
|
|
||||||
|
public BukkitBlock(org.bukkit.block.Block delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlockData(BlockData data, boolean physics) {
|
||||||
|
delegate.setBlockData(((BukkitBlockData) data).getHandle(), physics);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData getBlockData() {
|
||||||
|
return new BukkitBlockData(delegate.getBlockData());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,18 +1,19 @@
|
|||||||
package com.dfsek.terra.api.bukkit;
|
package com.dfsek.terra.api.bukkit;
|
||||||
|
|
||||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.BlockData;
|
|
||||||
|
|
||||||
public class BukkitWorldHandle implements WorldHandle {
|
public class BukkitWorldHandle implements WorldHandle {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setBlockData(Block block, BlockData data, boolean physics) {
|
public void setBlockData(Block block, org.bukkit.block.data.BlockData data, boolean physics) {
|
||||||
block.setBlockData(data, physics);
|
block.setBlockData(data, physics);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockData getBlockData(Block block) {
|
public org.bukkit.block.data.BlockData getBlockData(Block block) {
|
||||||
return block.getBlockData();
|
return block.getBlockData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,4 +21,9 @@ public class BukkitWorldHandle implements WorldHandle {
|
|||||||
public Material getType(Block block) {
|
public Material getType(Block block) {
|
||||||
return block.getType();
|
return block.getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public com.dfsek.terra.api.generic.BlockData createBlockData(String data) {
|
||||||
|
return new BukkitBlockData(Bukkit.createBlockData(data));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,27 +4,25 @@ import com.dfsek.terra.api.bukkit.BukkitBiomeGrid;
|
|||||||
import com.dfsek.terra.api.bukkit.BukkitBlockData;
|
import com.dfsek.terra.api.bukkit.BukkitBlockData;
|
||||||
import com.dfsek.terra.api.bukkit.BukkitWorld;
|
import com.dfsek.terra.api.bukkit.BukkitWorld;
|
||||||
import com.dfsek.terra.api.generic.BlockData;
|
import com.dfsek.terra.api.generic.BlockData;
|
||||||
import com.dfsek.terra.api.generic.generator.BlockPopulator;
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public abstract class BukkitChunkGenerator extends ChunkGenerator implements com.dfsek.terra.api.generic.generator.ChunkGenerator {
|
public class BukkitChunkGenerator extends ChunkGenerator {
|
||||||
|
private final com.dfsek.terra.api.generic.generator.ChunkGenerator delegate;
|
||||||
|
|
||||||
|
public BukkitChunkGenerator(com.dfsek.terra.api.generic.generator.ChunkGenerator delegate) {
|
||||||
@Override
|
this.delegate = delegate;
|
||||||
public ChunkGenerator.@NotNull ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
|
|
||||||
BukkitChunkData data = new BukkitChunkData(createChunkData(((BukkitWorld) world).getHandle()));
|
|
||||||
generateChunkData(new BukkitWorld(world), random, x, z, new BukkitBiomeGrid(biome), data);
|
|
||||||
return data.getHandle();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BlockPopulator> getDefaultPopulators(com.dfsek.terra.api.generic.world.World world) {
|
public @NotNull ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
|
||||||
return null;
|
BukkitWorld bukkitWorld = new BukkitWorld(world);
|
||||||
|
BukkitChunkData data = new BukkitChunkData(createChunkData(world));
|
||||||
|
delegate.generateChunkData(bukkitWorld, random, x, z, new BukkitBiomeGrid(biome), data);
|
||||||
|
return data.getHandle();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class BukkitChunkData implements com.dfsek.terra.api.generic.generator.ChunkGenerator.ChunkData {
|
public static class BukkitChunkData implements com.dfsek.terra.api.generic.generator.ChunkGenerator.ChunkData {
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
package com.dfsek.terra.api.generic.world;
|
package com.dfsek.terra.api.generic.world;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.BlockData;
|
||||||
import com.dfsek.terra.api.generic.Handle;
|
import com.dfsek.terra.api.generic.Handle;
|
||||||
|
|
||||||
public interface Block extends Handle {
|
public interface Block extends Handle {
|
||||||
|
void setBlockData(BlockData data, boolean physics);
|
||||||
|
|
||||||
|
BlockData getBlockData();
|
||||||
}
|
}
|
||||||
@@ -13,4 +13,6 @@ public interface WorldHandle {
|
|||||||
BlockData getBlockData(Block block);
|
BlockData getBlockData(Block block);
|
||||||
|
|
||||||
Material getType(Block block);
|
Material getType(Block block);
|
||||||
|
|
||||||
|
com.dfsek.terra.api.generic.BlockData createBlockData(String data);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package com.dfsek.terra.generation;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.generic.generator.BlockPopulator;
|
||||||
|
import com.dfsek.terra.api.generic.generator.ChunkGenerator;
|
||||||
|
import com.dfsek.terra.api.generic.world.BiomeGrid;
|
||||||
|
import com.dfsek.terra.api.generic.world.World;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class ChunkGeneratorImpl implements ChunkGenerator {
|
||||||
|
@Override
|
||||||
|
public boolean isParallelCapable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldGenerateCaves() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldGenerateDecorations() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldGenerateMobs() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldGenerateStructures() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome, ChunkData data) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BlockPopulator> getDefaultPopulators(World world) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user