//------------------------------------------------------------------------- internal void _opEnterState(int node_id, _eNodeState state, List<_tNodeParamPair> list_param = null) { _tNodeOp node_op; node_op.op = _eNodeOp.EnterState; node_op.id = node_id; node_op.state = state; node_op.list_param = list_param; mQueNodeOp.Enqueue(node_op); }
//------------------------------------------------------------------------- // 切换Node状态 public void setNodeSate(_tNodeOp node_op) { _eNodeState next_state = (_eNodeState)node_op.state; if (next_state == _eNodeState.Run) { processEvent("evSetRunState", node_op.list_param); } else if (next_state == _eNodeState.Stop) { processEvent("evSetStopState", node_op.list_param); } }
//------------------------------------------------------------------------- internal void _opCreateNode(int node_id, _eNodeState state, int pre_node_id) { _tNodeOp node_op; node_op.op = _eNodeOp.CreateNode; node_op.id = node_id; node_op.state = state; node_op.list_param = new List<_tNodeParamPair>(); _tNodeParamPair pp; pp.k = (byte)_eNodeParam.PreNodeId; pp.v = pre_node_id; node_op.list_param.Add(pp); mQueNodeOp.Enqueue(node_op); }
//------------------------------------------------------------------------- internal void _opEnterState(int node_id, _eNodeState state, List <_tNodeParamPair> list_param = null) { if (mIsClient) { return; } _tNodeOp node_op; node_op.op = (byte)_eNodeOp.EnterState; node_op.id = node_id; node_op.state = (byte)state; node_op.list_param = list_param; mQueNodeOp.Enqueue(node_op); }
//------------------------------------------------------------------------- public string evSetNextSate(IEbEvent ev) { // 根据NodeState跳转到对应state _eNodeState state = mNode.getNodeState(); if (state == _eNodeState.Init || state == _eNodeState.Start) { return("CNodeStateStart"); } else if (state == _eNodeState.Run) { return("CNodeStateRun"); } else if (state == _eNodeState.Stop) { return("CNodeStateStop"); } else if (state == _eNodeState.Release) { return("CNodeStateRelease"); } return("CNodeStateStart"); }
//------------------------------------------------------------------------- internal void _opEnterState(int node_id, _eNodeState state, List<_tNodeParamPair> list_param = null) { if (mIsClient) return; _tNodeOp node_op; node_op.op = (byte)_eNodeOp.EnterState; node_op.id = node_id; node_op.state = (byte)state; node_op.list_param = list_param; mQueNodeOp.Enqueue(node_op); }
//------------------------------------------------------------------------- internal void _opCreateNode(int node_id, _eNodeState state, int pre_node_id) { _tNodeOp node_op; node_op.op = (byte)_eNodeOp.CreateNode; node_op.id = node_id; node_op.state = (byte)state; node_op.list_param = new List<_tNodeParamPair>(); _tNodeParamPair pp; pp.k = (byte)_eNodeParam.PreNodeId; pp.v = pre_node_id; node_op.list_param.Add(pp); mQueNodeOp.Enqueue(node_op); }
//------------------------------------------------------------------------- internal void _setNodeState(_eNodeState state) { mNodeState = state; }
//------------------------------------------------------------------------- public void create(int node_id, _eNodeState state, List <_tNodeParamPair> list_param, INodeServerListener server_listener, INodeClientListener client_listener, CNodeSys node_sys, CNodeMgr node_mgr) { mNodeServerListener = server_listener; mNodeClientListener = client_listener; mNodeSys = node_sys; mNodeMgr = node_mgr; // 初始化NodeInfo mNodeId = node_id; mNodeState = state; if (list_param != null) { foreach (var i in list_param) { if (i.k == (byte)_eNodeParam.PreNodeId || i.k == (byte)_eNodeParam.ExitId) { mMapParam[i.k] = int.Parse(i.v.ToString()); } else { mMapParam[i.k] = i.v; } } } // 加载DefXml数据 _loadDefXml(); // 设置该Node的父Node string str_parent_node_id = getDefXml().GetValue("Parent").Value; if (str_parent_node_id != string.Empty && str_parent_node_id != "0") { int parent_node_id = Convert.ToInt32(str_parent_node_id); CNode node_parent = getNodeMgr().findNode(parent_node_id); if (node_parent != null) { mParentNode = node_parent; node_parent._addChildNode(this); } } // 从xml中解析所有trigger _parseTriggerXml(); // 初始化脚本 if (mNodeSys.isClient()) { INodeClientScriptFactory factory = mNodeSys.getNodeClientScriptFactory(getNodeType()); if (factory != null) { mNodeClientScript = factory.createScript(this); } } else { INodeServerScriptFactory factory = mNodeSys.getNodeServerScriptFactory(getNodeType()); if (factory != null) { mNodeServerScript = factory.createScript(this, getEtPlayer()); } } // 创建Fsm addState(new CNodeStateInit(this)); addState(new CNodeStateStart(this)); addState(new CNodeStateRun(this)); addState(new CNodeStateStop(this)); addState(new CNodeStateRelease(this)); setupFsm(); }
//------------------------------------------------------------------------- public void create(int node_id, _eNodeState state, List<_tNodeParamPair> list_param, INodeServerListener server_listener, INodeClientListener client_listener, CNodeSys node_sys, CNodeMgr node_mgr) { mNodeServerListener = server_listener; mNodeClientListener = client_listener; mNodeSys = node_sys; mNodeMgr = node_mgr; // 初始化NodeInfo mNodeId = node_id; mNodeState = state; if (list_param != null) { foreach (var i in list_param) { if (i.k == (byte)_eNodeParam.PreNodeId || i.k == (byte)_eNodeParam.ExitId) { mMapParam[i.k] = int.Parse(i.v.ToString()); } else { mMapParam[i.k] = i.v; } } } // 加载DefXml数据 _loadDefXml(); // 设置该Node的父Node string str_parent_node_id = getDefXml().GetValue("Parent").Value; if (str_parent_node_id != string.Empty && str_parent_node_id != "0") { int parent_node_id = Convert.ToInt32(str_parent_node_id); CNode node_parent = getNodeMgr().findNode(parent_node_id); if (node_parent != null) { mParentNode = node_parent; node_parent._addChildNode(this); } } // 从xml中解析所有trigger _parseTriggerXml(); // 初始化脚本 if (mNodeSys.isClient()) { INodeClientScriptFactory factory = mNodeSys.getNodeClientScriptFactory(getNodeType()); if (factory != null) { mNodeClientScript = factory.createScript(this); } } else { INodeServerScriptFactory factory = mNodeSys.getNodeServerScriptFactory(getNodeType()); if (factory != null) { mNodeServerScript = factory.createScript(this, getEtPlayer()); } } // 创建Fsm addState(new CNodeStateInit(this)); addState(new CNodeStateStart(this)); addState(new CNodeStateRun(this)); addState(new CNodeStateStop(this)); addState(new CNodeStateRelease(this)); setupFsm(); }