From b7d2733f0c706671c6a386f32a96fff19e83644d Mon Sep 17 00:00:00 2001 From: Andrew Chin Date: Fri, 10 Feb 2012 20:38:09 -0500 Subject: [PATCH] The compass now changes direction to make the tileset --- overviewer_core/assetmanager.py | 5 +++++ overviewer_core/data/js_src/util.js | 12 +++++++++--- overviewer_core/data/js_src/views.js | 19 +++++++++++++++++++ overviewer_core/tileset.py | 8 ++++++-- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/overviewer_core/assetmanager.py b/overviewer_core/assetmanager.py index 7322b70..5c12113 100644 --- a/overviewer_core/assetmanager.py +++ b/overviewer_core/assetmanager.py @@ -20,6 +20,7 @@ import locale import time from PIL import Image +import world import util import overviewer_version @@ -81,6 +82,10 @@ directory. } dump['CONST']['mapDivId'] = 'mcmap' dump['CONST']['regionStrokeWeight'] = 2 + dump['CONST']['UPPERLEFT'] = world.UPPER_LEFT; + dump['CONST']['UPPERRIGHT'] = world.UPPER_RIGHT; + dump['CONST']['LOWERLEFT'] = world.LOWER_LEFT; + dump['CONST']['LOWERRIGHT'] = world.LOWER_RIGHT; # based on the tilesets we have, group them by worlds worlds = [] diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js index cefeed5..6a45fc8 100644 --- a/overviewer_core/data/js_src/util.js +++ b/overviewer_core/data/js_src/util.js @@ -31,15 +31,21 @@ overviewer.util = { // controls should be added in the order they should appear on screen, // with controls on the outside of the page being added first - var compass = new overviewer.views.CompassView({tagName: 'DIV'}); + var compass = new overviewer.views.CompassView({tagName: 'DIV', model:overviewer.mapModel}); compass.render(); var coordsdiv = new overviewer.views.CoordboxView({tagName: 'DIV'}); coordsdiv.render(); // Update coords on mousemove google.maps.event.addListener(overviewer.map, 'mousemove', function (event) { - coordsdiv.updateCoords(event.latLng); - }); + coordsdiv.updateCoords(event.latLng); + }); + + google.maps.event.addListener(overviewer.map, 'maptypeid_changed', function(event) { + //overviewer.map.getMapTypeId(); + compass.render(); + + }); var worldSelector = new overviewer.views.WorldSelectorView({tagName:'DIV'}); overviewer.collections.worlds.bind("add", worldSelector.render, worldSelector); diff --git a/overviewer_core/data/js_src/views.js b/overviewer_core/data/js_src/views.js index 903dbb5..6acb7cb 100644 --- a/overviewer_core/data/js_src/views.js +++ b/overviewer_core/data/js_src/views.js @@ -78,7 +78,26 @@ overviewer.views.CompassView = Backbone.View.extend({ overviewer.map.controls[google.maps.ControlPosition.TOP_RIGHT].push(this.el); }, + /** + * CompassView::render + */ render: function() { + var currentWorldView = this.model.get("currentWorldView"); + var gmapCurrent = overviewer.map.getMapTypeId(); + for (id in currentWorldView.options.mapTypeIds) { + if (currentWorldView.options.mapTypeIds[id] == gmapCurrent) { + var tsetModel = currentWorldView.model.get("tileSets").at(id); + var northdir = tsetModel.get("north_direction"); + if (northdir == overviewerConfig.CONST.UPPERLEFT) + this.$("IMG").attr("src","compass_upper-left.png"); + if (northdir == overviewerConfig.CONST.UPPERRIGHT) + this.$("IMG").attr("src", "compass_upper-right.png"); + if (northdir == overviewerConfig.CONST.LOWERLEFT) + this.$("IMG").attr("src", "compass_lower-left.png"); + if (northdir == overviewerConfig.CONST.LOWERRIGHT) + this.$("IMG").attr("src", "compass_lower-right.png"); + } + } } }); diff --git a/overviewer_core/tileset.py b/overviewer_core/tileset.py index 47e8b87..fcb3226 100644 --- a/overviewer_core/tileset.py +++ b/overviewer_core/tileset.py @@ -391,8 +391,12 @@ class TileSet(object): base = '', bgcolor = bgcolorformat(self.options.get('bgcolor')), world = self.options.get('worldname_orig') + " - " + self.options.get('dimension'), - last_rendertime = self.this_rendertime, - north_direction = 'upper-left') + last_rendertime = self.this_rendertime) + try: + d['north_direction'] = self.regionset.north_dir + except AttributeError: + d['north_direction'] = 0 + print "get_persistent_data: %r" % d return d