Files
Dawn-Godot/scripts/Singleton/RecipeSystem.gd
2025-05-25 14:37:30 -05:00

28 lines
711 B
GDScript

class_name RecipeSystem extends Node
var RECIPE_MAP:Dictionary[Recipe.Type, Recipe] = {}
func _recurseChildren(node:Node) -> void:
if node is Recipe:
var recipe:Recipe = node as Recipe
if recipe.type in RECIPE_MAP:
assert(false, "Duplicate recipe type found: " + str(recipe.type))
RECIPE_MAP[recipe.type] = recipe
else:
for child in node.get_children():
_recurseChildren(child)
func _updateRecipes() -> void:
RECIPE_MAP = {}
_recurseChildren(self)
func _enter_tree() -> void:
_updateRecipes()
for recipeType in Recipe.Type.values():
if !RECIPE_MAP.has(recipeType):
assert(false, "Missing recipe type: " + Recipe.Type.find_key(recipeType))
func _init() -> void:
_updateRecipes()