package org.dynmap.kzedmap; import org.bukkit.World; import org.dynmap.MapChunkCache; import org.dynmap.Color; import org.dynmap.ConfigurationNode; public class CaveTileRenderer extends DefaultTileRenderer { public CaveTileRenderer(ConfigurationNode configuration) { super(configuration); } @Override protected void scan(World world, int x, int y, int z, int seq, boolean isnether, final Color result, MapChunkCache cache) { boolean air = true; result.setTransparent(); for (;;) { if (y < 0) return; int id = cache.getBlockTypeID(x, y, z); if(isnether) { /* Make ceiling into air in nether */ if(id != 0) id = 0; else isnether = false; } 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; result.setRGBA(cr, cg, cb, 255); return; } } } }