mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-11 14:05:54 +00:00
selector changes
This commit is contained in:
parent
686dea6c8d
commit
f9432a61ee
11 changed files with 103 additions and 16 deletions
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
26
Scripts/Selector.cs
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue