185 lines
5.0 KiB
Python
185 lines
5.0 KiB
Python
from .imagefunc import AnyType
|
|
|
|
any = AnyType("*")
|
|
|
|
class SeedNode:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {"required": {
|
|
"seed":("INT", {"default": 0, "min": 0, "max": 99999999999999999999, "step": 1}),
|
|
},}
|
|
|
|
RETURN_TYPES = ("INT",)
|
|
RETURN_NAMES = ("seed",)
|
|
FUNCTION = 'seed_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def seed_node(self, seed):
|
|
return (seed,)
|
|
|
|
|
|
class BooleanOperator:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
operator_list = ["==", "!=", "and", "or", "xor", "not(a)", "min", "max"]
|
|
return {"required": {
|
|
"a": (any, {}),
|
|
"b": (any, {}),
|
|
"operator": (operator_list,),
|
|
},}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("output",)
|
|
FUNCTION = 'bool_operator_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def bool_operator_node(self, a, b, operator):
|
|
ret_value = False
|
|
if operator == "==":
|
|
ret_value = a == b
|
|
if operator == "!=":
|
|
ret_value = a != b
|
|
if operator == "and":
|
|
ret_value = a and b
|
|
if operator == "or":
|
|
ret_value = a or b
|
|
if operator == "xor":
|
|
ret_value = not(a == b)
|
|
if operator == "not(a)":
|
|
ret_value = not a
|
|
if operator == "min":
|
|
ret_value = a or b
|
|
if operator == "max":
|
|
ret_value = a and b
|
|
|
|
return (ret_value,)
|
|
|
|
class NumberCalculator:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
operator_list = ["+", "-", "*", "/", "**", "//", "%" ]
|
|
return {"required": {
|
|
"a": (any, {}),
|
|
"b": (any, {}),
|
|
"operator": (operator_list,),
|
|
},}
|
|
|
|
RETURN_TYPES = ("INT", "FLOAT",)
|
|
RETURN_NAMES = ("int", "float",)
|
|
FUNCTION = 'number_calculator_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def number_calculator_node(self, a, b, operator):
|
|
ret_value = 0
|
|
if operator == "+":
|
|
ret_value = a + b
|
|
if operator == "-":
|
|
ret_value = a - b
|
|
if operator == "*":
|
|
ret_value = a * b
|
|
if operator == "/":
|
|
ret_value = a / b
|
|
if operator == "**":
|
|
ret_value = a ** b
|
|
if operator == "//":
|
|
ret_value = a // b
|
|
if operator == "%":
|
|
ret_value = a % b
|
|
|
|
return (int(ret_value), float(ret_value),)
|
|
|
|
class TextBoxNode:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {"required": {
|
|
"text": ("STRING", {"multiline": True}),
|
|
},}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
RETURN_NAMES = ("text",)
|
|
FUNCTION = 'text_box_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def text_box_node(self, text):
|
|
return (text,)
|
|
|
|
class IntegerNode:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {"required": {
|
|
"int_value":("INT", {"default": 0, "min": -99999999999999999999, "max": 99999999999999999999, "step": 1}),
|
|
},}
|
|
|
|
RETURN_TYPES = ("INT",)
|
|
RETURN_NAMES = ("int",)
|
|
FUNCTION = 'integer_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def integer_node(self, int_value):
|
|
return (int_value,)
|
|
|
|
class FloatNode:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {"required": {
|
|
"float_value": ("FLOAT", {"default": 0, "min": -99999999999999999999, "max": 99999999999999999999, "step": 0.00001}),
|
|
},}
|
|
|
|
RETURN_TYPES = ("FLOAT",)
|
|
RETURN_NAMES = ("float",)
|
|
FUNCTION = 'float_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def float_node(self, float_value):
|
|
return (float_value,)
|
|
|
|
class BooleanNode:
|
|
def __init__(self):
|
|
pass
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {"required": {
|
|
"bool_value": ("BOOLEAN", {"default": False}),
|
|
},}
|
|
|
|
RETURN_TYPES = ("BOOLEAN",)
|
|
RETURN_NAMES = ("boolean",)
|
|
FUNCTION = 'boolean_node'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def boolean_node(self, bool_value):
|
|
return (bool_value,)
|
|
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"LayerUtility: BooleanOperator": BooleanOperator,
|
|
"LayerUtility: NumberCalculator": NumberCalculator,
|
|
"LayerUtility: TextBox": TextBoxNode,
|
|
"LayerUtility: Integer": IntegerNode,
|
|
"LayerUtility: Float": FloatNode,
|
|
"LayerUtility: Boolean": BooleanNode,
|
|
"LayerUtility: Seed": SeedNode
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"LayerUtility: BooleanOperator": "LayerUtility: BooleanOperator",
|
|
"LayerUtility: NumberCalculator": "LayerUtility: NumberCalculator",
|
|
"LayerUtility: TextBox": "LayerUtility: TextBox",
|
|
"LayerUtility: Integer": "LayerUtility: Integer",
|
|
"LayerUtility: Float": "LayerUtility: Float",
|
|
"LayerUtility: Boolean": "LayerUtility: Boolean",
|
|
"LayerUtility: Seed": "LayerUtility: Seed"
|
|
} |