Add support for ChunkSnapshot API (CB860), maintain legacy support too

This commit is contained in:
Mike Primm 2011-06-15 01:27:59 -05:00
parent dc74901638
commit b1d1075dfe
15 changed files with 478 additions and 72 deletions

View file

@ -1,9 +1,9 @@
package org.dynmap.kzedmap;
import org.bukkit.World;
import org.dynmap.MapChunkCache;
import org.dynmap.Color;
import org.dynmap.ConfigurationNode;
import org.dynmap.utils.MapIterator;
public class CaveTileRenderer extends DefaultTileRenderer {
@ -13,11 +13,11 @@ public class CaveTileRenderer extends DefaultTileRenderer {
@Override
protected void scan(World world, int seq, boolean isnether, final Color result, final Color result_day,
MapChunkCache.MapIterator mapiter) {
MapIterator mapiter) {
boolean air = true;
result.setTransparent();
for (;;) {
if (mapiter.y < 0)
if (mapiter.getY() < 0)
return;
int id = mapiter.getBlockTypeID();
@ -63,12 +63,12 @@ public class CaveTileRenderer extends DefaultTileRenderer {
int cr, cg, cb;
int mult = 256;
if (mapiter.y < 64) {
if (mapiter.getY() < 64) {
cr = 0;
cg = 64 + mapiter.y * 3;
cb = 255 - mapiter.y * 4;
cg = 64 + mapiter.getY() * 3;
cb = 255 - mapiter.getY() * 4;
} else {
cr = (mapiter.y - 64) * 4;
cr = (mapiter.getY() - 64) * 4;
cg = 255;
cb = 0;
}

View file

@ -18,9 +18,10 @@ import org.dynmap.ConfigurationNode;
import org.dynmap.MapManager;
import org.dynmap.TileHashManager;
import org.dynmap.debug.Debug;
import org.dynmap.MapChunkCache;
import org.dynmap.kzedmap.KzedMap.KzedBufferedImage;
import org.dynmap.utils.FileLockManager;
import org.dynmap.utils.MapChunkCache;
import org.dynmap.utils.MapIterator;
import org.json.simple.JSONObject;
public class DefaultTileRenderer implements MapTileRenderer {
@ -108,7 +109,7 @@ public class DefaultTileRenderer implements MapTileRenderer {
int x, y;
MapChunkCache.MapIterator mapiter = cache.getIterator(ix, iy, iz);
MapIterator mapiter = cache.getIterator(ix, iy, iz);
Color c1 = new Color();
Color c2 = new Color();
@ -350,14 +351,14 @@ public class DefaultTileRenderer implements MapTileRenderer {
}
protected void scan(World world, int seq, boolean isnether, final Color result, final Color result_day,
MapChunkCache.MapIterator mapiter) {
MapIterator mapiter) {
int lightlevel = 15;
int lightlevel_day = 15;
result.setTransparent();
if(result_day != null)
result_day.setTransparent();
for (;;) {
if (mapiter.y < 0) {
if (mapiter.getY() < 0) {
return;
}
int id = mapiter.getBlockTypeID();
@ -377,7 +378,7 @@ public class DefaultTileRenderer implements MapTileRenderer {
if(colorScheme.datacolors[id] != null) { /* If data colored */
data = mapiter.getBlockData();
}
if((shadowscale != null) && (mapiter.y < 127)) {
if((shadowscale != null) && (mapiter.getY() < 127)) {
/* Find light level of previous chunk */
switch(seq) {
case 0:

View file

@ -1,12 +1,12 @@
package org.dynmap.kzedmap;
import java.util.HashSet;
import org.dynmap.MapChunkCache;
import java.util.List;
import org.bukkit.World;
import org.dynmap.Color;
import org.dynmap.ConfigurationNode;
import org.dynmap.utils.MapIterator;
public class HighlightTileRenderer extends DefaultTileRenderer {
protected HashSet<Integer> highlightBlocks = new HashSet<Integer>();
@ -21,10 +21,10 @@ public class HighlightTileRenderer extends DefaultTileRenderer {
@Override
protected void scan(World world,int seq, boolean isnether, final Color result, final Color result_day,
MapChunkCache.MapIterator mapiter) {
MapIterator mapiter) {
result.setTransparent();
for (;;) {
if (mapiter.y < 0) {
if (mapiter.getY() < 0) {
break;
}

View file

@ -16,7 +16,7 @@ import org.dynmap.DynmapChunk;
import org.dynmap.Log;
import org.dynmap.MapTile;
import org.dynmap.MapType;
import org.dynmap.MapChunkCache;
import org.dynmap.utils.MapChunkCache;
import org.json.simple.JSONObject;
import java.awt.image.DataBufferInt;
import java.awt.image.DataBuffer;
@ -45,7 +45,6 @@ public class KzedMap extends MapType {
public static final int anchorz = 0;
MapTileRenderer[] renderers;
ZoomedTileRenderer zoomrenderer;
/* BufferedImage with direct access to its ARGB-formatted data buffer */
public static class KzedBufferedImage {
@ -67,8 +66,6 @@ public class KzedMap extends MapType {
this.renderers = new MapTileRenderer[renderers.size()];
renderers.toArray(this.renderers);
Log.info("Loaded " + renderers.size() + " renderers for map '" + getClass().toString() + "'.");
zoomrenderer = new ZoomedTileRenderer(configuration);
}
@Override
@ -229,10 +226,7 @@ public class KzedMap extends MapType {
@Override
public boolean render(MapChunkCache cache, MapTile tile, File outputFile) {
if (tile instanceof KzedZoomedMapTile) {
zoomrenderer.render(cache, (KzedZoomedMapTile) tile, outputFile);
return true;
} else if (tile instanceof KzedMapTile) {
if (tile instanceof KzedMapTile) {
return ((KzedMapTile) tile).renderer.render(cache, (KzedMapTile) tile, outputFile);
}
return false;

View file

@ -1,7 +1,8 @@
package org.dynmap.kzedmap;
import java.io.File;
import org.dynmap.MapChunkCache;
import org.dynmap.utils.MapChunkCache;
import org.json.simple.JSONObject;

View file

@ -1,13 +0,0 @@
package org.dynmap.kzedmap;
import java.io.File;
import java.util.Map;
import org.dynmap.MapChunkCache;
public class ZoomedTileRenderer {
public ZoomedTileRenderer(Map<String, Object> configuration) {
}
public void render(MapChunkCache cache, final KzedZoomedMapTile zt, final File outputPath) {
return; /* Doing this in Default render, since image already loaded */
}
}