selector changes

This commit is contained in:
MaddoScientisto 2025-01-30 08:34:09 +01:00
commit f9432a61ee
11 changed files with 103 additions and 16 deletions

View file

@ -39,6 +39,8 @@ public partial class GameManager : Node2D
}
_player.HealthChanged += (newHealth, maxHealth) => _hud.UpdateHealth(newHealth, maxHealth);
_player.InteractableAreaEntered += (interactable) => _hud.UpdateInteractable(interactable);
//_player.Connect(nameof(_player.HealthChanged), _hud, nameof(_hud.UpdateHealth));

View file

@ -8,6 +8,12 @@ public partial class Hud : CanvasLayer
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"
@ -42,4 +48,12 @@ public partial class Hud : CanvasLayer
{
_healthLabel.Text = $"{newHealth}/{maxHealth}";
}
public void UpdateInteractable(Interactable interactable) {
GD.Print($"Interactable ${interactable.Name} entered in HUD");
//_selector.Position = _selector.tolo
}
}

View file

@ -56,6 +56,12 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
[Signal]
public delegate void HealthChangedEventHandler(float newHealth, float MaxHealth);
[Signal]
public delegate void InteractableAreaEnteredEventHandler(Interactable interactable);
[Signal]
public delegate void InteractableAreaExitedEventHandler(Interactable interactable);
public float CurrentHealth
{
get => _currentHealth;
@ -259,6 +265,8 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
{
Debug.WriteLine($"Interactable {area.Name} Entered");
EmitSignal(nameof(InteractableAreaEntered), interactable);
if (_selector != null)
{
_selector.Position = interactable.Position;
@ -270,7 +278,12 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
private void _on_interaction_controller_area_exited(Area2D area)
{
if (area.IsInGroup("Interactable") && area is Interactable interactable)
{
Debug.WriteLine($"Interactable {area.Name} Exited");
EmitSignal(nameof(InteractableAreaExited), interactable);
}
}
private void Explode()

26
Scripts/Selector.cs Normal file
View file

@ -0,0 +1,26 @@
using Godot;
using System;
using System.Collections.Generic;
public partial class Selector : Node2D
{
private Interactable _lastInteractable;
private List<Interactable> _interactables = new List<Interactable>();
private int _selectedInteractable;
public void AddInteractable(Interactable interactable)
{
if (!_interactables.Contains(interactable)) {
_interactables.Add(interactable);
}
}
public void RemoveInteractable()
{
}
}