79 lines
1.9 KiB
C#
79 lines
1.9 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using XNode;
|
|||
|
using RPGCreationKit.BehaviourTree;
|
|||
|
|
|||
|
namespace RPGCreationKit.BehaviourTree
|
|||
|
{
|
|||
|
[CreateNodeMenu("RPGCK_BehaviourTree/ActionNode", order = 1)]
|
|||
|
[System.Serializable]
|
|||
|
public class ActionNode : BTNode
|
|||
|
{
|
|||
|
public string debugs = "";
|
|||
|
public bool executionGoesWell = false;
|
|||
|
|
|||
|
public float startTime = 0;
|
|||
|
public float timer = 0f;
|
|||
|
|
|||
|
// Use this for initialization
|
|||
|
protected override void Init()
|
|||
|
{
|
|||
|
base.Init();
|
|||
|
}
|
|||
|
|
|||
|
// Return the correct value of an output port when requested
|
|||
|
public override object GetValue(NodePort port)
|
|||
|
{
|
|||
|
return null; // Replace this
|
|||
|
}
|
|||
|
|
|||
|
public override NodeState Execute()
|
|||
|
{
|
|||
|
if (m_NodeState == NodeState.Success || m_NodeState == NodeState.Failure)
|
|||
|
if (hasEvaluated == true)
|
|||
|
return m_NodeState;
|
|||
|
|
|||
|
if (!STARTED)
|
|||
|
OnStart();
|
|||
|
|
|||
|
startTime += 1 * Time.deltaTime;
|
|||
|
if (startTime >= timer)
|
|||
|
{
|
|||
|
if(!string.IsNullOrEmpty(debugs))
|
|||
|
Debug.Log(debugs);
|
|||
|
|
|||
|
|
|||
|
m_NodeState = (executionGoesWell) ? NodeState.Success : NodeState.Failure;
|
|||
|
return m_NodeState;
|
|||
|
}
|
|||
|
|
|||
|
hasEvaluated = true;
|
|||
|
|
|||
|
m_NodeState = NodeState.Running;
|
|||
|
return m_NodeState;
|
|||
|
}
|
|||
|
|
|||
|
public override void ReEvaluate()
|
|||
|
{
|
|||
|
if (m_NodeState != NodeState.Running)
|
|||
|
{
|
|||
|
base.ReEvaluate();
|
|||
|
OnStart();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public override void OnRemoveConnection(NodePort port)
|
|||
|
{
|
|||
|
base.OnRemoveConnection(port);
|
|||
|
indexInSequence = -1;
|
|||
|
}
|
|||
|
|
|||
|
public override void OnStart()
|
|||
|
{
|
|||
|
STARTED = true;
|
|||
|
startTime = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|