63 lines
1.8 KiB
GDScript
63 lines
1.8 KiB
GDScript
class_name InventoryClass
|
|
extends Node
|
|
|
|
signal currency_changed(new_amount: float)
|
|
signal currency_added(amount: float, new_total: float)
|
|
signal currency_spent(amount: float, new_total: float)
|
|
signal wood_changed(new_amount: float)
|
|
signal wood_added(amount: float, new_total: float)
|
|
signal wood_spent(amount: float, new_total: float)
|
|
signal stock_changed(new_amount: float)
|
|
signal stock_added(amount: float, new_total: float)
|
|
signal stock_spent(amount: float, new_total: float)
|
|
|
|
var inventory: InventoryResource = load("res://resources/InventoryData.tres")
|
|
|
|
func get_currency() -> float:
|
|
return inventory.currency
|
|
|
|
func add_currency(amount: float):
|
|
inventory.currency += amount
|
|
currency_added.emit(amount, inventory.currency)
|
|
currency_changed.emit(inventory.currency)
|
|
|
|
func spend_currency(amount: float) -> bool:
|
|
if inventory.currency >= amount:
|
|
inventory.currency -= amount
|
|
currency_spent.emit(amount, inventory.currency)
|
|
currency_changed.emit(inventory.currency)
|
|
return true
|
|
return false
|
|
|
|
func get_wood() -> float:
|
|
return inventory.wood
|
|
|
|
func add_wood(amount: float):
|
|
inventory.wood += amount
|
|
wood_added.emit(amount, inventory.wood)
|
|
wood_changed.emit(inventory.wood)
|
|
|
|
func spend_wood(amount: float) -> bool:
|
|
if inventory.wood >= amount:
|
|
inventory.wood -= amount
|
|
wood_spent.emit(amount, inventory.wood)
|
|
wood_changed.emit(inventory.wood)
|
|
return true
|
|
return false
|
|
|
|
func get_stock() -> float:
|
|
return inventory.stock
|
|
|
|
func add_stock(amount: float):
|
|
# Log.pr("Adding stock: " + str(amount))
|
|
inventory.stock += amount
|
|
stock_added.emit(amount, inventory.stock)
|
|
stock_changed.emit(inventory.stock)
|
|
|
|
func spend_stock(amount: float) -> bool:
|
|
if inventory.stock >= amount:
|
|
inventory.stock -= amount
|
|
stock_spent.emit(amount, inventory.stock)
|
|
stock_changed.emit(inventory.stock)
|
|
return true
|
|
return false
|