Add stop to Number Counter

using `increment_to_stop` or `decrement_to_stop` will allow you to use the stop param where the number will not increment/decrement any further.
This commit is contained in:
Jordan Thompson
2023-09-30 21:56:05 -07:00
parent 4ed6a809be
commit 367ec03f07
+22 -26
View File
@@ -11505,14 +11505,14 @@ class WAS_Random_Number:
def INPUT_TYPES(cls):
return {
"required": {
"number_type": (["integer", "float", "bool", "shuffled_list"],),
"number_type": (["integer", "float", "bool"],),
"minimum": ("FLOAT", {"default": 0, "min": -18446744073709551615, "max": 18446744073709551615}),
"maximum": ("FLOAT", {"default": 0, "min": -18446744073709551615, "max": 18446744073709551615}),
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
}
}
RETURN_TYPES = ("NUMBER", "FLOAT", "INT", "STRING")
RETURN_TYPES = ("NUMBER", "FLOAT", "INT")
FUNCTION = "return_randm_number"
CATEGORY = "WAS Suite/Number"
@@ -11523,24 +11523,19 @@ class WAS_Random_Number:
random.seed(seed)
# Return random number
if number_type == 'integer':
number = random.randint(minimum, maximum)
return (number, float(number), int(number), str(number))
elif number_type == 'float':
number = random.uniform(minimum, maximum)
return (number, float(number), int(number), str(number))
elif number_type == 'bool':
number = random.random()
return (number, float(number), int(number + 0.5), str(number))
elif number_type == "shuffled_list":
# e.g. for min=0, max=3, will return something like 3,1,2,0
numlist = list(range(int(minimum), int(maximum) + 1))
random.shuffle(numlist)
string = ",".join([str(x) for x in numlist])
return (0, 0, 0, string)
else:
raise ValueError(f'Unexpected number_type: {number_type}')
if number_type:
if number_type == 'integer':
number = random.randint(minimum, maximum)
elif number_type == 'float':
number = random.uniform(minimum, maximum)
elif number_type == 'bool':
number = random.random()
else:
return
# Return number
return (number, float(number), int(number))
@classmethod
def IS_CHANGED(cls, seed, **kwargs):
m = hashlib.sha256()
@@ -11672,8 +11667,9 @@ class WAS_Number_Counter:
return {
"required": {
"number_type": (["integer", "float"],),
"mode": (["increment", "decrement"],),
"mode": (["increment", "decrement", "increment_to_stop", "decrement_to_stop"],),
"start": ("FLOAT", {"default": 0, "min": -18446744073709551615, "max": 18446744073709551615, "step": 0.01}),
"stop": ("FLOAT", {"default": 0, "min": -18446744073709551615, "max": 18446744073709551615, "step": 0.01}),
"step": ("FLOAT", {"default": 1, "min": 0, "max": 99999, "step": 0.01}),
},
"optional": {
@@ -11694,9 +11690,7 @@ class WAS_Number_Counter:
CATEGORY = "WAS Suite/Number"
def increment_number(self, number_type, mode, start, step, unique_id, reset_bool=0):
print(unique_id)
def increment_number(self, number_type, mode, start, stop, step, unique_id, reset_bool=0):
counter = int(start) if mode == 'integer' else start
if self.counters.__contains__(unique_id):
@@ -11707,8 +11701,12 @@ class WAS_Number_Counter:
if mode == 'increment':
counter += step
else:
elif mode == 'deccrement':
counter -= step
elif mode == 'increment_to_stop':
counter = counter + step if counter < stop else counter
elif mode == 'decrement_to_stop':
counter = counter - step if counter > stop else counter
self.counters[unique_id] = counter
@@ -11717,8 +11715,6 @@ class WAS_Number_Counter:
return ( result, float(counter), int(counter) )
# NUMBER TO SEED
class WAS_Number_To_Seed: