diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 5a47a8562..d11f9e85d 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -26,7 +26,7 @@ import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.biome.GenerationSettings; import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.generator.ChunkData; +import com.dfsek.terra.api.world.generator.ProtoChunk; import com.dfsek.terra.api.world.generator.ChunkGenerator; import com.dfsek.terra.api.world.generator.GenerationStage; import com.dfsek.terra.api.world.generator.Palette; @@ -48,7 +48,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { @Override @SuppressWarnings("try") - public ChunkData generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ChunkData chunk) { + public void generateChunkData(@NotNull World world, Random random, int chunkX, int chunkZ, ProtoChunk chunk) { try(ProfileFrame ignore = platform.getProfiler().profile("chunk_base_3d")) { BiomeProvider grid = world.getBiomeProvider(); @@ -92,7 +92,6 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { } } } - return chunk; } } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java index a9dcf8f3c..c859c36c5 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkGenerator.java @@ -7,6 +7,8 @@ package com.dfsek.terra.api.world.generator; +import com.dfsek.terra.api.util.vector.integer.Vector3Int; + import org.jetbrains.annotations.NotNull; import java.util.List; @@ -22,7 +24,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface ChunkGenerator { - ChunkData generateChunkData(@NotNull World world, Random random, int x, int z, ChunkData original); + void generateChunkData(@NotNull World world, Random random, int x, int z, ProtoChunk original); Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, World world, int elevationSmooth); ConfigPack getConfigPack(); @@ -36,4 +38,8 @@ public interface ChunkGenerator { default BlockState getBlock(World world, Vector3 vector3) { return getBlock(world, vector3.getBlockX(), vector3.getBlockY(), vector3.getBlockZ()); } + + default BlockState getBlock(World world, Vector3Int vector3) { + return getBlock(world, vector3.getX(), vector3.getY(), vector3.getZ()); + } } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkData.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ProtoChunk.java similarity index 90% rename from common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkData.java rename to common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ProtoChunk.java index c65274e09..48ff36dae 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ChunkData.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/generator/ProtoChunk.java @@ -10,7 +10,7 @@ package com.dfsek.terra.api.world.generator; import com.dfsek.terra.api.world.ChunkAccess; -public interface ChunkData extends ChunkAccess { +public interface ProtoChunk extends ChunkAccess { /** * Get the maximum height for the chunk. *
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
index a2b5401c8..15716a314 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java
@@ -93,7 +93,9 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener
}
com.dfsek.terra.api.world.World bukkitWorld = BukkitAdapter.adapt(world);
if(needsLoad) load(bukkitWorld); // Load population data for world.
- return (ChunkData) delegate.generateChunkData(bukkitWorld, random, x, z, new BukkitChunkData(createChunkData(world))).getHandle();
+ ChunkData data = createChunkData(world);
+ delegate.generateChunkData(bukkitWorld, random, x, z, new BukkitProtoChunk(data));
+ return data;
}
@Override
diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitProtoChunk.java
similarity index 90%
rename from platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java
rename to platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitProtoChunk.java
index 27a2e0f75..c092141a1 100644
--- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkData.java
+++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/generator/BukkitProtoChunk.java
@@ -21,15 +21,15 @@ import org.bukkit.generator.ChunkGenerator;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.block.state.BlockState;
-import com.dfsek.terra.api.world.generator.ChunkData;
+import com.dfsek.terra.api.world.generator.ProtoChunk;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState;
-public class BukkitChunkData implements ChunkData {
+public class BukkitProtoChunk implements ProtoChunk {
private final ChunkGenerator.ChunkData delegate;
- public BukkitChunkData(ChunkGenerator.ChunkData delegate) {
+ public BukkitProtoChunk(ChunkGenerator.ChunkData delegate) {
this.delegate = delegate;
}
diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java
index 2c99811fe..114d46e40 100644
--- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java
+++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java
@@ -55,7 +55,7 @@ import java.util.concurrent.Executor;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.World;
-import com.dfsek.terra.api.world.generator.ChunkData;
+import com.dfsek.terra.api.world.generator.ProtoChunk;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.GeneratorWrapper;
@@ -193,7 +193,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C
public CompletableFuture