cirnogodot/Scripts/Actors/ActorSpawner.cs
2025-03-24 10:26:13 +01:00

33 lines
No EOL
704 B
C#

using Godot;
using Godot.Collections;
namespace Cirno.Scripts.Actors;
public partial class ActorSpawner : Node2D, IActivable
{
[Export]
public PackedScene ActorPrefab { get; set; }
[Export] public bool WaitForActorDeath { get; private set; } = true;
public Node2D SpawnedActor { get; private set; }
public virtual void Spawn()
{
SpawnedActor = this.CreateSibling<Node2D>(ActorPrefab);
}
public bool Activate(ActivationType activationType = ActivationType.Toggle)
{
if (!WaitForActorDeath)
{
Spawn();
}
else if (SpawnedActor == null)
{
Spawn();
}
return true;
}
}