extends Resource class_name GameData signal current_planet_data_updated(p : PlanetData) func _init(): set_default_unlocked() @export var tutorial_done = false @export var current_planet_data : PlanetData : set(v): current_planet_data = v current_planet_data_updated.emit(v) @export var unlocked_plant_types : Array[PlantType] = [] @export var unlocked_plant_mutations : Array[PlantMutation] = [] @export var unlocked_machines : Array[MachineType] = [] func set_default_unlocked(): unlocked_plant_types = all_plant_types() unlocked_plant_mutations = all_plant_mutations() unlocked_machines = all_machines() func all_plant_types() -> Array[PlantType]: return [ preload("res://entities/plants/resources/plant_types/champ.tres"), preload("res://entities/plants/resources/plant_types/chardi.tres"), preload("res://entities/plants/resources/plant_types/ferno.tres"), preload("res://entities/plants/resources/plant_types/maias.tres"), preload("res://entities/plants/resources/plant_types/philea.tres"), preload("res://entities/plants/resources/plant_types/pili.tres"), preload("res://entities/plants/resources/plant_types/solita.tres"), ] func all_machines() -> Array[MachineType]: return [ preload("res://entities/interactables/machines/solar_pannel/solar_pannel.tres"), ] func all_plant_mutations() -> Array[PlantMutation]: return [ preload("res://entities/plants/resources/plant_mutations/ancient_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/elitist_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/ermit_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/precocious_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/quality_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/quick_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/sociable_mutation.tres"), preload("res://entities/plants/resources/plant_mutations/strong_mutation.tres"), ]