newlon/scripts/droppable-items/DroppableItem.cs
2025-07-28 18:03:26 +05:00

30 lines
633 B
C#

using Godot;
namespace Newlon.Components.Droppables;
[GlobalClass]
public partial class DroppableItem : Area2D
{
[Signal] public delegate void PickedUpEventHandler();
public override void _MouseEnter()
{
if (GamepadHandler.Instance.IsGamepadControlled)
{
GetViewport().SetInputAsHandled();
PickUp();
EmitSignal(SignalName.PickedUp);
}
}
public override void _InputEvent(Viewport viewport, InputEvent @event, int shapeIdx)
{
if (@event.IsActionPressed("primary_action"))
{
GetViewport().SetInputAsHandled();
PickUp();
EmitSignal(SignalName.PickedUp);
}
}
public virtual void PickUp() {}
}