Merge pull request #688
Merge branch 'devel' of git://github.com/contre/Minecraft-Overviewer into devel
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -79,6 +79,7 @@ renders = Setting(required=True, default=util.OrderedDict(),
|
||||
"crop": Setting(required=False, validator=validateCrop, default=None),
|
||||
"changelist": Setting(required=False, validator=validateStr, default=None),
|
||||
"markers": Setting(required=False, validator=validateMarkers, default=[]),
|
||||
"overlay": Setting(required=False, validator=validateOverlays, default=[]),
|
||||
|
||||
# Remove this eventually (once people update their configs)
|
||||
"worldname": Setting(required=False, default=None,
|
||||
|
||||
@@ -51,6 +51,14 @@ def validateMarkers(filterlist):
|
||||
raise ValidationException("%r must be a function"% x)
|
||||
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):
|
||||
_, worldpath = checkBadEscape(worldpath)
|
||||
abs_path = os.path.abspath(os.path.expanduser(worldpath))
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user