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