diff options
Diffstat (limited to 'addons/gut/thing_counter.gd')
| -rw-r--r-- | addons/gut/thing_counter.gd | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/addons/gut/thing_counter.gd b/addons/gut/thing_counter.gd new file mode 100644 index 0000000..a9b0b48 --- /dev/null +++ b/addons/gut/thing_counter.gd @@ -0,0 +1,43 @@ +var things = {} + +func get_unique_count(): + return things.size() + +func add(thing): + if(things.has(thing)): + things[thing] += 1 + else: + things[thing] = 1 + +func has(thing): + return things.has(thing) + +func get(thing): + var to_return = 0 + if(things.has(thing)): + to_return = things[thing] + return to_return + +func sum(): + var count = 0 + for key in things: + count += things[key] + return count + +func to_s(): + var to_return = "" + for key in things: + to_return += str(key, ": ", things[key], "\n") + to_return += str("sum: ", sum()) + return to_return + +func get_max_count(): + var max_val = null + for key in things: + if(max_val == null or things[key] > max_val): + max_val = things[key] + return max_val + +func add_array_items(array): + for i in range(array.size()): + add(array[i]) |
