@Override
public boolean setLiquid(int x, int y, int z, LiquidData newState, LiquidData oldState) {
Vector3i chunkPos = TeraMath.calcChunkPos(x, y, z);
CoreChunk chunk = chunkProvider.getChunk(chunkPos);
if (chunk != null) {
chunk.lock();
try {
Vector3i blockPos = TeraMath.calcBlockPos(x, y, z);
LiquidData liquidState = chunk.getLiquid(blockPos);
if (liquidState.equals(oldState)) {
chunk.setLiquid(blockPos, newState);