/// <summary> /// 登録したNodeを抹消する /// </summary> /// <param name="stateType"></param> public void UnRegisterStateNode(T stateType) { StateNodeDataItem stateNodeDataItem = GetStateNode(stateType); if (stateNodeDataItem != null) { stateNodeDataItem.StateNode.StateFinalize(); stateNodeDataItem.StateNode = null; m_stateNodeDataItems.Remove(stateNodeDataItem); stateNodeDataItem = null; } }
/// <summary> /// Unregister state node /// </summary> /// <param name="stateType">State type to unregister</param> public void UnRegisterStateNode(T stateType) { StateNodeDataItem stateNodeDataItem = GetStateNode(stateType); if (stateNodeDataItem != null) { Console.WriteLine("_pLog_ {0} [{1}@{2}] {3}", DateTime.UtcNow.Ticks, this.GetType(), MethodBase.GetCurrentMethod().ToString(), string.Format("{0}", "")); stateNodeDataItem.StateNode.StateFinalize(); stateNodeDataItem.StateNode = null; m_stateNodeDataItems.Remove(stateNodeDataItem); stateNodeDataItem = null; } }
/// <summary> /// stateごとのnodeを登録する /// 初回登録場合はinitializeステータスとしてコールバックを呼ぶ /// </summary> /// <param name="stateType"></param> /// <param name="stateNode"></param> public void RegisterStateNode(T stateType, StateNodeCore <T> stateNode) { StateNodeDataItem stateNodeDataItem = GetStateNode(stateType); if (stateNodeDataItem == null) { m_stateNodeDataItems.Add(new StateNodeDataItem() { StateType = stateType, StateNode = stateNode }); stateNode.StateInitialize(); } else { m_stateNodeDataItems.Add(new StateNodeDataItem() { StateType = stateType, StateNode = stateNode }); } }
/// <summary> /// Register state node /// </summary> /// <param name="stateType">State type to register</param> /// <param name="stateNode">State node to register</param> public void RegisterStateNode(T stateType, SkStateNode <T> stateNode) { StateNodeDataItem stateNodeDataItem = GetStateNode(stateType); if (stateNodeDataItem == null) { Console.WriteLine("_pLog_ {0} [{1}@{2}] {3}", DateTime.UtcNow.Ticks, this.GetType(), MethodBase.GetCurrentMethod().ToString(), string.Format("{0}", string.Format("StateType {0} Registered!", stateType))); m_stateNodeDataItems.Add(new StateNodeDataItem() { StateType = stateType, StateNode = stateNode }); stateNode.StateInitialize(); } else { Console.WriteLine("_pLog_ {0} [{1}@{2}] {3}", DateTime.UtcNow.Ticks, this.GetType(), MethodBase.GetCurrentMethod().ToString(), string.Format("{0}", string.Format("ERROR: StateType {0} already exist!", stateType))); m_stateNodeDataItems.Add(new StateNodeDataItem() { StateType = stateType, StateNode = stateNode }); } }