using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using UnityEngine; /******************************************************************************* *Create By CG *Function 事件中心管理 *******************************************************************************/ namespace ZXK.Framework { public class EventCenterManager : ClassSingleton { //枚举-委托事件 可以通过找到订阅的事件 private Dictionary _eventDic = new Dictionary(); /// /// 添加委托事件 /// /// /// public void AddEventListener(EventEnum eventName,EventHandler handler) { if (_eventDic.ContainsKey(eventName)) { _eventDic[eventName] += handler; } else { _eventDic.Add(eventName, handler); } } /// /// 发布者发布消息 /// /// 委托事件名字 /// 发布者 /// 消息参数 public void Dispatch(EventEnum eventName, object sander,EventArgs args) { if (_eventDic.ContainsKey(eventName)) { _eventDic[eventName]?.Invoke(sander, args); } } /// /// 移除委托内一个事件 /// /// /// public void RemoveListener(EventEnum eventName,EventHandler handler) { if (_eventDic.ContainsKey(eventName)) { _eventDic[eventName] -= handler; } } /// /// 移除委托事件 /// /// public void RemoveEvent(EventEnum eventName) { if (_eventDic.ContainsKey(eventName)) { _eventDic[eventName] = null; } } /// /// 清除所有委托事件 /// public void Clear() { foreach (var item in _eventDic.Keys) { _eventDic[item] = null; } _eventDic.Clear(); } } /// /// 改变程序模块事件参数 /// public class ChangeModelArgs : EventArgs { public UTility.EnumCtrl.Model _Model; } /// /// 使用工具组装相关参数 /// public class ToolArgs : EventArgs { public string _ToolName; public Sprite _ToolImg; } public class ClickEquipmentArgs : EventArgs { public BYSS.EquipmentInfo info; } /// /// 委托事件名字 /// public enum EventEnum { /// /// 采集工具 /// PickTool, /// /// 点击设备 /// ClickEquipment, /// /// 拆卸设备 /// SplitEquipment, /// /// 合成设备 /// CombineEquipment, /// /// 跟进组装操作步骤 /// ChangeProcess, /// /// 自动接线 /// AutoConnect } }