package org.pepsoft.worldpainter.dynmap; import org.dynmap.DynmapWorld; import org.dynmap.utils.MapChunkCache; import org.dynmap.utils.MapIterator; import org.dynmap.utils.VisibilityLimit; import org.pepsoft.minecraft.Chunk; import org.pepsoft.minecraft.ChunkImpl2; import org.pepsoft.worldpainter.exporting.MinecraftWorld; /** * Implementation of {@link MapChunkCache} used by {@link WPDynmapWorld}. * * <p>Created by Pepijn Schmitz on 05-06-15. */ class WPMapChunkCache extends MapChunkCache { WPMapChunkCache(DynmapWorld dmWorld, MinecraftWorld mcWorld) { this.dmWorld = dmWorld; this.mcWorld = mcWorld; } @Override public boolean setChunkDataTypes(boolean blockdata, boolean biome, boolean highestblocky, boolean rawbiome) { return !rawbiome; } @Override public int loadChunks(int maxToLoad) { return 0; } @Override public boolean isDoneLoading() { return true; } @Override public boolean isEmpty() { return false; } @Override public void unloadChunks() { // Do nothing } @Override public boolean isEmptySection(int sx, int sy, int sz) { Chunk chunk = mcWorld.getChunk(sx, sz); if (chunk instanceof ChunkImpl2) { return ! ((ChunkImpl2) chunk).isSectionPresent(sy); } else { return chunk == null; } } @Override public MapIterator getIterator(int x, int y, int z) { return new WPMapIterator(mcWorld, x, y, z); } @Override public void setHiddenFillStyle(HiddenChunkStyle style) { // Do nothing } @Override public void setVisibleRange(VisibilityLimit limit) { // Do nothing } @Override public void setHiddenRange(VisibilityLimit limit) { // Do nothing } @Override public DynmapWorld getWorld() { return dmWorld; } private final DynmapWorld dmWorld; private final MinecraftWorld mcWorld; }