using System.Collections; using System.Collections.Generic; using UnityEngine; using XNode; using RPGCreationKit.BehaviourTree; using RPGCreationKit; using UnityEditor; namespace RPGCreationKit.BehaviourTree { [System.Serializable] public abstract class BTNode : Node { [Input(backingValue = ShowBackingValue.Never)] public BTNode input; public NodeState m_NodeState; public int indexInSequence = -1; public string resultScript; public Events events; abstract public NodeState Execute(); abstract public void OnStart(); public bool STARTED = false; public NodeStatus nodeStatus; public bool hasEvaluated = false; public virtual void ReEvaluate() { m_NodeState = NodeState.Null; STARTED = false; hasEvaluated = false; } public override object GetValue(NodePort port) { return null; } public static int SortInGraphYPos(Node a, Node b) { return a.position.y.CompareTo(b.position.y); } public virtual void ReorderChild() { } } }