refactor generation stuff

This commit is contained in:
dfsek
2021-11-27 09:52:41 -07:00
parent 7aaa94dedc
commit e616d21bea
45 changed files with 85 additions and 63 deletions

View File

@@ -26,9 +26,9 @@ 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.ProtoChunk;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.generation.ProtoChunk;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
import com.dfsek.terra.api.world.generator.Palette;

View File

@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.carver;
import com.dfsek.terra.api.world.chunk.Chunk;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
@@ -20,10 +22,9 @@ import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.PopulationUtil;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.generation.stage.Chunkified;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public class CavePopulator implements GenerationStage, Chunkified {

View File

@@ -24,7 +24,7 @@ import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.ore;
import com.dfsek.terra.api.world.chunk.Chunk;
import org.jetbrains.annotations.NotNull;
import java.util.Random;
@@ -14,10 +16,9 @@ import java.util.Random;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.PopulationUtil;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public class OrePopulator implements GenerationStage {

View File

@@ -15,7 +15,7 @@ import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
public abstract class Ore {

View File

@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.ore.ores;
import com.dfsek.terra.api.world.chunk.Chunk;
import net.jafama.FastMath;
import java.util.Map;
@@ -18,7 +20,6 @@ import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
public class VanillaOre extends Ore {

View File

@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.structure;
import com.dfsek.terra.api.world.chunk.Chunk;
import net.jafama.FastMath;
import org.jetbrains.annotations.NotNull;
@@ -19,11 +21,10 @@ import com.dfsek.terra.api.structure.configured.ConfiguredStructure;
import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.PopulationUtil;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.Chunkified;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.generation.stage.Chunkified;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public class StructurePopulator implements GenerationStage, Chunkified {

View File

@@ -13,9 +13,9 @@ import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.PopulationUtil;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public class FeatureGenerationStage implements GenerationStage {

View File

@@ -1,9 +1,9 @@
package com.dfsek.terra.addons.generation.structure;
import com.dfsek.terra.api.Platform;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public class StructureGenerationStage implements GenerationStage {

View File

@@ -19,7 +19,7 @@ import com.dfsek.terra.api.structure.buffer.items.BufferedBlock;
import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.util.vector.integer.Vector2Int;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -10,7 +10,7 @@ package com.dfsek.terra.addons.terrascript.buffer;
import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -50,7 +50,7 @@ import com.dfsek.terra.api.structure.buffer.buffers.DirectBuffer;
import com.dfsek.terra.api.structure.buffer.buffers.StructureBuffer;
import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;
import org.slf4j.Logger;

View File

@@ -13,7 +13,7 @@ import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.util.Rotation;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -8,7 +8,7 @@
package com.dfsek.terra.api.structure.buffer;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;
import org.jetbrains.annotations.ApiStatus.Experimental;

View File

@@ -13,7 +13,7 @@ import java.util.Map;
import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;
import org.jetbrains.annotations.ApiStatus.Experimental;

View File

@@ -16,7 +16,7 @@ import com.dfsek.terra.api.structure.buffer.Buffer;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.structure.buffer.items.Cell;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;
import org.jetbrains.annotations.ApiStatus.Experimental;

View File

@@ -9,7 +9,7 @@ package com.dfsek.terra.api.util;
import java.util.Random;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
public final class PopulationUtil {

View File

@@ -7,6 +7,10 @@
package com.dfsek.terra.api.world;
import com.dfsek.terra.api.world.chunk.ChunkAccess;
public interface Carver {
void carve(World world, int chunkX, int chunkZ, ChunkAccess chunk);
}

View File

@@ -11,6 +11,7 @@ import java.util.List;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.chunk.Chunk;
public interface Flora {

View File

@@ -15,7 +15,8 @@ import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
public interface World extends Handle {

View File

@@ -5,10 +5,12 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world;
package com.dfsek.terra.api.world.chunk;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.world.World;
import org.jetbrains.annotations.NotNull;

View File

@@ -5,7 +5,7 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world;
package com.dfsek.terra.api.world.chunk;
import org.jetbrains.annotations.NotNull;

View File

@@ -5,10 +5,12 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world.generator;
package com.dfsek.terra.api.world.chunk.generation;
import com.dfsek.terra.api.util.vector.integer.Vector3Int;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
import org.jetbrains.annotations.NotNull;
import java.util.List;

View File

@@ -5,9 +5,10 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world.generator;
package com.dfsek.terra.api.world.chunk.generation;
import com.dfsek.terra.api.world.ChunkAccess;
import com.dfsek.terra.api.world.chunk.ChunkAccess;
public interface ProtoChunk extends ChunkAccess {

View File

@@ -5,7 +5,7 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world.generator;
package com.dfsek.terra.api.world.chunk.generation.stage;
/**
* Marker interface that marks a feature as "chunkified" (only modifying one chunk at a time)

View File

@@ -5,9 +5,9 @@
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.world.generator;
package com.dfsek.terra.api.world.chunk.generation.stage;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;

View File

@@ -8,6 +8,7 @@
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
public interface ChunkGeneratorProvider {

View File

@@ -8,6 +8,7 @@
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
public interface GenerationStageProvider {

View File

@@ -8,6 +8,7 @@
package com.dfsek.terra.api.world.generator;
import com.dfsek.terra.api.Handle;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
public interface GeneratorWrapper extends Handle {

View File

@@ -23,10 +23,10 @@ import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
import com.dfsek.terra.api.util.vector.Vector3;
import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.chunk.Chunk;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.ChunkGenerator;
import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator;
public class DummyWorld implements World {