mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
76 lines
1.6 KiB
C#
76 lines
1.6 KiB
C#
using Godot;
|
|
using System;
|
|
using Cirno.Scripts.Resources;
|
|
|
|
public partial class Hud : CanvasLayer
|
|
{
|
|
[Signal]
|
|
public delegate void StartGameEventHandler();
|
|
|
|
//private Label _healthLabel;
|
|
|
|
[Export]
|
|
public PackedScene SelectorScene { get; set; }
|
|
|
|
[Export]
|
|
private Node2D _selector;
|
|
|
|
[Export] private Label _healthLabel;
|
|
[Export] private Container _itemsContainer;
|
|
|
|
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
|
|
}
|
|
|
|
public void AddInventoryItem(LootItem item)
|
|
{
|
|
TextureRect texture = new TextureRect();
|
|
texture.Texture = item.InventorySprite;
|
|
|
|
_itemsContainer.AddChild(texture);
|
|
}
|
|
|
|
public void RemoveInventoryItem(LootItem item)
|
|
{
|
|
|
|
}
|
|
}
|