public bool btload(Agent.State_t state) { state.Vars.CopyTo(this, this.m_variables); if (state.BT != null) { 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); } return(false); }
protected virtual void OnDestroy() { this.UnSubsribeToNetwork(); if (this.m_contextId >= 0) { Context context = Context.GetContext(this.m_contextId); World world = context.GetWorld(false); if (!object.ReferenceEquals(world, null) && !object.ReferenceEquals(world, this)) { world.RemoveAgent(this); } } if (this.m_behaviorTreeTasks != null) { for (int i = 0; i < this.m_behaviorTreeTasks.Count; i++) { BehaviorTreeTask behaviorTreeTask = this.m_behaviorTreeTasks[i]; Workspace.DestroyBehaviorTreeTask(behaviorTreeTask, this); } this.m_behaviorTreeTasks.Clear(); this.m_behaviorTreeTasks = null; } if (this.m_eventInfos != null) { this.m_eventInfos.Clear(); this.m_eventInfos = null; } }
public void btunloadall() { ListView <BehaviorTree> listView = new ListView <BehaviorTree>(); foreach (BehaviorTreeTask current in this.BehaviorTreeTasks) { BehaviorNode node = current.GetNode(); BehaviorTree behaviorTree = (BehaviorTree)node; bool flag = false; foreach (BehaviorTree current2 in listView) { if (current2 == behaviorTree) { flag = true; break; } } if (!flag) { listView.Add(behaviorTree); } Workspace.DestroyBehaviorTreeTask(current, this); } foreach (BehaviorTree current3 in listView) { this.btunload_pars(current3); Workspace.UnLoad(current3.GetName()); } this.BehaviorTreeTasks.Clear(); this.m_currentBT = null; this.BTStack.Clear(); this.Variables.Unload(); }
public void btunload(string relativePath) { if (this.m_currentBT != null && this.m_currentBT.GetName() == relativePath) { BehaviorNode node = this.m_currentBT.GetNode(); BehaviorTree bt = node as BehaviorTree; this.btunload_pars(bt); this.m_currentBT = null; } for (int i = 0; i < this.BTStack.Count; i++) { Agent.BehaviorTreeStackItem_t behaviorTreeStackItem_t = this.BTStack[i]; if (behaviorTreeStackItem_t.bt.GetName() == relativePath) { this.BTStack.Remove(behaviorTreeStackItem_t); break; } } for (int j = 0; j < this.BehaviorTreeTasks.Count; j++) { BehaviorTreeTask behaviorTreeTask = this.BehaviorTreeTasks[j]; if (behaviorTreeTask.GetName() == relativePath) { Workspace.DestroyBehaviorTreeTask(behaviorTreeTask, this); this.BehaviorTreeTasks.Remove(behaviorTreeTask); break; } } Workspace.UnLoad(relativePath); }
public void btunloadall() { ListView <BehaviorTree> view = new ListView <BehaviorTree>(); foreach (BehaviorTreeTask task in this.BehaviorTreeTasks) { BehaviorTree node = (BehaviorTree)task.GetNode(); bool flag = false; foreach (BehaviorTree tree2 in view) { if (tree2 == node) { flag = true; break; } } if (!flag) { view.Add(node); } Workspace.DestroyBehaviorTreeTask(task, this); } foreach (BehaviorTree tree3 in view) { this.btunload_pars(tree3); Workspace.UnLoad(tree3.GetName()); } this.BehaviorTreeTasks.Clear(); this.m_currentBT = null; this.BTStack.Clear(); this.Variables.Unload(); }
public bool btsave(Agent.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); }
public void btunloadall() { ListView <BehaviorTree> listView = new ListView <BehaviorTree>(); using (ListView <BehaviorTreeTask> .Enumerator enumerator = this.BehaviorTreeTasks.GetEnumerator()) { while (enumerator.MoveNext()) { BehaviorTreeTask current = enumerator.get_Current(); BehaviorNode node = current.GetNode(); BehaviorTree behaviorTree = (BehaviorTree)node; bool flag = false; using (ListView <BehaviorTree> .Enumerator enumerator2 = listView.GetEnumerator()) { while (enumerator2.MoveNext()) { BehaviorTree current2 = enumerator2.get_Current(); if (current2 == behaviorTree) { flag = true; break; } } } if (!flag) { listView.Add(behaviorTree); } Workspace.DestroyBehaviorTreeTask(current, this); } } using (ListView <BehaviorTree> .Enumerator enumerator3 = listView.GetEnumerator()) { while (enumerator3.MoveNext()) { BehaviorTree current3 = enumerator3.get_Current(); this.btunload_pars(current3); Workspace.UnLoad(current3.GetName()); } } this.BehaviorTreeTasks.Clear(); this.m_currentBT = null; this.BTStack.Clear(); this.Variables.Unload(); }