[Bf-blender-cvs] [7b83720] object_nodes: Some simplifying python functions for copying existing enum properties.
Lukas Tönne
noreply at git.blender.org
Wed Dec 9 16:23:45 CET 2015
Commit: 7b8372081769ffe02d094a7a560d72a21d15902d
Author: Lukas Tönne
Date: Wed Dec 9 15:44:14 2015 +0100
Branches: object_nodes
https://developer.blender.org/rB7b8372081769ffe02d094a7a560d72a21d15902d
Some simplifying python functions for copying existing enum properties.
===================================================================
M release/scripts/nodes/common_nodes.py
===================================================================
diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index dd5b866..7970fdf 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -24,6 +24,23 @@ from bpy.types import Operator, ObjectNode
from bpy.props import *
from node_compiler import NodeCompiler, NodeWrapper, InputWrapper, OutputWrapper
+
+def enum_property_copy(bpy_type, name):
+ prop = bpy_type.bl_rna.properties[name]
+ items = [(i.identifier, i.name, i.description, i.icon, i.value) for i in prop.enum_items]
+ return EnumProperty(name=prop.name,
+ description=prop.description,
+ default=prop.default,
+ items=items)
+
+def enum_property_value_prop(name):
+ def fget(self):
+ return self.bl_rna.properties[name].enum_items[getattr(self, name)].value
+ return property(fget=fget)
+
+
+###############################################################################
+
class NodeTreeBase():
def bvm_compile(self, context, graph):
compiler = NodeCompiler(context, graph)
@@ -303,9 +320,7 @@ class EulerTransformNode(CommonNodeBase, ObjectNode):
bl_label = 'Euler Transform'
euler_order = _prop_euler_order
- @property
- def euler_order_value(self):
- return self.bl_rna.properties['euler_order'].enum_items[self.euler_order].value
+ euler_order_value = enum_property_value_prop('euler_order')
def draw_buttons(self, context, layout):
layout.prop(self, "euler_order")
@@ -332,9 +347,7 @@ class GetEulerNode(CommonNodeBase, ObjectNode):
bl_label = 'Get Euler Angles'
euler_order = _prop_euler_order
- @property
- def euler_order_value(self):
- return self.bl_rna.properties['euler_order'].enum_items[self.euler_order].value
+ euler_order_value = enum_property_value_prop('euler_order')
def draw_buttons(self, context, layout):
layout.prop(self, "euler_order")
More information about the Bf-blender-cvs
mailing list