mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
Implement Block interface
This commit is contained in:
27
src/main/java/com/dfsek/terra/api/bukkit/BukkitBlock.java
Normal file
27
src/main/java/com/dfsek/terra/api/bukkit/BukkitBlock.java
Normal file
@@ -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;
|
||||
|
||||
import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class BukkitWorldHandle implements WorldHandle {
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockData getBlockData(Block block) {
|
||||
public org.bukkit.block.data.BlockData getBlockData(Block block) {
|
||||
return block.getBlockData();
|
||||
}
|
||||
|
||||
@@ -20,4 +21,9 @@ public class BukkitWorldHandle implements WorldHandle {
|
||||
public Material getType(Block block) {
|
||||
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.BukkitWorld;
|
||||
import com.dfsek.terra.api.generic.BlockData;
|
||||
import com.dfsek.terra.api.generic.generator.BlockPopulator;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
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;
|
||||
|
||||
|
||||
@Override
|
||||
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();
|
||||
public BukkitChunkGenerator(com.dfsek.terra.api.generic.generator.ChunkGenerator delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BlockPopulator> getDefaultPopulators(com.dfsek.terra.api.generic.world.World world) {
|
||||
return null;
|
||||
public @NotNull ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) {
|
||||
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 {
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.dfsek.terra.api.generic.world;
|
||||
|
||||
import com.dfsek.terra.api.generic.BlockData;
|
||||
import com.dfsek.terra.api.generic.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);
|
||||
|
||||
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