#if GRAPH_DESIGNER /// --------------------------------------------- /// Behavior Designer /// Copyright (c) Opsive. All Rights Reserved. /// https://www.opsive.com /// --------------------------------------------- namespace Opsive.BehaviorDesigner.Runtime.Tasks.Conditionals { using Opsive.BehaviorDesigner.Runtime.Components; using Opsive.GraphDesigner.Runtime; /// /// A TaskObject implementation of the Conditional task. /// [NodeIcon("dea5c23eac9d12c4cbd380cc879816ea", "2963cf3eb0c036449829254b2074c4c3")] public abstract class Conditional : Task, IConditional, IConditionalReevaluation { /// /// Reevaluates the task logic. Returns a TaskStatus indicating how the behavior tree flow should proceed. /// /// The status of the task during the reevaluation phase. public virtual TaskStatus OnReevaluateUpdate() { return OnUpdate(); } /// /// Is the task being reevaluated? /// /// True if the task is being reevaluated. protected bool IsReevaluating() { var taskComponents = m_BehaviorTree.World.EntityManager.GetBuffer(m_BehaviorTree.Entity, true); if (m_RuntimeIndex >= taskComponents.Length) { return false; } return taskComponents[m_RuntimeIndex].Reevaluate; } } } #endif