26 lines
730 B
GDScript
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
|