class_name Recipe enum Id { NULL, BAKED_POTATO, } # Data storage static var RECIPES = [] # Initializer static func defineRecipe(params:Dictionary) -> Dictionary: assert(params.has("id")) assert(params.has("handle")) var recipe = { "id": params["id"], "handle": params.get("handle"), } RECIPES.insert(params["id"], recipe) return recipe # Instances static var RECIPE_NULL = defineRecipe({ "id": Id.NULL, "handle": "unknown" }) static var BAKED_POTATO = defineRecipe({ "id": Id.BAKED_POTATO, "handle": "baked_potato" }) # Getters static func getData(id:int) -> Dictionary: if RECIPES.size() <= id || id < 0: return RECIPE_NULL return RECIPES[id] static func getRecipeHandle(id:Id) -> String: return getData(id)["handle"]