9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-27 11:09:06 +00:00

Height fixes

This commit is contained in:
cyberpwn
2022-01-12 01:24:12 -05:00
parent 32dac5fbe2
commit 8c00499e76
6 changed files with 20 additions and 17 deletions

View File

@@ -98,8 +98,8 @@ public interface Hunk<T> {
return new FunctionalHunkView<A, B>(src, reader, writer);
}
static Hunk<Biome> view(BiomeGrid biome) {
return new BiomeGridHunkView(biome);
static Hunk<Biome> view(BiomeGrid biome, int minHeight, int maxHeight) {
return new BiomeGridHunkView(biome, minHeight, maxHeight);
}
static <T> Hunk<T> fringe(Hunk<T> i, Hunk<T> o) {

View File

@@ -29,9 +29,13 @@ import org.bukkit.generator.ChunkGenerator.BiomeGrid;
public class BiomeGridHunkView implements Hunk<Biome> {
@Getter
private final BiomeGrid chunk;
private final int minHeight;
private final int maxHeight;
public BiomeGridHunkView(BiomeGrid chunk) {
public BiomeGridHunkView(BiomeGrid chunk, int minHeight, int maxHeight) {
this.chunk = chunk;
this.minHeight = minHeight;
this.maxHeight = maxHeight;
}
@Override
@@ -46,25 +50,24 @@ public class BiomeGridHunkView implements Hunk<Biome> {
@Override
public int getHeight() {
// TODO: WARNING HEIGHT
return 256;
return maxHeight - minHeight;
}
@Override
public void setRaw(int x, int y, int z, Biome t) {
chunk.setBiome(x, y, z, t);
chunk.setBiome(x, y+minHeight, z, t);
}
@Override
public Biome getRaw(int x, int y, int z) {
return chunk.getBiome(x, y, z);
return chunk.getBiome(x, y+minHeight, z);
}
public void forceBiomeBaseInto(int x, int y, int z, Object somethingVeryDirty) {
if (chunk instanceof LinkedTerrainChunk) {
INMS.get().forceBiomeInto(x, y, z, somethingVeryDirty, ((LinkedTerrainChunk) chunk).getRawBiome());
INMS.get().forceBiomeInto(x, y+minHeight, z, somethingVeryDirty, ((LinkedTerrainChunk) chunk).getRawBiome());
return;
}
INMS.get().forceBiomeInto(x, y, z, somethingVeryDirty, chunk);
INMS.get().forceBiomeInto(x, y+minHeight, z, somethingVeryDirty, chunk);
}
}

View File

@@ -42,7 +42,7 @@ public class ChunkDataHunkView implements Hunk<BlockData> {
@Override
public int getHeight() {
return chunk.getMaxHeight();
return chunk.getMaxHeight() - chunk.getMinHeight();
}
@Override
@@ -51,7 +51,7 @@ public class ChunkDataHunkView implements Hunk<BlockData> {
return;
}
chunk.setRegion(x1, y1, z1, x2, y2, z2, t);
chunk.setRegion(x1, y1+chunk.getMinHeight(), z1, x2, y2+chunk.getMinHeight(), z2, t);
}
@Override
@@ -60,11 +60,11 @@ public class ChunkDataHunkView implements Hunk<BlockData> {
return;
}
chunk.setBlock(x, y, z, t);
chunk.setBlock(x, y+chunk.getMinHeight(), z, t);
}
@Override
public BlockData getRaw(int x, int y, int z) {
return chunk.getBlockData(x, y, z);
return chunk.getBlockData(x, y+chunk.getMinHeight(), z);
}
}