Пример #1
0
    //-------------------------------------------------------------------------
    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);
    }
Пример #2
0
    //-------------------------------------------------------------------------
    // 切换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);
        }
    }
Пример #3
0
    //-------------------------------------------------------------------------
    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);
    }
Пример #4
0
    //-------------------------------------------------------------------------
    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);
    }
Пример #5
0
    //-------------------------------------------------------------------------
    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");
    }
Пример #6
0
    //-------------------------------------------------------------------------
    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);
    }
Пример #7
0
    //-------------------------------------------------------------------------
    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);
    }
Пример #8
0
 //-------------------------------------------------------------------------
 internal void _setNodeState(_eNodeState state)
 {
     mNodeState = state;
 }
Пример #9
0
    //-------------------------------------------------------------------------
    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();
    }
Пример #10
0
 //-------------------------------------------------------------------------
 internal void _setNodeState(_eNodeState state)
 {
     mNodeState = state;
 }
Пример #11
0
    //-------------------------------------------------------------------------
    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();
    }