Separated rendering from MapTile, removed separate cave logic (integrated in rendering) and temporarily removed/disabled zoom-rendering.

This commit is contained in:
FrozenCow 2011-01-06 03:30:50 +01:00
parent 225d28e177
commit c5d5a85a17
7 changed files with 462 additions and 482 deletions

View file

@ -0,0 +1,96 @@
package org.dynmap.render;
import java.awt.Color;
import java.util.Map;
import org.bukkit.World;
import org.dynmap.MapManager;
public class CaveTileRenderer extends DayTileRenderer {
public CaveTileRenderer(Map<Integer, Color[]> colors, String outputPath) {
super(colors, outputPath);
}
@Override
protected Color scan(World world, int x, int y, int z, int seq)
{
boolean air = true;
for(;;) {
if(y < 0)
return Color.BLACK;
int id = world.getBlockAt(x, y, z).getTypeID();
switch(seq) {
case 0:
x--;
break;
case 1:
y--;
break;
case 2:
z++;
break;
case 3:
y--;
break;
}
seq = (seq + 1) & 3;
switch(id) {
case 20:
case 18:
case 17:
case 78:
case 79:
id = 0;
break;
default:
}
if(id != 0) {
air = false;
continue;
}
if(id == 0 && !air) {
int cr, cg, cb;
int mult = 256;
if(y < 64) {
cr = 0;
cg = 64 + y * 3;
cb = 255 - y * 4;
} else {
cr = (y-64) * 4;
cg = 255;
cb = 0;
}
switch(seq) {
case 0:
mult = 224;
break;
case 1:
mult = 256;
break;
case 2:
mult = 192;
break;
case 3:
mult = 160;
break;
}
cr = cr * mult / 256;
cg = cg * mult / 256;
cb = cb * mult / 256;
return new Color(cr, cg, cb);
}
}
}
}