0

Fixing some settings stuff

This commit is contained in:
Andrew Chin
2012-01-02 00:03:10 -05:00
parent 42f6b7b6ad
commit 287b16fd13
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]
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

View File

@@ -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

View File

@@ -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),
}

View File

@@ -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)

View File

@@ -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

View File

@@ -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"] = {

View File

@@ -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"],
}

View File

@@ -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()