class_name VesselDefinitions extends RefCounted const ORDER: PackedStringArray = ["interceptor", "shield", "gas_bomber", "transporter", "carrier", "laser", "distorder", "repair_drone"] const DEFINITIONS: Dictionary = { "interceptor": preload("res://vessels/InterceptorVesselDefinition.tres"), "shield": preload("res://vessels/ShieldVesselDefinition.tres"), "gas_bomber": preload("res://vessels/GasBomberVesselDefinition.tres"), "transporter": preload("res://vessels/TransporterVesselDefinition.tres"), "carrier": preload("res://vessels/CarrierVesselDefinition.tres"), "laser": preload("res://vessels/LaserVesselDefinition.tres"), "distorder": preload("res://vessels/DistorderVesselDefinition.tres"), "repair_drone": preload("res://vessels/RepairDroneVesselDefinition.tres"), } static func get_definition(definition_id: String) -> Resource: return DEFINITIONS.get(definition_id) static func all() -> Array: var result: Array = [] for definition_id in ORDER: result.append(DEFINITIONS[definition_id]) return result static func fleet() -> Array: var result: Array = [] for definition in all(): if definition.fleet_eligible: result.append(definition) return result static func with_capability(capability: String) -> Resource: for definition in all(): if definition.has_capability(capability): return definition return null