soil/src/lib/game_state.gd
2025-02-13 09:58:21 +03:00

26 lines
730 B
GDScript

class_name GameState extends Resource
# TODO: build dynamically?
const INVENTORY_ITEM_DB = {
&"meat": preload("res://data/meat.tres"),
&"water_bomb": preload("res://data/water_bomb.tres"),
&"coin_flower": preload("res://data/coin_flower.tres"),
}
## keys are multiplayer ID ints, values are PlayerData
@export var player_data := {}
## keys are InventoryItem resource IDs (from db),
## values are { "item": InventoryItem, "count": int }
@export var inventory := {}
@export var coins: int # TODO: might it make sense to have even them as items?
static var _instance := GameState.new()
static func save() -> void:
ResourceSaver.save(_instance, "user://game_state.tres")
static func fetch() -> GameState:
return _instance