Files
MisguidedLaunch/scripts/SpaceGUI.gd
Eric Vande Voort 7eb0dea424 init
2025-01-07 16:10:03 -06:00

43 lines
1.5 KiB
GDScript

extends CanvasLayer
@onready var fuel_gauge = %FuelGauge
@onready var eject_pod_level = %EjectPodLevel
@onready var eject_indicator_bkgd := $EjectPodLevel/EjectIndicator/Background
@onready var cargo_item_container = %CargoItemContainer
@onready var no_cargo_placeholder = %NoCargoPlaceholder
const CARGO_ITEM = preload("res://scenes/cargo_item.tscn")
var cargo_gui_panels := {}
func _ready():
DataHandler.pickup_item.connect(_on_pickup_item)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
fuel_gauge.value = DataHandler.get_fuel()
var percent = DataHandler.get_fuel_percent()
var r = min(2 - 2 * percent, 1)
var g = min(2.0 * percent, 1)
fuel_gauge.get("theme_override_styles/fill").bg_color = Color(r, g, 0.0)
var eject_percent = DataHandler.eject_fuel_max_percentage()
eject_pod_level.position.y = (1.0 - eject_percent) * get_viewport().size.y - 16
eject_indicator_bkgd.modulate = Color.GREEN if DataHandler.has_fuel_needed_for_eject() else Color.RED
func _on_pickup_item():
if DataHandler.has_cargo():
if cargo_gui_panels.is_empty():
no_cargo_placeholder.queue_free()
for key in DataHandler.game_data.cargo:
var count = DataHandler.game_data.cargo[key]
if count > 0:
if not cargo_gui_panels.has(key):
cargo_gui_panels[key] = CARGO_ITEM.instantiate()
cargo_item_container.add_child(cargo_gui_panels[key])
cargo_gui_panels[key].init(key, count)
else:
cargo_gui_panels[key].update_count(count)
var cargo_gui: Node