0

Merge remote-tracking branch 'origin/rewrite' into rewrite

This commit is contained in:
Andrew Brown
2012-01-02 00:30:29 -05:00
8 changed files with 32 additions and 17 deletions

View File

@@ -398,7 +398,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
render = render_things[render_name] render = render_things[render_name]
logging.debug("Found the following render thing: %r", render) 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 # if no dimension has been specified, just use the first one
# TODO support the case where a different dimension is specified # TODO support the case where a different dimension is specified

View File

@@ -276,6 +276,7 @@ class MultiWorldParser(object):
definition = settingsDefinition.render[key] definition = settingsDefinition.render[key]
try: try:
val = definition['validator'](world[key]) val = definition['validator'](world[key])
world[key] = val
except Exception as e: except Exception as e:
print "Error: %r" % e print "Error: %r" % e
next next

View File

@@ -17,19 +17,19 @@ from settingsValidators import *
# note that all defaults go thought the validator # note that all defaults go thought the validator
render = { render = {
"world_path": dict(required=True, validator=validateWorldPath), "worldpath": dict(required=True, validator=validateWorldPath),
"rendermode": dict(required=False, validator=validateRenderMode), "rendermode": dict(required=False, validator=validateRenderMode),
"north-direction": dict(required=False, validator=validateNorthDirection), "northdirection": dict(required=False, validator=validateNorthDirection),
"render-range": dict(required=False, validator=validateRenderRange), "renderrange": dict(required=False, validator=validateRenderRange),
"force-render": dict(required=False, validator=bool), "forcerender": dict(required=False, validator=bool),
"stochastic-render": dict(required=False, validator=validateStochastic), "stochasticrender": dict(required=False, validator=validateStochastic),
"imgformat": dict(required=False, validator=validateImgFormat, default="png"), "imgformat": dict(required=False, validator=validateImgFormat, default="png"),
"imgquality": dict(required=False, validator=validateImgQuality), "imgquality": dict(required=False, validator=validateImgQuality),
"bg-color": dict(required=False, validator=validateBGColor), "bgcolor": dict(required=False, validator=validateBGColor, default="1a1a1a"),
"optimize-img": dict(required=False, validator=validateOptImg), "optimizeimg": dict(required=False, validator=validateOptImg, default=0),
"no-markers": dict(required=False, validator=bool), "nomarkers": dict(required=False, validator=bool),
"texture-path": dict(required=False, validator=validateTexturePath), "texturepath": dict(required=False, validator=validateTexturePath),
"renderchecks": dict(required=False, validator=int, default=0), "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),
} }

View File

@@ -59,7 +59,19 @@ def validateImgQuality(qual):
return intqual return intqual
def validateBGColor(color): 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): def validateOptImg(opt):
return bool(opt) return bool(opt)

View File

@@ -533,7 +533,7 @@ class TileSet(object):
stime = time.time() stime = time.time()
rendercheck = self.options['renderchecks'] rendercheck = self.options['renderchecks']
rerender_prob = self.options['rerender_prob'] rerender_prob = self.options['rerenderprob']
# XXX TODO: # XXX TODO:
last_rendertime = 0 # TODO last_rendertime = 0 # TODO

View File

@@ -1,9 +1,9 @@
world_path="test/data/settings/test_world" worldpath="test/data/settings/test_world"
rendermode = "normal" rendermode = "normal"
render["world"] = { render["world"] = {
"rendermode": "normal", "rendermode": "normal",
"north-direction": ["upper-left"], "northdirection": ["upper-left"],
} }
render["otherworld"] = { render["otherworld"] = {

View File

@@ -1,5 +1,5 @@
render["world"] = { render["world"] = {
"world_path": "test/data/settings/test_world", "worldpath": "test/data/settings/test_world",
"rendermode": "bad_rendermode", "rendermode": "bad_rendermode",
"north-direction": ["upper-left"], "northdirection": ["upper-left"],
} }

View File

@@ -14,6 +14,8 @@ class SettingsTest(unittest.TestCase):
s.validate() s.validate()
things = s.get_render_things() things = s.get_render_things()
# no exceptions so far. that's good # no exceptions so far. that's good
self.assertEquals(things['world']['bgcolor'], (26,26,26))
def test_rendermode_validation(self): def test_rendermode_validation(self):
s = configParser.MultiWorldParser("test/data/settings/settings_test_rendermode.py") s = configParser.MultiWorldParser("test/data/settings/settings_test_rendermode.py")
s.parse() s.parse()