Update leenkx/blender/lnx/props_traits_props.py
This commit is contained in:
@ -3,13 +3,6 @@ from bpy.props import *
|
||||
|
||||
__all__ = ['LnxTraitPropWarning', 'LnxTraitPropListItem', 'LNX_UL_PropList']
|
||||
|
||||
# Helper function to handle version compatibility
|
||||
def compatible_prop(prop_func, **kwargs):
|
||||
"""Create properties compatible with both Blender 2.83 and newer versions."""
|
||||
if bpy.app.version < (2, 90, 0):
|
||||
# Remove override parameter for Blender 2.83
|
||||
kwargs.pop('override', None)
|
||||
return prop_func(**kwargs)
|
||||
|
||||
PROP_TYPE_ICONS = {
|
||||
"String": "SORTALPHA",
|
||||
@ -43,53 +36,75 @@ def filter_objects(item, b_object):
|
||||
|
||||
|
||||
class LnxTraitPropWarning(bpy.types.PropertyGroup):
|
||||
propName = compatible_prop(StringProperty, name="Property Name", override={"LIBRARY_OVERRIDABLE"})
|
||||
warning = compatible_prop(StringProperty, name="Warning", override={"LIBRARY_OVERRIDABLE"})
|
||||
propName: StringProperty(name="Property Name")
|
||||
warning: StringProperty(name="Warning")
|
||||
|
||||
|
||||
class LnxTraitPropListItem(bpy.types.PropertyGroup):
|
||||
"""Group of properties representing an item in the list."""
|
||||
name = compatible_prop(StringProperty,
|
||||
name: StringProperty(
|
||||
name="Name",
|
||||
description="The name of this property",
|
||||
default="Untitled",
|
||||
override={"LIBRARY_OVERRIDABLE"})
|
||||
|
||||
type = compatible_prop(EnumProperty,
|
||||
items=(
|
||||
# (Haxe Type, Display Name, Description)
|
||||
("String", "String", "String Type"),
|
||||
("Int", "Integer", "Integer Type"),
|
||||
("Float", "Float", "Float Type"),
|
||||
("Bool", "Boolean", "Boolean Type"),
|
||||
("Vec2", "Vec2", "2D Vector Type"),
|
||||
("Vec3", "Vec3", "3D Vector Type"),
|
||||
("Vec4", "Vec4", "4D Vector Type"),
|
||||
("Object", "Object", "Object Type"),
|
||||
("CameraObject", "Camera Object", "Camera Object Type"),
|
||||
("LightObject", "Light Object", "Light Object Type"),
|
||||
("MeshObject", "Mesh Object", "Mesh Object Type"),
|
||||
("SpeakerObject", "Speaker Object", "Speaker Object Type"),
|
||||
("TSceneFormat", "Scene", "Scene Type")),
|
||||
name="Type",
|
||||
description="The type of this property",
|
||||
default="String",
|
||||
override={"LIBRARY_OVERRIDABLE"}
|
||||
)
|
||||
|
||||
# === VALUES ===
|
||||
value_string = compatible_prop(StringProperty, name="Value", default="", override={"LIBRARY_OVERRIDABLE"})
|
||||
value_int = compatible_prop(IntProperty, name="Value", default=0, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_float = compatible_prop(FloatProperty, name="Value", default=0.0, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_bool = compatible_prop(BoolProperty, name="Value", default=False, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec2 = compatible_prop(FloatVectorProperty, name="Value", size=2, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec3 = compatible_prop(FloatVectorProperty, name="Value", size=3, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec4 = compatible_prop(FloatVectorProperty, name="Value", size=4, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_object = compatible_prop(PointerProperty,
|
||||
name="Value", type=bpy.types.Object, poll=filter_objects,
|
||||
override={"LIBRARY_OVERRIDABLE"}
|
||||
)
|
||||
value_scene = compatible_prop(PointerProperty, name="Value", type=bpy.types.Scene, override={"LIBRARY_OVERRIDABLE"})
|
||||
default="Untitled")
|
||||
if bpy.app.version < (2, 90, 0):
|
||||
type: EnumProperty(
|
||||
items=(
|
||||
# (Haxe Type, Display Name, Description)
|
||||
("String", "String", "String Type"),
|
||||
("Int", "Integer", "Integer Type"),
|
||||
("Float", "Float", "Float Type"),
|
||||
("Bool", "Boolean", "Boolean Type"),
|
||||
("Vec2", "Vec2", "2D Vector Type"),
|
||||
("Vec3", "Vec3", "3D Vector Type"),
|
||||
("Vec4", "Vec4", "4D Vector Type"),
|
||||
("Object", "Object", "Object Type"),
|
||||
("CameraObject", "Camera Object", "Camera Object Type"),
|
||||
("LightObject", "Light Object", "Light Object Type"),
|
||||
("MeshObject", "Mesh Object", "Mesh Object Type"),
|
||||
("SpeakerObject", "Speaker Object", "Speaker Object Type"),
|
||||
("TSceneFormat", "Scene", "Scene Type")),
|
||||
name="Type",
|
||||
description="The type of this property",
|
||||
default="String")
|
||||
value_string: StringProperty(name="Value", default="")
|
||||
value_int: IntProperty(name="Value", default=0)
|
||||
value_float: FloatProperty(name="Value", default=0.0)
|
||||
value_bool: BoolProperty(name="Value", default=False)
|
||||
value_vec2: FloatVectorProperty(name="Value", size=2)
|
||||
value_vec3: FloatVectorProperty(name="Value", size=3)
|
||||
value_vec4: FloatVectorProperty(name="Value", size=4)
|
||||
value_object: PointerProperty(name="Value", type=bpy.types.Object, poll=filter_objects)
|
||||
value_scene: PointerProperty(name="Value", type=bpy.types.Scene)
|
||||
else:
|
||||
type: EnumProperty(
|
||||
items=(
|
||||
# (Haxe Type, Display Name, Description)
|
||||
("String", "String", "String Type"),
|
||||
("Int", "Integer", "Integer Type"),
|
||||
("Float", "Float", "Float Type"),
|
||||
("Bool", "Boolean", "Boolean Type"),
|
||||
("Vec2", "Vec2", "2D Vector Type"),
|
||||
("Vec3", "Vec3", "3D Vector Type"),
|
||||
("Vec4", "Vec4", "4D Vector Type"),
|
||||
("Object", "Object", "Object Type"),
|
||||
("CameraObject", "Camera Object", "Camera Object Type"),
|
||||
("LightObject", "Light Object", "Light Object Type"),
|
||||
("MeshObject", "Mesh Object", "Mesh Object Type"),
|
||||
("SpeakerObject", "Speaker Object", "Speaker Object Type"),
|
||||
("TSceneFormat", "Scene", "Scene Type")),
|
||||
name="Type",
|
||||
description="The type of this property",
|
||||
default="String",
|
||||
override={"LIBRARY_OVERRIDABLE"})
|
||||
value_string: StringProperty(name="Value", default="", override={"LIBRARY_OVERRIDABLE"})
|
||||
value_int: IntProperty(name="Value", default=0, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_float: FloatProperty(name="Value", default=0.0, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_bool: BoolProperty(name="Value", default=False, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec2: FloatVectorProperty(name="Value", size=2, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec3: FloatVectorProperty(name="Value", size=3, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_vec4: FloatVectorProperty(name="Value", size=4, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_object: PointerProperty(name="Value", type=bpy.types.Object, poll=filter_objects, override={"LIBRARY_OVERRIDABLE"})
|
||||
value_scene: PointerProperty(name="Value", type=bpy.types.Scene, override={"LIBRARY_OVERRIDABLE"})
|
||||
|
||||
def set_value(self, val):
|
||||
# Would require way too much effort, so it's out of scope here.
|
||||
|
Reference in New Issue
Block a user