From f4b7dba48532139f989b6a3dc445a400f46ddd26 Mon Sep 17 00:00:00 2001 From: mijuku233 <89350747+mijuku233@users.noreply.github.com> Date: Wed, 31 Jan 2024 12:12:16 +0800 Subject: [PATCH] feat: ImpactLogicalOperators (#461) * Update __init__.py * feat: ImpactLogicalOperators --- __init__.py | 1 + modules/impact/logics.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/__init__.py b/__init__.py index 232f207..4750695 100644 --- a/__init__.py +++ b/__init__.py @@ -293,6 +293,7 @@ NODE_CLASS_MAPPINGS = { "ImpactConditionalBranchSelMode": ImpactConditionalBranchSelMode, "ImpactIfNone": ImpactIfNone, "ImpactConvertDataType": ImpactConvertDataType, + "ImpactLogicalOperators": ImpactLogicalOperators, "ImpactInt": ImpactInt, "ImpactFloat": ImpactFloat, "ImpactValueSender": ImpactValueSender, diff --git a/modules/impact/logics.py b/modules/impact/logics.py index 5302eec..ee692e4 100644 --- a/modules/impact/logics.py +++ b/modules/impact/logics.py @@ -162,6 +162,31 @@ class ImpactIfNone: return (signal, True, ) +class ImpactLogicalOperators: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "operator": (['and', 'or', 'xor'],), + "bool_a": ("BOOLEAN", {"forceInput": True}), + "bool_b": ("BOOLEAN", {"forceInput": True}), + }, + } + + FUNCTION = "doit" + CATEGORY = "ImpactPack/Logic" + + RETURN_TYPES = ("BOOLEAN", ) + + def doit(self, operator, bool_a, bool_b): + if operator == "and": + return (bool_a and bool_b, ) + elif operator == "or": + return (bool_a or bool_b, ) + else: + return (bool_a != bool_b, ) + + class ImpactConditionalStopIteration: @classmethod def INPUT_TYPES(cls):