class_name RecipeCatalog ## Static registry of all Phase-6 recipes. Each method returns a fresh Recipe ## instance configured for that product. Extend here as new workbenches land ## (Phase 7+ cooking hearth, millstone, smithy, etc.). ## ## Phase 6 ships two recipes: ## plank() — wood → plank (Carpenter's bench, Crafting) ## stone_block() — stone → stone_block (Smelter, Crafting) ## ## The full ~22-recipe list per docs/design.md expands in Phase 7+. static func plank() -> Recipe: var r := Recipe.new() r.id = &"plank" r.label = "Wood plank" r.ingredient_type = Item.TYPE_WOOD r.output_type = Item.TYPE_PLANK r.work_ticks = 60 # ~3 sim seconds at 1× (20 Hz × 3 s = 60 ticks) r.required_skill = Recipe.SKILL_CRAFTING r.skill_threshold = 0 return r static func stone_block() -> Recipe: var r := Recipe.new() r.id = &"stone_block" r.label = "Stone block" r.ingredient_type = Item.TYPE_STONE r.output_type = Item.TYPE_STONE_BLOCK r.work_ticks = 80 # ~4 sim seconds at 1× r.required_skill = Recipe.SKILL_CRAFTING r.skill_threshold = 0 return r