forked from LeenkxTeam/LNXSDK
		
	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