29 lines
746 B
GDScript
29 lines
746 B
GDScript
class_name Recipe extends Node
|
|
|
|
@export var recipe_text:String = ""
|
|
@export var ingredients:Array[ItemResource] = []
|
|
@export var outputs:Array[ItemResource] = []
|
|
|
|
var learned:bool = false
|
|
var timesMade:int = 0
|
|
|
|
func hasIngredients(inventory:Inventory = null) -> bool:
|
|
if inventory == null:
|
|
inventory = ITEM.PLAYER_INVENTORY
|
|
|
|
for ingredient in ingredients:
|
|
if !inventory.hasItem(ingredient.type, ingredient.quantity):
|
|
return false
|
|
return true
|
|
|
|
func make(inventory:Inventory = null) -> void:
|
|
if inventory == null:
|
|
inventory = ITEM.PLAYER_INVENTORY
|
|
|
|
for ingredient in ingredients:
|
|
inventory.removeItem(ingredient.type, ingredient.quantity)
|
|
|
|
for output in outputs:
|
|
inventory.addItem(output.type, output.quantity)
|
|
|
|
timesMade += 1 |