extends Node2D # Purely visual: a transport vessel running a hub -> mothership -> building # supply route. Carries no state of its own; GameState owns the simulation # and TransporterField creates, positions and frees this to match. const HULL_COLOR: Color = Color(0.95, 0.55, 0.85) var laden: bool = false func _ready() -> void: add_to_group("transporters") z_index = -1 queue_redraw() func set_laden(value: bool) -> void: if laden == value: return laden = value queue_redraw() func _draw() -> void: # Squat and boxy, in the transport hub's own magenta, so it reads as # "belongs to the hub" and not as an extractor hauler (green) or a fleet # vessel (sharp cyan triangle). var hull: PackedVector2Array = PackedVector2Array([ Vector2(0, -16), Vector2(10, -4), Vector2(10, 14), Vector2(-10, 14), Vector2(-10, -4), ]) NeonDraw.draw_glowing_polygon(self, hull, HULL_COLOR, 1.0) if laden: # A visible payload, so a loaded run is distinguishable from a # deadhead back to the hub at a glance. NeonDraw.draw_glowing_polygon(self, PackedVector2Array([ Vector2(-5, 0), Vector2(5, 0), Vector2(5, 9), Vector2(-5, 9), ]), HULL_COLOR, 0.85)