cirnogodot/Scripts/Hud.cs
2025-01-30 08:34:09 +01:00

59 lines
1.2 KiB
C#

using Godot;
using System;
public partial class Hud : CanvasLayer
{
[Signal]
public delegate void StartGameEventHandler();
private Label _healthLabel;
[Export]
public PackedScene SelectorScene { get; set; }
[Export]
private Node2D _selector;
public override void _Ready()
{
// Assuming the HUD has a Label node named "HealthLabel"
_healthLabel = GetNode<Label>("HealthLabel");
}
public void ShowMessage(string text)
{
var message = GetNode<Label>("Message");
message.Text = text;
message.Show();
GetNode<Timer>("MessageTimer").Start();
}
async public void ShowGameOver()
{
ShowMessage("Game Over");
var messageTimer = GetNode<Timer>("MessageTimer");
await ToSignal(messageTimer, Timer.SignalName.Timeout);
var message = GetNode<Label>("Message");
message.Text = "Dodge the Creeps!";
message.Show();
await ToSignal(GetTree().CreateTimer(1.0), SceneTreeTimer.SignalName.Timeout);
GetNode<Button>("StartButton").Show();
}
public void UpdateHealth(float newHealth, float maxHealth)
{
_healthLabel.Text = $"{newHealth}/{maxHealth}";
}
public void UpdateInteractable(Interactable interactable) {
GD.Print($"Interactable ${interactable.Name} entered in HUD");
//_selector.Position = _selector.tolo
}
}