diff --git a/overviewer.py b/overviewer.py index 2a93845..0733ddf 100755 --- a/overviewer.py +++ b/overviewer.py @@ -418,7 +418,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces. # only pass to the TileSet the options it really cares about render['name'] = render_name # perhaps a hack. This is stored here for the asset manager - tileSetOpts = util.dict_subset(render, ["name", "imgformat", "renderchecks", "rerenderprob", "bgcolor", "imgquality", "optimizeimg", "rendermode", "worldname_orig", "title", "dimension", "changelist"]) + tileSetOpts = util.dict_subset(render, ["name", "imgformat", "renderchecks", "rerenderprob", "bgcolor", "imgquality", "optimizeimg", "rendermode", "worldname_orig", "title", "dimension", "changelist", "overlay"]) tileSetOpts.update({"spawn": w.find_true_spawn()}) # TODO find a better way to do this tset = tileset.TileSet(rset, assetMrg, tex, tileSetOpts, tileset_dir) tilesets.append(tset) diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js index 350f7f4..81cc5c0 100644 --- a/overviewer_core/data/js_src/util.js +++ b/overviewer_core/data/js_src/util.js @@ -64,8 +64,6 @@ overviewer.util = { } var overlayControl = new overviewer.views.OverlayControlView(); - overlayControl.registerEvents(overlayControl); - overlayControl.render(); var spawnmarker = new overviewer.views.SpawnIconView(); @@ -85,6 +83,9 @@ overviewer.util = { compass.render(); spawnmarker.render(); + // update list of spawn overlays + overlayControl.render(); + // re-center on the last viewport var currentWorldView = overviewer.mapModel.get("currentWorldView"); if (currentWorldView.options.lastViewport) { diff --git a/overviewer_core/data/js_src/views.js b/overviewer_core/data/js_src/views.js index cafcb1b..21fbaac 100644 --- a/overviewer_core/data/js_src/views.js +++ b/overviewer_core/data/js_src/views.js @@ -23,8 +23,9 @@ overviewer.views.WorldView = Backbone.View.extend({ newMapType.shortname = tset.get("name"); newMapType.alt = "Minecraft " + tset.get("name") + " Map"; newMapType.projection = new overviewer.classes.MapProjection(); - + if (tset.get("isOverlay")) { + newMapType.tiles = tset.get("tilesets"); this.options.overlayMapTypes.push(newMapType); this.options.overlayMapTypeIds.push(overviewerConfig.CONST.mapDivId + this.model.get("name") + tset.get("name")); } else { @@ -231,7 +232,6 @@ overviewer.views.OverlayControlView = Backbone.View.extend({ }, registerEvents: function(me) { overviewer.mapModel.bind("change:currentWorldView", me.render, me); - }, /** @@ -246,8 +246,7 @@ overviewer.views.OverlayControlView = Backbone.View.extend({ // if this world has no overlays, don't create this control var mapTypes = overviewer.mapModel.get('currentWorldView').options.overlayMapTypes; if (mapTypes.length == 0) { return; } - - + var controlText = document.createElement('DIV'); controlText.innerHTML = "Overlays"; @@ -265,32 +264,34 @@ overviewer.views.OverlayControlView = Backbone.View.extend({ $(controlBorder).toggleClass('top-active'); $(dropdownDiv).toggle(); }); - + var currentTileSetPath = overviewer.mapView.options.currentTileSet.get('path'); + for (i in mapTypes) { var mt = mapTypes[i]; - this.addItem({label: mt.name, - name: mt.name, - mt: mt, + if (mt.tiles.indexOf(currentTileSetPath)!=-1) { + this.addItem({label: mt.name, + name: mt.name, + mt: mt, - action: function(this_item, checked) { - //console.log(this_item); - if (checked) { - overviewer.map.overlayMapTypes.push(this_item.mt); - } else { - var idx_to_delete = -1; - overviewer.map.overlayMapTypes.forEach(function(e, j) { - if (e == this_item.mt) { - idx_to_delete = j; + action: function(this_item, checked) { + if (checked) { + overviewer.map.overlayMapTypes.push(this_item.mt); + } else { + var idx_to_delete = -1; + overviewer.map.overlayMapTypes.forEach(function(e, j) { + if (e == this_item.mt) { + idx_to_delete = j; + } + }); + if (idx_to_delete >= 0) { + overviewer.map.overlayMapTypes.removeAt(idx_to_delete); } - }); - if (idx_to_delete >= 0) { - overviewer.map.overlayMapTypes.removeAt(idx_to_delete); } - } - } - }) + } + }) + } } diff --git a/overviewer_core/tileset.py b/overviewer_core/tileset.py index 6919884..a08443d 100644 --- a/overviewer_core/tileset.py +++ b/overviewer_core/tileset.py @@ -524,6 +524,9 @@ class TileSet(object): imgextension = self.imgextension, isOverlay = isOverlay ) + if isOverlay: + d.update({"tilesets": self.options.get("overlay")}) + if (self.regionset.get_type() == "overworld"): d.update({"spawn": self.options.get("spawn")}) try: