Files
MovementTests/addons/maaacks_game_template/base/scripts/global_state_data.gd
2025-06-10 18:46:20 +02:00

25 lines
783 B
GDScript

class_name GlobalStateData
extends Resource
@export var first_version_opened : String
@export var last_version_opened : String
@export var last_unix_time_opened : int
@export var states : Dictionary
func get_state(key_name : String, state_type_path : String) -> Resource:
var new_state : Resource
var new_state_script = load(state_type_path)
if new_state_script is GDScript:
new_state = new_state_script.new()
if key_name in states:
var saved_state : Resource = states[key_name]
var saved_script = saved_state.get_script()
var new_script = new_state.get_script()
if saved_script and new_script and saved_script == new_script:
return saved_state
states[key_name] = new_state
return new_state
func has_state(key_name : String) -> bool:
return key_name in states