From 88ed14fe5c2d2e3120b5c06c50220acadb1e8ab4 Mon Sep 17 00:00:00 2001 From: Glitchfinder Date: Mon, 5 Nov 2012 20:14:23 -0800 Subject: [PATCH] Fixing index error. --- .../BlockStoreConversionZDirectory.java | 9 ++++++--- .../chunkmeta/PrimitiveChunkStore.java | 20 +++++++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/runnables/blockstoreconversion/BlockStoreConversionZDirectory.java b/src/main/java/com/gmail/nossr50/runnables/blockstoreconversion/BlockStoreConversionZDirectory.java index 543cc9e33..7b737ccee 100755 --- a/src/main/java/com/gmail/nossr50/runnables/blockstoreconversion/BlockStoreConversionZDirectory.java +++ b/src/main/java/com/gmail/nossr50/runnables/blockstoreconversion/BlockStoreConversionZDirectory.java @@ -105,10 +105,13 @@ public class BlockStoreConversionZDirectory implements Runnable { this.czPos = this.zPos + this.z; for(this.y2 = (64 * this.y); this.y2 < (64 * this.y + 64); this.y2++) { - if(!this.manager.isTrue(this.cxPos, this.y2, this.czPos, this.world)) - continue; + try { + if(!this.manager.isTrue(this.cxPos, this.y2, this.czPos, this.world)) + continue; - this.newManager.setTrue(this.cxPos, this.y2, this.czPos, this.world); + this.newManager.setTrue(this.cxPos, this.y2, this.czPos, this.world); + } + catch(Exception e) {} } } } diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/PrimitiveChunkStore.java b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/PrimitiveChunkStore.java index 3e08fb624..42dd22a07 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/PrimitiveChunkStore.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/PrimitiveChunkStore.java @@ -15,7 +15,7 @@ public class PrimitiveChunkStore implements ChunkStore { transient private boolean dirty = false; /** X, Z, Y */ public boolean[][][] store; - private static final int CURRENT_VERSION = 4; + private static final int CURRENT_VERSION = 5; private static final int MAGIC_NUMBER = 0xEA5EDEBB; private int cx; private int cz; @@ -34,7 +34,7 @@ public class PrimitiveChunkStore implements ChunkStore { this.xBitShifts = 11; this.zBitShifts = 7; - this.store = new boolean[16][16][this.worldHeight - 1]; + this.store = new boolean[16][16][this.worldHeight]; conversionNeeded = false; } @@ -139,7 +139,23 @@ public class PrimitiveChunkStore implements ChunkStore { store = (boolean[][][]) in.readObject(); if (fileVersionNumber < CURRENT_VERSION) { + fixArray(); dirty = true; } } + + private void fixArray() { + boolean[][][] temp = this.store; + this.store = new boolean[16][16][this.worldHeight]; + for(int x = 0; x < 16; x++) { + for(int z = 0; z < 16; z++) { + for(int y = 0; y < this.worldHeight; y++) { + try { + store[x][z][y] = temp[x][y][z]; + } + catch(Exception e) {} + } + } + } + } } \ No newline at end of file