23 lines
513 B
C#
23 lines
513 B
C#
using Godot;
|
|
|
|
public partial class PickupMarker : Area2D
|
|
{
|
|
public string PickupId { get; set; } = "";
|
|
public string ItemId { get; set; } = "";
|
|
|
|
public override void _Ready()
|
|
{
|
|
BodyEntered += OnBodyEntered;
|
|
}
|
|
|
|
private void OnBodyEntered(Node2D body)
|
|
{
|
|
if (body is not CharacterBody2D) return;
|
|
|
|
// Defer to avoid freeing during signal processing edge cases
|
|
EmitSignal(SignalName.PickedUp, PickupId, ItemId);
|
|
}
|
|
|
|
[Signal]
|
|
public delegate void PickedUpEventHandler(string pickupId, string itemId);
|
|
}
|