From 3e1ae9dd1721faa7f70f1c3685055ed34d412871 Mon Sep 17 00:00:00 2001 From: Thomas Lake Date: Wed, 17 Aug 2011 17:49:22 -0400 Subject: [PATCH] Store north-direction in overviewer.dat Check stored value at render time and abort if direction has changed and --forcerender not specified. Addresses concerns from pull request #458 --- overviewer.py | 9 ++++++++- overviewer_core/googlemap.py | 1 + overviewer_core/world.py | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/overviewer.py b/overviewer.py index 3a191b5..3ae3494 100755 --- a/overviewer.py +++ b/overviewer.py @@ -117,7 +117,7 @@ def main(): parser.add_option("-v", "--verbose", dest="verbose", action="count", default=0, helptext="Print more output. You can specify this option multiple times.") parser.add_option("--skip-js", dest="skipjs", action="store_true", helptext="Don't output marker.js or regions.js") parser.add_option("--no-signs", dest="nosigns", action="store_true", helptext="Don't output signs to markers.js") - parser.add_option("--north-direction", dest="north_direction", helptext="Specifies which corner of the screen north will point to. Valid options are: " + ", ".join(avail_north_dirs) + ".", type="choice", default=avail_north_dirs[0], choices=avail_north_dirs) + parser.add_option("--north-direction", dest="north_direction", action="store", helptext="Specifies which corner of the screen north will point to. Valid options are: " + ", ".join(avail_north_dirs) + ".", type="choice", default=avail_north_dirs[0], choices=avail_north_dirs) parser.add_option("--display-config", dest="display_config", action="store_true", helptext="Display the configuration parameters, but don't render the map. Requires all required options to be specified", commandLineOnly=True) #parser.add_option("--write-config", dest="write_config", action="store_true", helptext="Writes out a sample config file", commandLineOnly=True) @@ -241,6 +241,13 @@ def main(): # First do world-level preprocessing w = world.World(worlddir, destdir, useBiomeData=useBiomeData, regionlist=regionlist, north_direction=north_direction) + if not (w.persistentData['north_direction'] == north_direction) and not options.forcerender: + logging.error("Conflicting north-direction setting!") + logging.error("Overviewer.dat gives previous north-direction as "+w.persistentData['north_direction']) + logging.error("Requested north-direction was "+north_direction) + logging.error("To change north-direction of an existing render, --forcerender must be specified") + sys.exit(1) + w.go(options.procs) logging.info("Rending the following tilesets: %s", ",".join(options.rendermode)) diff --git a/overviewer_core/googlemap.py b/overviewer_core/googlemap.py index 82b4869..9a4e95e 100644 --- a/overviewer_core/googlemap.py +++ b/overviewer_core/googlemap.py @@ -187,6 +187,7 @@ class MapGen(object): # save persistent data self.world.persistentData['POI'] = self.world.POI + self.world.persistentData['north_direction'] = self.world.north_direction with open(self.world.pickleFile,"wb") as f: cPickle.dump(self.world.persistentData,f) diff --git a/overviewer_core/world.py b/overviewer_core/world.py index 59b77c5..2f5e7f7 100644 --- a/overviewer_core/world.py +++ b/overviewer_core/world.py @@ -135,9 +135,11 @@ class World(object): if os.path.exists(self.pickleFile): with open(self.pickleFile,"rb") as p: self.persistentData = cPickle.load(p) + if not self.persistentData.get('north_direction', False): + self.persistentData['north_direction']=='lower-left' else: # some defaults - self.persistentData = dict(POI=[]) + self.persistentData = dict(POI=[], north_direction=self.north_direction) def get_region_path(self, chunkX, chunkY):