mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 09:35:34 +00:00
52 lines
1 KiB
C#
52 lines
1 KiB
C#
using Godot;
|
|
|
|
namespace Cirno.Scripts.Components;
|
|
|
|
public partial class AlarmTrigger : Node2D
|
|
{
|
|
private AlarmManager _alarmManager;
|
|
|
|
[Export]
|
|
public AlarmTriggerType TriggerType { get; private set; }
|
|
|
|
[Export]
|
|
public Node2D Target { get; private set; }
|
|
|
|
public override void _Ready()
|
|
{
|
|
_alarmManager = this.GetAlarmManager(); //AlarmManager.Instance;
|
|
if (TriggerType is AlarmTriggerType.OnEnabled)
|
|
{
|
|
_alarmManager.AlarmEnabled += AlarmManagerOnAlarmEnabled;
|
|
}
|
|
else
|
|
{
|
|
_alarmManager.AlarmDisabled += AlarmManagerOnAlarmDisabled;
|
|
}
|
|
}
|
|
|
|
private void AlarmManagerOnAlarmDisabled()
|
|
{
|
|
Activate();
|
|
}
|
|
|
|
private void AlarmManagerOnAlarmEnabled(Vector2 location)
|
|
{
|
|
Activate();
|
|
}
|
|
|
|
private void Activate()
|
|
{
|
|
if (Target is IActivable activatable)
|
|
{
|
|
activatable.Activate();
|
|
}
|
|
}
|
|
|
|
public enum AlarmTriggerType
|
|
{
|
|
OnEnabled,
|
|
OnDisabled
|
|
}
|
|
}
|
|
|