Consistent SYSTEMS
This commit is contained in:
27
scripts/Singleton/RecipeSystem.gd
Normal file
27
scripts/Singleton/RecipeSystem.gd
Normal file
@@ -0,0 +1,27 @@
|
||||
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()
|
Reference in New Issue
Block a user