test chunk array perf

This commit is contained in:
Sen 2025-05-25 18:40:34 +02:00
parent 20abca12f2
commit e2ec9f0c84
2 changed files with 9 additions and 2 deletions

View file

@ -29,6 +29,7 @@ public abstract class Chunk {
protected final World world;
protected final State filler;
protected final Block fillerBlock;
protected final BlockArray[] core = new BlockArray[32];
protected final IntHashMap<BlockArray> blocks = new IntHashMap();
protected final Set<BlockArray> blockList = Sets.newHashSet();
protected final byte[] biomes = new byte[256];
@ -69,12 +70,15 @@ public abstract class Chunk {
}
public BlockArray getArray(int y) {
return this.blocks.lookup(y);
return y >= -16 && y < 16 ? this.core[y + 16] : this.blocks.lookup(y);
}
protected void setArray(BlockArray array) {
int y = array.getY() >> 4;
this.blocks.addKey(y, array);
if(y >= -16 && y < 16)
this.core[y + 16] = array;
else
this.blocks.addKey(y, array);
this.blockList.add(array);
y <<= 4;
this.bottom = y < this.bottom ? y : this.bottom;