Add files via upload
This commit is contained in:
@@ -0,0 +1 @@
|
||||
from .string_select import *
|
||||
@@ -0,0 +1,53 @@
|
||||
import math
|
||||
|
||||
|
||||
def wrapIndex(index, length):
|
||||
if length == 0:
|
||||
print("ezXY: Divide by zero error, returning 0.")
|
||||
return 0,0
|
||||
|
||||
# Using modulo ensures the index won't go out of range, wrapping back to 0 instead
|
||||
# math.fmod returns more predictable results when index is negative
|
||||
index_mod = int(math.fmod(index, length))
|
||||
wraps = index//length
|
||||
return index_mod, wraps
|
||||
|
||||
|
||||
class StringFromList:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"list_input": ("STRING", {"forceInput":True},),
|
||||
"index": ("INT", {"default": 0, "min": -999, "max": 999, "step": 1}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING", "INT", "INT",)
|
||||
RETURN_NAMES = ("list item", "size", "wraps",)
|
||||
|
||||
INPUT_IS_LIST = True
|
||||
OUTPUT_IS_LIST = (True, False, True)
|
||||
|
||||
FUNCTION = "pick"
|
||||
|
||||
CATEGORY = "ezXY/utility"
|
||||
|
||||
def pick(self, list_input, index):
|
||||
length = len(list_input)
|
||||
|
||||
wraps_list, item_list = [],[]
|
||||
for i in index:
|
||||
index_mod, wraps = wrapIndex(i, length)
|
||||
wraps_list.append(wraps)
|
||||
item_list.append(list_input[index_mod])
|
||||
|
||||
return (item_list, length, wraps_list,)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"StringFromList": StringFromList
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"StringFromList": "String From List"
|
||||
}
|
||||
Reference in New Issue
Block a user