Chunk regeneration

This commit is contained in:
cyberpwn
2021-08-26 01:46:56 -04:00
parent 3f730ead84
commit 4a1de4c0da
19 changed files with 410 additions and 29 deletions

View File

@@ -21,6 +21,7 @@ package com.volmit.iris.engine.data.chunk;
import com.volmit.iris.core.nms.BiomeBaseInjector;
import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.util.data.IrisBiomeStorage;
import lombok.Setter;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
@@ -35,6 +36,8 @@ public class LinkedTerrainChunk implements TerrainChunk {
private final IrisBiomeStorage biome3D;
private ChunkData rawChunkData;
private final BiomeGrid storage;
@Setter
private boolean unsafe = false;
public LinkedTerrainChunk(World world) {
this(null, Bukkit.createChunkData(world));
@@ -52,6 +55,12 @@ public class LinkedTerrainChunk implements TerrainChunk {
@Override
public BiomeBaseInjector getBiomeBaseInjector() {
if(unsafe)
{
return (a,b,c,d) -> {};
}
return (x, y, z, bb) -> INMS.get().forceBiomeInto(x, y, z, bb, storage);
}

View File

@@ -34,6 +34,12 @@ public interface TerrainChunk extends BiomeGrid, ChunkData {
return new LinkedTerrainChunk(world, grid);
}
static TerrainChunk createUnsafe(World world, BiomeGrid grid) {
LinkedTerrainChunk ltc = new LinkedTerrainChunk(world, grid);
ltc.setUnsafe(true);
return ltc;
}
static TerrainChunk create(ChunkData raw, BiomeGrid grid) {
return new LinkedTerrainChunk(grid, raw);
}