mantis_dataclasses.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from dataclasses import dataclass, field
  2. from typing import List, Any
  3. @dataclass
  4. class MantisSocketTemplate():
  5. name : str = field(default="")
  6. bl_idname : str = field(default="")
  7. traverse_target : str = field(default="")
  8. identifier : str = field(default="")
  9. display_shape : str = field(default="") # for arrays
  10. category : str = field(default="") # for use in display update
  11. blender_property : str | tuple[str] = field(default="") # for props_sockets -> evaluate sockets
  12. is_input : bool = field(default=False)
  13. hide : bool = field(default=False)
  14. use_multi_input : bool = field(default=False)
  15. ui_only : bool = field(default=False)
  16. default_value : Any = field(default=None)
  17. # this is a hint for the props_sockets system for complex situations
  18. # where multiple blender objects own the properties, like e.g. bone/posebone
  19. prop_owner_group : str = field(default="")
  20. # do? add versioning fields for Mantis, Blender version min/max
  21. @dataclass
  22. class xForm_info():
  23. object_type : str = field(default="")
  24. root_armature : str = field(default="")
  25. parent_pose_name : str = field(default="")
  26. parent_edit_name : str = field(default="")
  27. self_pose_name : str = field(default="")
  28. self_edit_name : str = field(default="")
  29. # should I add node signatures to this?
  30. @dataclass
  31. class custom_prop_template():
  32. name : str = field(default="")
  33. prop_type : str = field(default="")
  34. default_value_string : str = field(default="")
  35. default_value_bool : bool = field(default=False)
  36. default_value_int : int = field(default=0)
  37. default_value_float : float = field(default=0.0)
  38. default_value_vector : List[float] = field(default_factory=list)
  39. min : float|int = field(default=0)
  40. max : float|int = field(default=1)
  41. soft_min : float|int = field(default=1)
  42. soft_max : float|int = field(default=1)
  43. description : str = field(default="")