/// <summary> /// 客户端模拟模块使用 /// </summary> public static bool ProcessData(BscCmd cmd, object Info) { BSCEventHook evt = FindBscEvent(cmd); if (evt != null) { evt(Info); } return(true); }
/// <summary> /// 反注册事件 /// </summary> public static void AntiRegisterHooks(BscCmd cmd, BSCEventHook evt) { if (cmd == null || evt == null) { return; } BscCmd fcmd = FindBscEventCmd(cmd); if (fcmd != null) { m_EventHook.Remove(fcmd); } }
/// <summary> /// 查找事件 /// </summary> private static BSCEventHook FindBscEvent(BscCmd cmd) { if (cmd == null) { return(null); } BscCmd fcmd = FindBscEventCmd(cmd); if (fcmd != null) { return(m_EventHook[fcmd]); } return(null); }
/// <summary> /// 注册事件 /// </summary> public static void RegisterHooks(BscCmd cmd, BSCEventHook evt) { if (cmd == null || evt == null) { return; } BscCmd fcmd = FindBscEventCmd(cmd); if (fcmd == null) { m_EventHook.Add(new BscCmd(cmd.DataID, cmd.Type), evt); } else { m_EventHook[fcmd] = evt; } }
/// <summary> /// 查找事件 /// </summary> private static BscCmd FindBscEventCmd(BscCmd cmd) { if (cmd == null) { return(null); } foreach (BscCmd key in m_EventHook.Keys) { if (key == null) { continue; } if (key.DataID == cmd.DataID && key.Type == cmd.Type) { return(key); } } return(null); }