63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
class DDConditionSwitcher:
|
|
"""
|
|
DD 条件切换 - 在多个条件输入之间选择一个作为输出
|
|
支持最多4个条件输入,可以通过选择器指定输出哪一个条件
|
|
"""
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"条件1": ("CONDITIONING",),
|
|
"条件2": ("CONDITIONING",),
|
|
"选择输出": ("INT", {"default": 1, "min": 1, "max": 4, "step": 1}),
|
|
},
|
|
"optional": {
|
|
"条件3": ("CONDITIONING",),
|
|
"条件4": ("CONDITIONING",),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("CONDITIONING",)
|
|
RETURN_NAMES = ("条件",)
|
|
FUNCTION = "switch_condition"
|
|
CATEGORY = "🍺DD系列节点"
|
|
|
|
def switch_condition(self, 条件1, 条件2, 选择输出, 条件3=None, 条件4=None):
|
|
"""
|
|
在多个条件之间切换,根据选择输出指定的数字返回对应的条件
|
|
|
|
Args:
|
|
条件1-4: 输入的条件
|
|
选择输出: 选择输出第几个条件(1-4)
|
|
|
|
Returns:
|
|
选定的条件
|
|
"""
|
|
# 创建条件列表
|
|
条件列表 = [条件1, 条件2, 条件3, 条件4]
|
|
|
|
# 确定要输出的条件索引
|
|
选择索引 = int(选择输出) - 1 # 转换为0-3的索引
|
|
|
|
# 检查所选索引处是否有条件
|
|
if 选择索引 > 1 and 条件列表[选择索引] is None:
|
|
print(f"[条件切换] 警告:条件{选择索引+1}不存在,默认使用条件1")
|
|
选择索引 = 0
|
|
|
|
# 获取要输出的条件
|
|
输出条件 = 条件列表[选择索引]
|
|
|
|
print(f"[条件切换] 已选择输出条件{选择索引+1}")
|
|
|
|
return (输出条件,)
|
|
|
|
# 节点类映射
|
|
NODE_CLASS_MAPPINGS = {
|
|
"DD-ConditionSwitcher": DDConditionSwitcher
|
|
}
|
|
|
|
# 节点显示名称映射
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"DD-ConditionSwitcher": "DD Condition Switcher"
|
|
} |