This commit is contained in:
Daniel Mills
2020-10-20 09:22:14 -04:00
parent 743a4f97ba
commit d47da11ce8
29 changed files with 2066 additions and 680 deletions

View File

@@ -0,0 +1,20 @@
package com.volmit.iris.gen.scaffold;
import com.volmit.iris.gen.atomics.AtomicSliverMap;
import com.volmit.iris.util.BiomeMap;
import com.volmit.iris.util.HeightMap;
import lombok.Builder;
import lombok.Data;
@Builder
@Data
public class GeneratedChunk
{
private int x;
private int z;
private TerrainChunk terrain;
private HeightMap height;
private AtomicSliverMap sliverMap;
private BiomeMap biomeMap;
}

View File

@@ -23,6 +23,14 @@ public class LinkedTerrainChunk implements TerrainChunk
this(null, maxHeight);
}
public LinkedTerrainChunk(BiomeGrid storage, ChunkData data)
{
this.storage = storage;
rawChunkData = data;
biome2D = storage != null ? null : Iris.biome3d ? null : new Biome[256];
biome3D = storage != null ? null : Iris.biome3d ? new IrisBiomeStorage() : null;
}
public LinkedTerrainChunk(BiomeGrid storage, int maxHeight)
{
this.storage = storage;

View File

@@ -23,6 +23,11 @@ public interface TerrainChunk extends BiomeGrid, ChunkData
return create(world.getMaxHeight(), grid);
}
public static TerrainChunk create(ChunkData raw, BiomeGrid grid)
{
return new LinkedTerrainChunk(grid, raw);
}
public static TerrainChunk create(int maxHeight, BiomeGrid grid)
{
return new LinkedTerrainChunk(grid, maxHeight);

View File

@@ -7,6 +7,8 @@ import java.util.function.Function;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.util.BlockVector;
import com.volmit.iris.util.HeightMap;
public interface TerrainProvider
{
public TerrainTarget getTarget();
@@ -17,7 +19,7 @@ public interface TerrainProvider
public BlockVector computeSpawn(Function<BlockVector, Boolean> allowed);
public void generate(Random random, int x, int z, TerrainChunk chunk);
public GeneratedChunk generate(Random random, int x, int z, TerrainChunk chunk);
public boolean canSpawn(int x, int z);