import bpy from ..core.nodeslicer.sockets import SettingItem from ..registry import register_class extruder_options: list[tuple[str, str, str]] = [ ("0", "Default Extruder", "Default Extruder"), ("1", "Extruder 1", "Extruder 1"), ("2", "Extruder 2", "Extruder 2"), ("3", "Extruder 3", "Extruder 3"), ("4", "Extruder 4", "Extruder 4"), ("5", "Extruder 5", "Extruder 5"), ] object_type_options: list[tuple[str, str, str]] = [ ("ModelPart", "Part", "Model Part"), ("NegativeVolume", "Negative Volume", "Negative Volume"), ("ParameterModifier", "Modifier", "Modifier"), ("SupportBlocker", "Support Blocker", "Support Blocker"), ("SupportEnforcer", "Support Enforcer", "Support Enforcer"), ("WipeTower", "Wipe Tower", "Wipe Tower"), ("Ignore", "Ignore", "Ignore"), ] from ..core.nodeslicer.bpy_ns_types import NfEnumProperty, NfStringProperty @register_class class SlicerObjectPropertyGroup(bpy.types.PropertyGroup): object_type: NfEnumProperty(name="Part type", default="ModelPart", items=object_type_options) # pyright: ignore[reportInvalidTypeForm] extruder: NfEnumProperty(name="Extruder", default="0", items=extruder_options) # pyright: ignore[reportInvalidTypeForm] search_term: NfStringProperty(name="Search") # pyright: ignore[reportInvalidTypeForm] modifiers: bpy.props.CollectionProperty(type=SettingItem) # pyright: ignore[reportInvalidTypeForm]