diff --git a/overviewer.py b/overviewer.py index 3a638e5..bb7c088 100755 --- a/overviewer.py +++ b/overviewer.py @@ -398,7 +398,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces. render = render_things[render_name] logging.debug("Found the following render thing: %r", render) - w = world.World(render['world_path']) + w = world.World(render['worldpath']) # if no dimension has been specified, just use the first one # TODO support the case where a different dimension is specified diff --git a/overviewer_core/configParser.py b/overviewer_core/configParser.py index bf74ef9..5e792bb 100644 --- a/overviewer_core/configParser.py +++ b/overviewer_core/configParser.py @@ -276,6 +276,7 @@ class MultiWorldParser(object): definition = settingsDefinition.render[key] try: val = definition['validator'](world[key]) + world[key] = val except Exception as e: print "Error: %r" % e next diff --git a/overviewer_core/settingsDefinition.py b/overviewer_core/settingsDefinition.py index b7a84e6..b80f1aa 100644 --- a/overviewer_core/settingsDefinition.py +++ b/overviewer_core/settingsDefinition.py @@ -17,19 +17,19 @@ from settingsValidators import * # note that all defaults go thought the validator render = { - "world_path": dict(required=True, validator=validateWorldPath), + "worldpath": dict(required=True, validator=validateWorldPath), "rendermode": dict(required=False, validator=validateRenderMode), - "north-direction": dict(required=False, validator=validateNorthDirection), - "render-range": dict(required=False, validator=validateRenderRange), - "force-render": dict(required=False, validator=bool), - "stochastic-render": dict(required=False, validator=validateStochastic), + "northdirection": dict(required=False, validator=validateNorthDirection), + "renderrange": dict(required=False, validator=validateRenderRange), + "forcerender": dict(required=False, validator=bool), + "stochasticrender": dict(required=False, validator=validateStochastic), "imgformat": dict(required=False, validator=validateImgFormat, default="png"), "imgquality": dict(required=False, validator=validateImgQuality), - "bg-color": dict(required=False, validator=validateBGColor), - "optimize-img": dict(required=False, validator=validateOptImg), - "no-markers": dict(required=False, validator=bool), - "texture-path": dict(required=False, validator=validateTexturePath), + "bgcolor": dict(required=False, validator=validateBGColor, default="1a1a1a"), + "optimizeimg": dict(required=False, validator=validateOptImg, default=0), + "nomarkers": dict(required=False, validator=bool), + "texturepath": dict(required=False, validator=validateTexturePath), "renderchecks": dict(required=False, validator=int, default=0), - "rerender_prob": dict(required=False, validator=float, default=0), + "rerenderprob": dict(required=False, validator=float, default=0), } diff --git a/overviewer_core/settingsValidators.py b/overviewer_core/settingsValidators.py index 60935bc..918e7c4 100644 --- a/overviewer_core/settingsValidators.py +++ b/overviewer_core/settingsValidators.py @@ -59,7 +59,19 @@ def validateImgQuality(qual): return intqual def validateBGColor(color): - raise NotImplementedError("bg color") + """BG color must be an HTML color, with an option leading # (hash symbol) + returns an (r,b,g) 3-tuple + """ + if color[0] != "#": + color = "#%s" % color + if len(color) != 7: + raise ValidationException("%r is not a valid color. Expected HTML color syntax (i.e. #RRGGBB)" % color) + + r = int(color[1:3], 16) + g = int(color[3:5], 16) + b = int(color[5:7], 16) + return (r,g,b) + def validateOptImg(opt): return bool(opt) diff --git a/overviewer_core/tileset.py b/overviewer_core/tileset.py index fcb7f21..5737356 100644 --- a/overviewer_core/tileset.py +++ b/overviewer_core/tileset.py @@ -529,7 +529,7 @@ class TileSet(object): stime = time.time() rendercheck = self.options['renderchecks'] - rerender_prob = self.options['rerender_prob'] + rerender_prob = self.options['rerenderprob'] # XXX TODO: last_rendertime = 0 # TODO diff --git a/test/data/settings/settings_test_1.py b/test/data/settings/settings_test_1.py index 9460de9..fe1f3f6 100644 --- a/test/data/settings/settings_test_1.py +++ b/test/data/settings/settings_test_1.py @@ -1,9 +1,9 @@ -world_path="test/data/settings/test_world" +worldpath="test/data/settings/test_world" rendermode = "normal" render["world"] = { "rendermode": "normal", - "north-direction": ["upper-left"], + "northdirection": ["upper-left"], } render["otherworld"] = { diff --git a/test/data/settings/settings_test_rendermode.py b/test/data/settings/settings_test_rendermode.py index b7c6f27..5c28040 100644 --- a/test/data/settings/settings_test_rendermode.py +++ b/test/data/settings/settings_test_rendermode.py @@ -1,5 +1,5 @@ render["world"] = { - "world_path": "test/data/settings/test_world", + "worldpath": "test/data/settings/test_world", "rendermode": "bad_rendermode", - "north-direction": ["upper-left"], + "northdirection": ["upper-left"], } diff --git a/test/test_settings.py b/test/test_settings.py index 2408e40..2582922 100644 --- a/test/test_settings.py +++ b/test/test_settings.py @@ -14,6 +14,8 @@ class SettingsTest(unittest.TestCase): s.validate() things = s.get_render_things() # no exceptions so far. that's good + self.assertEquals(things['world']['bgcolor'], (26,26,26)) + def test_rendermode_validation(self): s = configParser.MultiWorldParser("test/data/settings/settings_test_rendermode.py") s.parse()