Files

35 lines
753 B
C#
Raw Permalink Normal View History

2025-03-26 00:26:29 +01:00
using Godot;
2025-04-06 18:46:59 +02:00
namespace Babushka.scripts.CSharp.Common.CharacterControls;
2025-03-26 00:26:29 +01:00
public partial class InteractionArea : Node3D
{
[Export] private Area3D _area;
[Export] private Label3D _label;
2025-04-04 00:22:35 +02:00
[Export] private bool _showLabel = true;
2025-03-26 00:26:29 +01:00
[Signal]
public delegate void InteractedEventHandler();
2025-04-04 00:22:35 +02:00
public void OnPlayerEntered(Node3D player)
2025-03-26 00:26:29 +01:00
{
2025-04-04 00:22:35 +02:00
if(_showLabel)
2025-03-26 00:26:29 +01:00
_label.Show();
2025-04-04 00:22:35 +02:00
}
public void OnPlayerExited(Node3D player)
{
_label.Hide();
2025-03-26 00:26:29 +01:00
}
public override void _Input(InputEvent @event)
{
2025-04-04 00:22:35 +02:00
if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies())
{
_label.Hide();
2025-03-26 00:26:29 +01:00
EmitSignal(SignalName.Interacted);
2025-04-04 00:22:35 +02:00
}
2025-03-26 00:26:29 +01:00
}
}