Fix error with pistons retracting near top of world. Fixes #3172

This commit is contained in:
t00thpick1 2017-09-01 00:43:11 -04:00
parent d3cc23f6a0
commit e0bbe9cea4

View File

@ -12,6 +12,7 @@ import com.gmail.nossr50.util.blockmeta.ChunkletStore;
public class PrimitiveChunkStore implements ChunkStore { public class PrimitiveChunkStore implements ChunkStore {
private static final long serialVersionUID = -1L; private static final long serialVersionUID = -1L;
transient private boolean dirty = false; transient private boolean dirty = false;
transient private int maxZ;
/** X, Z, Y */ /** X, Z, Y */
public boolean[][][] store; public boolean[][][] store;
private static final int CURRENT_VERSION = 7; private static final int CURRENT_VERSION = 7;
@ -24,6 +25,7 @@ public class PrimitiveChunkStore implements ChunkStore {
this.cx = cx; this.cx = cx;
this.cz = cz; this.cz = cz;
this.worldUid = world.getUID(); this.worldUid = world.getUID();
this.maxZ = world.getMaxHeight() - 1;
this.store = new boolean[16][16][world.getMaxHeight()]; this.store = new boolean[16][16][world.getMaxHeight()];
} }
@ -54,12 +56,16 @@ public class PrimitiveChunkStore implements ChunkStore {
@Override @Override
public void setTrue(int x, int y, int z) { public void setTrue(int x, int y, int z) {
if (z > maxZ)
return;
store[x][z][y] = true; store[x][z][y] = true;
dirty = true; dirty = true;
} }
@Override @Override
public void setFalse(int x, int y, int z) { public void setFalse(int x, int y, int z) {
if (z > maxZ)
return;
store[x][z][y] = false; store[x][z][y] = false;
dirty = true; dirty = true;
} }