Skip to content

Commit d79de07

Browse files
committed
feat: menu switch node
1 parent eb8936f commit d79de07

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

ntp_operator.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,8 @@ def _set_settings_defaults(self, node: Node) -> None:
347347
self._image_user_settings(attr, f"{node_var}.{attr_name}")
348348
elif st == ST.INDEX_SWITCH_ITEMS:
349349
self._index_switch_items(attr, f"{node_var}.{attr_name}")
350+
elif st == ST.ENUM_DEFINITION:
351+
self._enum_definition(attr, f"{node_var}.{attr_name}")
350352

351353
if bpy.app.version < (4, 0, 0):
352354
def _set_group_socket_defaults(self, socket_interface: NodeSocketInterface,
@@ -705,6 +707,10 @@ def _set_input_defaults(self, node: Node) -> None:
705707
elif input.bl_idname == 'NodeSocketString':
706708
default_val = str_to_py_str(input.default_value)
707709

710+
#menu
711+
elif input.bl_idname == 'NodeSocketMenu':
712+
default_val = enum_to_py_str(input.default_value)
713+
708714
# images
709715
elif input.bl_idname == 'NodeSocketImage':
710716
img = input.default_value
@@ -1060,6 +1066,23 @@ def _index_switch_items(self, switch_items: bpy.types.NodeIndexSwitchItems,
10601066
for i in range(num_items):
10611067
self._write(f"{items_str}.new()")
10621068

1069+
def _enum_definition(self, enum_def: bpy.types.NodeEnumDefinition,
1070+
enum_def_str: str) -> None:
1071+
"""
1072+
Set enum definition item for a node
1073+
1074+
Parameters:
1075+
enum_def (bpy.types.NodeEnumDefinition): enum definition to replicate
1076+
enum_def_str (str): string for the generated enum definition
1077+
"""
1078+
self._write(f"{enum_def_str}.enum_items.clear()")
1079+
for i, enum_item in enumerate(enum_def.enum_items):
1080+
name = str_to_py_str(enum_item.name)
1081+
self._write(f"{enum_def_str}.enum_items.new({name})")
1082+
if enum_item.description != "":
1083+
self._write(f"{enum_def_str}.enum_items[{i}].description = "
1084+
f"{str_to_py_str(enum_item.description)}")
1085+
10631086

10641087
def _set_parents(self, node_tree: NodeTree) -> None:
10651088
"""

0 commit comments

Comments
 (0)