diff --git a/src/main/java/org/dynmap/bukkit/BukkitWorld.java b/src/main/java/org/dynmap/bukkit/BukkitWorld.java index 108841e6..08642a8a 100644 --- a/src/main/java/org/dynmap/bukkit/BukkitWorld.java +++ b/src/main/java/org/dynmap/bukkit/BukkitWorld.java @@ -16,7 +16,7 @@ public class BukkitWorld extends DynmapWorld { private static BlockLightLevel bll = new BlockLightLevel(); public BukkitWorld(World w) { - super(w.getName()); + super(w.getName(), w.getMaxHeight()); world = w; } diff --git a/src/main/java/org/dynmap/bukkit/NewMapChunkCache.java b/src/main/java/org/dynmap/bukkit/NewMapChunkCache.java index 4fe5a882..37248ac4 100644 --- a/src/main/java/org/dynmap/bukkit/NewMapChunkCache.java +++ b/src/main/java/org/dynmap/bukkit/NewMapChunkCache.java @@ -82,9 +82,11 @@ public class NewMapChunkCache implements MapChunkCache { private int lastbiome_x = Integer.MIN_VALUE, lastbiome_z = Integer.MIN_VALUE; private BiomeMap lastbiome; private int lastcountswamp_x = Integer.MIN_VALUE, lastcountswamp_z = Integer.MIN_VALUE, lastcountswamp; - + private final int worldheight; + OurMapIterator(int x0, int y0, int z0) { initialize(x0, y0, z0); + worldheight = w.getMaxHeight(); } public final void initialize(int x0, int y0, int z0) { this.x = x0; @@ -113,9 +115,6 @@ public class NewMapChunkCache implements MapChunkCache { blkdata = snap.getBlockData(bx, y, bz); return blkdata; } - public final int getHighestBlockYAt() { - return snap.getHighestBlockYAt(bx, bz); - } public int getBlockSkyLight() { return snap.getBlockSkyLight(bx, y, bz); } @@ -293,7 +292,7 @@ public class NewMapChunkCache implements MapChunkCache { return snap.getBlockTypeId(bx, y-1, bz); } else if(s == BlockStep.Y_PLUS) { - if(y < 127) + if(y < (worldheight-1)) return snap.getBlockTypeId(bx, y+1, bz); } else { @@ -309,6 +308,10 @@ public class NewMapChunkCache implements MapChunkCache { public BlockStep getLastStep() { return laststep; } + @Override + public int getWorldHeight() { + return worldheight; + } } private class OurEndMapIterator extends OurMapIterator { @@ -716,13 +719,6 @@ public class NewMapChunkCache implements MapChunkCache { ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim]; return (byte)ss.getBlockData(x & 0xF, y, z & 0xF); } - /* Get highest block Y - * - */ - public int getHighestBlockYAt(int x, int z) { - ChunkSnapshot ss = snaparray[((x>>4) - x_min) + ((z>>4) - z_min) * x_dim]; - return ss.getHighestBlockYAt(x & 0xF, z & 0xF); - } /* Get sky light level */ public int getBlockSkyLight(int x, int y, int z) {