Allow global defaults to be specified
This commit is contained in:
@@ -224,7 +224,10 @@ class MultiWorldParser(object):
|
|||||||
glob = dict(render=dict(), custom_rendermodes=dict())
|
glob = dict(render=dict(), custom_rendermodes=dict())
|
||||||
|
|
||||||
try:
|
try:
|
||||||
execfile(self.settings_file, glob, glob)
|
execfile(self.settings_file, glob, glob)
|
||||||
|
# delete the builtins, we don't need it
|
||||||
|
del glob['__builtins__']
|
||||||
|
|
||||||
except NameError, ex:
|
except NameError, ex:
|
||||||
import traceback
|
import traceback
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
@@ -240,18 +243,25 @@ class MultiWorldParser(object):
|
|||||||
|
|
||||||
self.render = glob['render']
|
self.render = glob['render']
|
||||||
self.custom_rendermodes = glob['custom_rendermodes']
|
self.custom_rendermodes = glob['custom_rendermodes']
|
||||||
#import pprint
|
|
||||||
#pprint.pprint(glob, indent=2)
|
# anything that's not 'render' or 'custom_rendermode' is a default
|
||||||
|
del glob['render']
|
||||||
|
del glob['custom_rendermodes']
|
||||||
|
self.defaults = glob
|
||||||
|
|
||||||
|
import pprint
|
||||||
|
pprint.pprint(glob, indent=2)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
|
||||||
|
|
||||||
for worldname in self.render:
|
for worldname in self.render:
|
||||||
world = self.render[worldname]
|
world = self.render[worldname]
|
||||||
|
world.update(self.defaults)
|
||||||
|
|
||||||
for key in world:
|
for key in world:
|
||||||
if key not in settingsDefinition.render:
|
if key not in settingsDefinition.render:
|
||||||
print "Warning: %r is not a known setting"
|
print "Warning: %r is not a known setting" % key
|
||||||
next
|
next
|
||||||
|
|
||||||
definition = settingsDefinition.render[key]
|
definition = settingsDefinition.render[key]
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ from settingsValidators import *
|
|||||||
|
|
||||||
|
|
||||||
render = {
|
render = {
|
||||||
"path": dict(required=True, validator=validatePath),
|
"world_path": dict(required=True, validator=validatePath),
|
||||||
"rendermodes": dict(required=False, validator=validateRenderMode),
|
"rendermode": dict(required=False, validator=validateRenderMode),
|
||||||
"north-direction": dict(required=False, validator=validateNorthDirection),
|
"north-direction": dict(required=False, validator=validateNorthDirection),
|
||||||
"render-range": dict(required=False, validator=validateRenderRange),
|
"render-range": dict(required=False, validator=validateRenderRange),
|
||||||
"force-render": dict(required=False, validator=bool),
|
"force-render": dict(required=False, validator=bool),
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
|
world_path="test/data/settings/test_world"
|
||||||
|
rendermode = "normal"
|
||||||
|
|
||||||
render["world"] = {
|
render["world"] = {
|
||||||
"path": "test/data/settings/test_world",
|
"rendermode": "normal",
|
||||||
"rendermodes": ["normal"],
|
|
||||||
"north-direction": ["upper-left"],
|
"north-direction": ["upper-left"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
render["otherworld"] = {
|
||||||
|
"rendermode": "foo"
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
render["world"] = {
|
render["world"] = {
|
||||||
"path": "test/data/settings/test_world",
|
"world_path": "test/data/settings/test_world",
|
||||||
"rendermodes": ["bad_rendermode"],
|
"rendermode": "bad_rendermode",
|
||||||
"north-direction": ["upper-left"],
|
"north-direction": ["upper-left"],
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user