mantis_dataclasses.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. # TODO: add versioning fields for Mantis, Blender version min/max
  18. @dataclass
  19. class xForm_info():
  20. object_type : str = field(default="")
  21. root_armature : str = field(default="")
  22. parent_pose_name : str = field(default="")
  23. parent_edit_name : str = field(default="")
  24. self_pose_name : str = field(default="")
  25. self_edit_name : str = field(default="")
  26. # should I add node signatures to this?
  27. @dataclass
  28. class custom_prop_template():
  29. name : str = field(default="")
  30. prop_type : str = field(default="")
  31. default_value_string : str = field(default="")
  32. default_value_bool : bool = field(default=False)
  33. default_value_int : int = field(default=0)
  34. default_value_float : float = field(default=0.0)
  35. default_value_vector : List[float] = field(default_factory=list)
  36. min : float|int = field(default=0)
  37. max : float|int = field(default=1)
  38. soft_min : float|int = field(default=1)
  39. soft_max : float|int = field(default=1)
  40. description : str = field(default="")