step-timeline/Scripts/Triggers/TimelineTrigger.cs

48 lines
1.2 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace R0bbie.Timeline
{
/// <summary>
/// Generic TimelineTrigger which simply calls TriggerContinue on all attached steps
/// </summary>
public class TimelineTrigger : MonoBehaviour
{
[SerializeField] string description;
// Private variables
List<Step> triggerContinueOnSteps = new List<Step>();
// Properties
public bool triggered { get; protected set; }
public void AddStep(Step _stepToTrigger)
{
// Only add step to the list if it's not already in it..
if (triggerContinueOnSteps.Contains(_stepToTrigger))
return;
// Add step to list
triggerContinueOnSteps.Add(_stepToTrigger);
}
///
public void Trigger()
{
triggered = true;
// Add message to trigger continue on all attached steps
foreach (Step triggerContinueOnStep in triggerContinueOnSteps)
{
triggerContinueOnStep.TriggerContinue(this);
}
}
}
}