Merge pull request #688
Merge branch 'devel' of git://github.com/contre/Minecraft-Overviewer into devel
This commit is contained in:
@@ -480,6 +480,18 @@ values. The valid configuration keys are listed below.
|
|||||||
|
|
||||||
**Default:** ``[]`` (an empty list)
|
**Default:** ``[]`` (an empty list)
|
||||||
|
|
||||||
|
.. _option_overlay:
|
||||||
|
|
||||||
|
``overlay``
|
||||||
|
This specifies which renders that this render will be displayed on top of.
|
||||||
|
It should be a list of renders.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
At this time, this feature is not fully implemented.
|
||||||
|
|
||||||
|
**Default:** ``[]`` (an empty list)
|
||||||
|
|
||||||
.. _customrendermodes:
|
.. _customrendermodes:
|
||||||
|
|
||||||
Custom Rendermodes and Rendermode Primitives
|
Custom Rendermodes and Rendermode Primitives
|
||||||
|
|||||||
@@ -304,6 +304,20 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
|
|||||||
if render.get('forcerender', False):
|
if render.get('forcerender', False):
|
||||||
render['renderchecks'] = 2
|
render['renderchecks'] = 2
|
||||||
|
|
||||||
|
# check if overlays are set, if so, make sure that those renders exist
|
||||||
|
if render.get('overlay', []) != []:
|
||||||
|
for x in render.get('overlay'):
|
||||||
|
if x != rname:
|
||||||
|
try:
|
||||||
|
renderLink = config['renders'][x]
|
||||||
|
except KeyError:
|
||||||
|
logging.error("Render %s's overlay is '%s', but I could not find a corresponding entry in the renders dictionary.",
|
||||||
|
rname, x)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
logging.error("Render %s's overlay contains itself.", rname)
|
||||||
|
return 1
|
||||||
|
|
||||||
destdir = config['outputdir']
|
destdir = config['outputdir']
|
||||||
if not destdir:
|
if not destdir:
|
||||||
logging.error("You must specify the output directory in your config file.")
|
logging.error("You must specify the output directory in your config file.")
|
||||||
@@ -403,7 +417,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
|
# 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
|
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
|
tileSetOpts.update({"spawn": w.find_true_spawn()}) # TODO find a better way to do this
|
||||||
tset = tileset.TileSet(rset, assetMrg, tex, tileSetOpts, tileset_dir)
|
tset = tileset.TileSet(rset, assetMrg, tex, tileSetOpts, tileset_dir)
|
||||||
tilesets.append(tset)
|
tilesets.append(tset)
|
||||||
|
|||||||
@@ -64,8 +64,6 @@ overviewer.util = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var overlayControl = new overviewer.views.OverlayControlView();
|
var overlayControl = new overviewer.views.OverlayControlView();
|
||||||
overlayControl.registerEvents(overlayControl);
|
|
||||||
overlayControl.render();
|
|
||||||
|
|
||||||
var spawnmarker = new overviewer.views.SpawnIconView();
|
var spawnmarker = new overviewer.views.SpawnIconView();
|
||||||
|
|
||||||
@@ -85,6 +83,9 @@ overviewer.util = {
|
|||||||
compass.render();
|
compass.render();
|
||||||
spawnmarker.render();
|
spawnmarker.render();
|
||||||
|
|
||||||
|
// update list of spawn overlays
|
||||||
|
overlayControl.render();
|
||||||
|
|
||||||
// re-center on the last viewport
|
// re-center on the last viewport
|
||||||
var currentWorldView = overviewer.mapModel.get("currentWorldView");
|
var currentWorldView = overviewer.mapModel.get("currentWorldView");
|
||||||
if (currentWorldView.options.lastViewport) {
|
if (currentWorldView.options.lastViewport) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ overviewer.views.WorldView = Backbone.View.extend({
|
|||||||
newMapType.projection = new overviewer.classes.MapProjection();
|
newMapType.projection = new overviewer.classes.MapProjection();
|
||||||
|
|
||||||
if (tset.get("isOverlay")) {
|
if (tset.get("isOverlay")) {
|
||||||
|
newMapType.tiles = tset.get("tilesets");
|
||||||
this.options.overlayMapTypes.push(newMapType);
|
this.options.overlayMapTypes.push(newMapType);
|
||||||
this.options.overlayMapTypeIds.push(overviewerConfig.CONST.mapDivId + this.model.get("name") + tset.get("name"));
|
this.options.overlayMapTypeIds.push(overviewerConfig.CONST.mapDivId + this.model.get("name") + tset.get("name"));
|
||||||
} else {
|
} else {
|
||||||
@@ -231,7 +232,6 @@ overviewer.views.OverlayControlView = Backbone.View.extend({
|
|||||||
},
|
},
|
||||||
registerEvents: function(me) {
|
registerEvents: function(me) {
|
||||||
overviewer.mapModel.bind("change:currentWorldView", me.render, me);
|
overviewer.mapModel.bind("change:currentWorldView", me.render, me);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -247,7 +247,6 @@ overviewer.views.OverlayControlView = Backbone.View.extend({
|
|||||||
var mapTypes = overviewer.mapModel.get('currentWorldView').options.overlayMapTypes;
|
var mapTypes = overviewer.mapModel.get('currentWorldView').options.overlayMapTypes;
|
||||||
if (mapTypes.length == 0) { return; }
|
if (mapTypes.length == 0) { return; }
|
||||||
|
|
||||||
|
|
||||||
var controlText = document.createElement('DIV');
|
var controlText = document.createElement('DIV');
|
||||||
controlText.innerHTML = "Overlays";
|
controlText.innerHTML = "Overlays";
|
||||||
|
|
||||||
@@ -266,15 +265,16 @@ overviewer.views.OverlayControlView = Backbone.View.extend({
|
|||||||
$(dropdownDiv).toggle();
|
$(dropdownDiv).toggle();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var currentTileSetPath = overviewer.mapView.options.currentTileSet.get('path');
|
||||||
|
|
||||||
for (i in mapTypes) {
|
for (i in mapTypes) {
|
||||||
var mt = mapTypes[i];
|
var mt = mapTypes[i];
|
||||||
|
if (mt.tiles.indexOf(currentTileSetPath)!=-1) {
|
||||||
this.addItem({label: mt.name,
|
this.addItem({label: mt.name,
|
||||||
name: mt.name,
|
name: mt.name,
|
||||||
mt: mt,
|
mt: mt,
|
||||||
|
|
||||||
action: function(this_item, checked) {
|
action: function(this_item, checked) {
|
||||||
//console.log(this_item);
|
|
||||||
if (checked) {
|
if (checked) {
|
||||||
overviewer.map.overlayMapTypes.push(this_item.mt);
|
overviewer.map.overlayMapTypes.push(this_item.mt);
|
||||||
} else {
|
} else {
|
||||||
@@ -292,6 +292,7 @@ overviewer.views.OverlayControlView = Backbone.View.extend({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ renders = Setting(required=True, default=util.OrderedDict(),
|
|||||||
"crop": Setting(required=False, validator=validateCrop, default=None),
|
"crop": Setting(required=False, validator=validateCrop, default=None),
|
||||||
"changelist": Setting(required=False, validator=validateStr, default=None),
|
"changelist": Setting(required=False, validator=validateStr, default=None),
|
||||||
"markers": Setting(required=False, validator=validateMarkers, default=[]),
|
"markers": Setting(required=False, validator=validateMarkers, default=[]),
|
||||||
|
"overlay": Setting(required=False, validator=validateOverlays, default=[]),
|
||||||
|
|
||||||
# Remove this eventually (once people update their configs)
|
# Remove this eventually (once people update their configs)
|
||||||
"worldname": Setting(required=False, default=None,
|
"worldname": Setting(required=False, default=None,
|
||||||
|
|||||||
@@ -51,6 +51,14 @@ def validateMarkers(filterlist):
|
|||||||
raise ValidationException("%r must be a function"% x)
|
raise ValidationException("%r must be a function"% x)
|
||||||
return filterlist
|
return filterlist
|
||||||
|
|
||||||
|
def validateOverlays(renderlist):
|
||||||
|
if type(renderlist) != list:
|
||||||
|
raise ValidationException("Overlay must specify a list of renders")
|
||||||
|
for x in renderlist:
|
||||||
|
if validateStr(x) == '':
|
||||||
|
raise ValidationException("%r must be a string"% x)
|
||||||
|
return renderlist
|
||||||
|
|
||||||
def validateWorldPath(worldpath):
|
def validateWorldPath(worldpath):
|
||||||
_, worldpath = checkBadEscape(worldpath)
|
_, worldpath = checkBadEscape(worldpath)
|
||||||
abs_path = os.path.abspath(os.path.expanduser(worldpath))
|
abs_path = os.path.abspath(os.path.expanduser(worldpath))
|
||||||
|
|||||||
@@ -524,6 +524,9 @@ class TileSet(object):
|
|||||||
imgextension = self.imgextension,
|
imgextension = self.imgextension,
|
||||||
isOverlay = isOverlay
|
isOverlay = isOverlay
|
||||||
)
|
)
|
||||||
|
if isOverlay:
|
||||||
|
d.update({"tilesets": self.options.get("overlay")})
|
||||||
|
|
||||||
if (self.regionset.get_type() == "overworld"):
|
if (self.regionset.get_type() == "overworld"):
|
||||||
d.update({"spawn": self.options.get("spawn")})
|
d.update({"spawn": self.options.get("spawn")})
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user