From 4f151f1841fd6e68aaf8100f7fae3533cec9c977 Mon Sep 17 00:00:00 2001 From: fescen9 Date: Fri, 17 Dec 2010 02:19:56 +0000 Subject: [PATCH] Merged revisions 37-48 from trunk. --- MapManager.java | 104 +++++++++++++---- MapTile.java | 254 +++++++++++++++++++++++++++++++++++++++--- WebServerRequest.java | 9 +- dist/DynamicMap.rar | Bin 39895 -> 44611 bytes web/book.png | Bin 0 -> 829 bytes web/cave_off.png | Bin 0 -> 1134 bytes web/cave_on.png | Bin 0 -> 868 bytes web/index.html | 4 +- web/map.js | 178 ++++++++++++++++++----------- web/style.css | 5 + 10 files changed, 444 insertions(+), 110 deletions(-) create mode 100644 web/book.png create mode 100644 web/cave_off.png create mode 100644 web/cave_on.png diff --git a/MapManager.java b/MapManager.java index e5720003..0155dde9 100644 --- a/MapManager.java +++ b/MapManager.java @@ -52,6 +52,8 @@ public class MapManager extends Thread { /* a list of MapTiles to be updated */ private LinkedList staleTiles; + /* a list of MapTiles for which the cave tile is to be updated */ + private LinkedList staleCaveTiles; /* whether the worker thread should be running now */ private boolean running = false; @@ -84,6 +86,8 @@ public class MapManager extends Thread { /* this list stores the tile updates */ public LinkedList tileUpdates = null; + /* this list stores the cave tile updates */ + public LinkedList caveTileUpdates = null; /* map debugging mode (send debugging messages to this player) */ public String debugPlayer = null; @@ -138,7 +142,9 @@ public class MapManager extends Thread { tileStore = new HashMap(); staleTiles = new LinkedList(); + staleCaveTiles = new LinkedList(); tileUpdates = new LinkedList(); + caveTileUpdates = new LinkedList(); zoomCache = new Cache(zoomCacheSize); signs = new HashMap(); @@ -254,37 +260,62 @@ public class MapManager extends Thread { } } + /* update tile update list */ + private void updateUpdates(MapTile t, LinkedList lst) + { + long now = System.currentTimeMillis(); + long deadline = now - maxTileAge; + + synchronized(lock) { + ListIterator it = lst.listIterator(0); + while(it.hasNext()) { + TileUpdate tu = it.next(); + if(tu.at < deadline || tu.tile == t) + it.remove(); + } + lst.addLast(new TileUpdate(now, t)); + } + } + /* the worker/renderer thread */ public void run() { log.info("Map renderer has started."); while(running) { + boolean found = false; + MapTile t = this.popStaleTile(); if(t != null) { t.render(this); - long now = System.currentTimeMillis(); - long deadline = now - maxTileAge; - - /* update the tileupdate list */ - synchronized(lock) { - ListIterator it = tileUpdates.listIterator(0); - while(it.hasNext()) { - TileUpdate tu = it.next(); - if(tu.at < deadline || tu.tile == t) - it.remove(); - } - tileUpdates.addLast(new TileUpdate(now, t)); - } + updateUpdates(t, tileUpdates); try { this.sleep(renderWait); } catch(InterruptedException e) { } - } else { + + found = true; + } + + MapTile ct = this.popStaleCaveTile(); + if(ct != null) { + ct.renderCave(this); + + updateUpdates(ct, caveTileUpdates); + try { - this.sleep(1000); + this.sleep(renderWait); + } catch(InterruptedException e) { + } + + found = true; + } + + if(!found) { + try { + this.sleep(500); } catch(InterruptedException e) { } } @@ -350,18 +381,47 @@ public class MapManager extends Thread { } } + /* get next MapTile for which the cave map needs to be + * regenerated, or null + * the mapTile is removed from the list of stale cave tiles */ + public MapTile popStaleCaveTile() + { + synchronized(lock) { + try { + MapTile t = staleCaveTiles.removeFirst(); + t.staleCave = false; + return t; + } catch(NoSuchElementException e) { + return null; + } + } + } + /* put a MapTile that needs to be regenerated on the list of stale tiles */ public boolean pushStaleTile(MapTile m) { synchronized(lock) { - if(m.stale) return false; + boolean ret = false; - m.stale = true; - staleTiles.addLast(m); + if(!m.stale) { + m.stale = true; + staleTiles.addLast(m); - debug(m.toString() + " is now stale"); + debug(m.toString() + " is now stale"); - return true; + ret = true; + } + + if(!m.staleCave) { + m.staleCave = true; + staleCaveTiles.addLast(m); + + debug(m.toString() + " cave is now stale"); + + ret = true; + } + + return ret; } } @@ -393,7 +453,7 @@ public class MapManager extends Thread { public int getStaleCount() { synchronized(lock) { - return staleTiles.size(); + return staleTiles.size() + staleCaveTiles.size(); } } @@ -401,7 +461,7 @@ public class MapManager extends Thread { public int getRecentUpdateCount() { synchronized(lock) { - return tileUpdates.size(); + return tileUpdates.size() + caveTileUpdates.size(); } } diff --git a/MapTile.java b/MapTile.java index a7ca15e5..804edf2a 100644 --- a/MapTile.java +++ b/MapTile.java @@ -24,6 +24,9 @@ public class MapTile { /* whether this tile needs to be updated */ boolean stale = false; + /* whether the cave map of this tile needs to be updated */ + boolean staleCave = false; + /* create new MapTile */ public MapTile(int px, int py, int zpx, int zpy) { @@ -37,6 +40,57 @@ public class MapTile { mz = MapManager.anchorz + px / 2 - py / 2; } + /* try to get the server to load the relevant chunks */ + public void loadChunks() + { + int x1 = mx - 64; + int x2 = mx + MapManager.tileWidth / 2 + MapManager.tileHeight / 2; + + int z1 = mz - MapManager.tileHeight / 2; + int z2 = mz + MapManager.tileWidth / 2 + 64; + + int x, z; + Server s = etc.getServer(); + + for(x=x1; x=0; x-=2) { + Color c1 = caveScan(mgr, jx, iy, jz, 0); + Color c2 = caveScan(mgr, jx, iy, jz, 2); + + r.setPixel(x, y, new int[] { c1.getRed(), c1.getGreen(), c1.getBlue() }); + r.setPixel(x-1, y, new int[] { c2.getRed(), c2.getGreen(), c2.getBlue() }); + + jx++; + jz++; + + } + + y ++; + + jx = ix; + jz = iz - 1; + + for(x=MapManager.tileWidth-1; x>=0; x-=2) { + Color c1 = caveScan(mgr, jx, iy, jz, 2); + jx++; + jz++; + Color c2 = caveScan(mgr, jx, iy, jz, 0); + + r.setPixel(x, y, new int[] { c1.getRed(), c1.getGreen(), c1.getBlue() }); + r.setPixel(x-1, y, new int[] { c2.getRed(), c2.getGreen(), c2.getBlue() }); + } + + y ++; + + ix ++; + iz --; + } + + /* save the generated tile */ + saveTile(getCavePath(mgr), im, getZoomCavePath(mgr), mgr); + } + + /* save rendered tile, update zoom-out tile */ + public void saveTile(String tilePath, BufferedImage im, String zoomPath, MapManager mgr) + { /* save image */ try { - String path = getPath(mgr); - File file = new File(path); + File file = new File(tilePath); ImageIO.write(im, "png", file); } catch(IOException e) { - log.log(Level.SEVERE, "Failed to save tile: " + getPath(mgr), e); + log.log(Level.SEVERE, "Failed to save tile: " + tilePath, e); } catch(java.lang.NullPointerException e) { - log.log(Level.SEVERE, "Failed to save tile (NullPointerException): " + getPath(mgr), e); + log.log(Level.SEVERE, "Failed to save tile (NullPointerException): " + tilePath, e); } /* now update zoom-out tile */ - String zPath = getZoomPath(mgr); - BufferedImage zIm = mgr.zoomCache.get(zPath); + BufferedImage zIm = mgr.zoomCache.get(zoomPath); if(zIm == null) { /* zoom-out tile doesn't exist - try to load it from disk */ - mgr.debug("Trying to load zoom-out tile: " + zPath); + mgr.debug("Trying to load zoom-out tile: " + zoomPath); try { - File file = new File(zPath); + File file = new File(zoomPath); zIm = ImageIO.read(file); } catch(IOException e) { } - if(zIm == null) { - mgr.debug("Failed to load zoom-out tile: " + zPath); - + mgr.debug("Failed to load zoom-out tile: " + zoomPath); /* create new one */ /* TODO: we might use existing tiles that we could load * to fill the zoomed out tile in... */ zIm = new BufferedImage(MapManager.tileWidth, MapManager.tileHeight, BufferedImage.TYPE_INT_RGB); } else { - mgr.debug("Loaded zoom-out tile from " + zPath); + mgr.debug("Loaded zoom-out tile from " + zoomPath); } } else { - mgr.debug("Using zoom-out tile from cache: " + zPath); + mgr.debug("Using zoom-out tile from cache: " + zoomPath); } /* update zoom-out tile */ @@ -179,22 +302,22 @@ public class MapTile { g2.drawImage(im, ox, oy, scw, sch, null); /* update zoom-out tile cache */ - BufferedImage oldIm = mgr.zoomCache.put(zPath, zIm); + BufferedImage oldIm = mgr.zoomCache.put(zoomPath, zIm); if(oldIm != null && oldIm != zIm) { oldIm.flush(); } /* save zoom-out tile */ try { - File file = new File(zPath); + File file = new File(zoomPath); ImageIO.write(zIm, "png", file); - mgr.debug("saved zoom-out tile at " + zPath); + mgr.debug("saved zoom-out tile at " + zoomPath); //log.info("Saved tile: " + path); } catch(IOException e) { - log.log(Level.SEVERE, "Failed to save zoom-out tile: " + zPath, e); + log.log(Level.SEVERE, "Failed to save zoom-out tile: " + zoomPath, e); } catch(java.lang.NullPointerException e) { - log.log(Level.SEVERE, "Failed to save zoom-out tile (NullPointerException): " + zPath, e); + log.log(Level.SEVERE, "Failed to save zoom-out tile (NullPointerException): " + zoomPath, e); } } @@ -210,6 +333,18 @@ public class MapTile { return mgr.tilepath + "zt_" + zpx + "_" + zpy + ".png"; } + /* generate a path name for this cave map tile */ + public String getCavePath(MapManager mgr) + { + return mgr.tilepath + "ct_" + px + "_" + py + ".png"; + } + + /* generate a path name for the zoomed-out cave tile */ + public String getZoomCavePath(MapManager mgr) + { + return mgr.tilepath + "czt_" + zpx + "_" + zpy + ".png"; + } + /* try to load already generated image */ public BufferedImage loadTile(MapManager mgr) { @@ -284,4 +419,87 @@ public class MapTile { } } } + + /* cast a ray into the caves */ + private Color caveScan(MapManager mgr, int x, int y, int z, int seq) + { + Server s = etc.getServer(); + boolean air = true; + + for(;;) { + if(y < 0) + return Color.BLACK; + + int id = s.getBlockIdAt(x, y, z); + + 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); + } + } + } } diff --git a/WebServerRequest.java b/WebServerRequest.java index bcf2f6d5..61ba8bad 100644 --- a/WebServerRequest.java +++ b/WebServerRequest.java @@ -60,6 +60,7 @@ public class WebServerRequest extends Thread { int current = (int) (System.currentTimeMillis() / 1000); long cutoff = 0; + if(path.charAt(0) == '/') { try { cutoff = ((long) Integer.parseInt(path.substring(1))) * 1000; @@ -114,7 +115,13 @@ public class WebServerRequest extends Thread { synchronized(mgr.lock) { for(TileUpdate tu : mgr.tileUpdates) { if(tu.at >= cutoff) { - sb.append(tu.tile.px + "_" + tu.tile.py + " " + tu.tile.zpx + "_" + tu.tile.zpy + "\n"); + sb.append(tu.tile.px + "_" + tu.tile.py + " " + tu.tile.zpx + "_" + tu.tile.zpy + " t\n"); + } + } + + for(TileUpdate tu : mgr.caveTileUpdates) { + if(tu.at >= cutoff) { + sb.append(tu.tile.px + "_" + tu.tile.py + " " + tu.tile.zpx + "_" + tu.tile.zpy + " c\n"); } } } diff --git a/dist/DynamicMap.rar b/dist/DynamicMap.rar index 1e85c2dde45fd74fb11802d9be205866a4aa22a8..b37895cd9ce2abe3177323298ed1c09de99c903f 100644 GIT binary patch delta 34738 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 G0)GL)*JU~Y delta 30082 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 Hu0mjf>ttG= literal 0 HcmV?d00001 diff --git a/web/cave_off.png b/web/cave_off.png new file mode 100644 index 0000000000000000000000000000000000000000..500d9872ee1ce6c07a54ac46ad1fe00c1dcf863a GIT binary patch literal 1134 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
-