public bool btload(State_t state) { state.Vars.CopyTo(this, this.m_variables); if (state.BT == null) { return(false); } if (this.m_currentBT != null) { for (int i = 0; i < this.m_behaviorTreeTasks.Count; i++) { BehaviorTreeTask behaviorTreeTask = this.m_behaviorTreeTasks[i]; if (behaviorTreeTask == this.m_currentBT) { Workspace.DestroyBehaviorTreeTask(behaviorTreeTask, this); this.m_behaviorTreeTasks.Remove(behaviorTreeTask); break; } } } BehaviorNode node = state.BT.GetNode(); this.m_currentBT = (BehaviorTreeTask)node.CreateAndInitTask(); state.BT.CopyTo(this.m_currentBT); return(true); }
public bool btsave(State_t state) { this.m_variables.CopyTo(null, state.Vars); if (this.m_currentBT != null) { Workspace.DestroyBehaviorTreeTask(state.BT, this); BehaviorNode node = this.m_currentBT.GetNode(); state.BT = (BehaviorTreeTask)node.CreateAndInitTask(); this.m_currentBT.CopyTo(state.BT); return(true); } return(false); }