Async gen cap

This commit is contained in:
Daniel Mills
2020-09-09 06:47:27 -04:00
parent 88b60ea945
commit 265807941a
5 changed files with 95 additions and 16 deletions

View File

@@ -11,19 +11,19 @@ import org.bukkit.material.MaterialData;
import com.volmit.iris.Iris;
@SuppressWarnings("deprecation")
public class IrisTerrainChunk implements TerrainChunk
public class LinkedTerrainChunk implements TerrainChunk
{
private final Biome[] biome2D;
private final IrisBiomeStorage biome3D;
private final ChunkData rawChunkData;
private ChunkData rawChunkData;
private final BiomeGrid storage;
public IrisTerrainChunk(int maxHeight)
public LinkedTerrainChunk(int maxHeight)
{
this(null, maxHeight);
}
public IrisTerrainChunk(BiomeGrid storage, int maxHeight)
public LinkedTerrainChunk(BiomeGrid storage, int maxHeight)
{
this.storage = storage;
rawChunkData = createChunkData(maxHeight);
@@ -192,4 +192,30 @@ public class IrisTerrainChunk implements TerrainChunk
{
return rawChunkData;
}
@Override
public void setRaw(ChunkData data)
{
rawChunkData = data;
}
@Override
public void inject(BiomeGrid biome)
{
if(biome2D != null)
{
for(int i = 0; i < 16; i++)
{
for(int j = 0; j < 16; j++)
{
biome.setBiome(i, j, getBiome(i, j));
}
}
}
else if(biome3D != null)
{
biome3D.inject(biome);
}
}
}

View File

@@ -15,7 +15,7 @@ public interface TerrainChunk extends BiomeGrid, ChunkData
public static TerrainChunk create(int maxHeight)
{
return new IrisTerrainChunk(maxHeight);
return new LinkedTerrainChunk(maxHeight);
}
public static TerrainChunk create(World world, BiomeGrid grid)
@@ -25,9 +25,11 @@ public interface TerrainChunk extends BiomeGrid, ChunkData
public static TerrainChunk create(int maxHeight, BiomeGrid grid)
{
return new IrisTerrainChunk(grid, maxHeight);
return new LinkedTerrainChunk(grid, maxHeight);
}
public void setRaw(ChunkData data);
/**
* Get biome at x, z within chunk being generated
*
@@ -126,4 +128,6 @@ public interface TerrainChunk extends BiomeGrid, ChunkData
public BlockData getBlockData(int x, int y, int z);
public ChunkData getRaw();
public void inject(BiomeGrid biome);
}