public override NodeState Activate(NodeStateHandle state) { for (int i = 0; i < state.ChildCount; ++i) { state.ActivateChild(i); } return(NodeState.Running); }
public override NodeState Update(float dt, NodeStateHandle state, ref float value) { value -= dt; if (value <= 0.0f) { return(NodeState.Complete); } return(NodeState.Running); }
public override NodeState Activate(NodeStateHandle state, ref float value) { if (MaxDuration.HasValue) { value = (float)(new System.Random().NextDouble() * (MaxDuration.Value - MinDuration)) + MinDuration; } else { value = MinDuration; } return(NodeState.Running); }
public override NodeState Update(float dt, NodeStateHandle h) { for (int i = 0; i < h.ChildCount; ++i) { if (h.ChildState(i) != NodeState.Running) { return(h.ChildState(i)); } } return(NodeState.Running); }
public override NodeState Update(float dt, NodeStateHandle h) { for (int i = 0; i < h.ChildCount; ++i) { if (!h.ChildState(i).Active()) { h.ActivateChild(i); } } return(NodeState.Running); }
public override NodeState Update(float dt, NodeStateHandle state, ref int value) { var curChildState = state.ChildState(value); if (curChildState.Active()) { return(NodeState.Running); } ++value; if (value < state.ChildCount) { state.ActivateChild(value); return(NodeState.Running); } else { return(NodeState.Complete); } }
public unsafe void Update(float dt, int nodeIndex, TreeDef treeDef, NativeSlice <NodeState> state, NativeSlice <byte> data) { Profiler.BeginSample("TNode::Update"); var arr = data.SliceConvert <T>(); for (int i = 0; i < arr.Length; ++i) { var h = new NodeStateHandle(nodeIndex, state.Slice(i * treeDef.Nodes.Length, treeDef.Nodes.Length), treeDef); var v = arr[i]; if (h.State == NodeState.Activating) { h.State = Activate(h, ref v); } if (h.State == NodeState.Running) { h.State = Update(dt, h, ref v); arr[i] = v; } } Profiler.EndSample(); }
public void Update(float dt, int nodeIndex, TreeDef treeDef, NativeSlice <NodeState> state, NativeSlice <byte> data) { int nStates = state.Length / treeDef.Nodes.Length; for (int i = 0; i < nStates; ++i) { var h = new NodeStateHandle(nodeIndex, state.Slice(i * treeDef.Nodes.Length, treeDef.Nodes.Length), treeDef); if (!h.State.Active()) { continue; } if (h.State == NodeState.Activating) { h.State = Activate(h); } if (h.State == NodeState.Running) { h.State = Update(dt, h); } } }
public override NodeState Activate(NodeStateHandle state) { return(NodeState.Running); }
public override NodeState Activate(NodeStateHandle state, ref int value) { value = 0; state.ActivateChild(0); return(NodeState.Running); }
public override NodeState Update(float dt, NodeStateHandle h) { Debug.Log(Value); return(NodeState.Complete); }
public abstract NodeState Update(float dt, NodeStateHandle h);
public abstract NodeState Activate(NodeStateHandle state);
public abstract NodeState Update(float dt, NodeStateHandle state, ref T value);
public abstract NodeState Activate(NodeStateHandle state, ref T value);