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

@ -1,5 +1,7 @@
package client.world;
import java.util.Arrays;
import common.biome.Biome;
import common.block.Block;
import common.init.Blocks;
@ -16,6 +18,7 @@ public class ChunkClient extends Chunk {
}
private void clearArrays() {
Arrays.fill(this.core, null);
this.blocks.clearMap();
this.blockList.clear();
this.bottom = Integer.MAX_VALUE;

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,11 +70,14 @@ 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;
if(y >= -16 && y < 16)
this.core[y + 16] = array;
else
this.blocks.addKey(y, array);
this.blockList.add(array);
y <<= 4;