0

default values for options are now specified alongside their definitions

This commit is contained in:
Aaron Griffith
2012-01-08 01:09:43 -05:00
parent 7cacc59428
commit 30c4bb26c3
4 changed files with 11 additions and 11 deletions

View File

@@ -29,6 +29,11 @@ class RenderPrimitive(object):
raise ValueError("primitive `{0}' has no option `{1}'".format(self.name, key))
self.option_values[key] = val
# set up defaults
for name, (description, default) in self.options.iteritems():
if not name in self.option_values:
self.option_values[name] = default
class Base(RenderPrimitive):
name = "base"
@@ -44,14 +49,14 @@ class HeightFading(RenderPrimitive):
class Depth(RenderPrimitive):
name = "depth"
options = {
"min": "lowest level of blocks to render (default: 0)",
"max": "highest level of blocks to render (default: 127)",
"min": ("lowest level of blocks to render", 0),
"max": ("highest level of blocks to render", 127),
}
class EdgeLines(RenderPrimitive):
name = "edge-lines"
options = {
"opacity": "darkness of the edge lines, from 0.0 to 1.0 (default: 0.15)",
"opacity": ("darkness of the edge lines, from 0.0 to 1.0", 0.15),
}
# Render 3 blending masks for lighting

View File

@@ -26,11 +26,8 @@ static int
depth_start(void *data, RenderState *state, PyObject *support) {
PrimitiveDepth *self = (PrimitiveDepth *)data;
self->min = 0;
if (!render_mode_parse_option(support, "min", "I", &(self->min)))
return 1;
self->max = 127;
if (!render_mode_parse_option(support, "max", "I", &(self->max)))
return 1;

View File

@@ -24,8 +24,6 @@ typedef struct {
static int
edge_lines_start(void *data, RenderState *state, PyObject *support) {
PrimitiveEdgeLines *self = (PrimitiveEdgeLines *)data;
self->opacity = 0.15;
if (!render_mode_parse_option(support, "opacity", "f", &(self->opacity)))
return 1;
return 0;

View File

@@ -176,16 +176,16 @@ int render_mode_parse_option(PyObject *support, const char *name, const char *fo
int ret;
if (support == NULL || name == NULL)
return 1;
return 0;
dict = PyObject_GetAttrString(support, "option_values");
if (!dict)
return 1;
return 0;
item = PyDict_GetItemString(dict, name);
if (item == NULL) {
Py_DECREF(dict);
return 1;
return 0;
};
/* make sure the item we're parsing is a tuple