package com.hypixel.hytale.server.worldgen.chunk;
import com.hypixel.hytale.math.util.ChunkUtil;
import java.util.Arrays;
import javax.annotation.Nonnull;
public class BlockPriorityChunk {
public static final byte NO_CHANGE = -1;
public static final byte NONE = 0;
public static final byte FILLING = 1;
public static final byte LAYER = 2;
public static final byte COVER = 3;
public static final byte WATER = 4;
public static final byte CAVE_COVER = 5;
public static final byte CAVE = 6;
public static final byte CAVE_PREFAB = 7;
public static final byte PREFAB_CAVE = 8;
public static final byte PREFAB = 9;
public static final byte EXCLUSIVE_MAX_PRIORITY = 32;
public static final byte MASK = 31;
public static final byte FLAG_MASK = -32;
public static final byte FLAG_SUBMERGE = 32;
@Nonnull
private final byte[] blocks = new byte[327680];
public BlockPriorityChunk() {
}
@Nonnull
public BlockPriorityChunk reset() {
Arrays.fill(this.blocks, (byte)0);
return this;
}
public byte get(int x, int y, int z) {
return (byte)(this.blocks[index(x, y, z)] & 31);
}
public byte getRaw(int x, int y, int z) {
return this.blocks[index(x, y, z)];
}
public void set(int x, int y, int z, byte type) {
this.blocks[index(x, y, z)] = type;
}
private static int index(int x, int y, int z) {
return ChunkUtil.indexBlockInColumn(x, y, z);
}
}