Beispiel #1
0
        /// <summary>
        /// 广播事件;
        /// </summary>
        /// <param name="receiver">接收者</param>
        /// <param name="type">事件类型</param>
        /// <param name="eventArgs">事件参数</param>
        public void FireEvent(ObjectEx receiver, EventType type, IEventArgs eventArgs)
        {
            if (null == receiver)
            {
                LogHelper.PrintError("[EventMgr]FireEvent error,the receiver is null.");
                return;
            }
            Dictionary <EventType, List <EventHandler> > dict;
            List <EventHandler> list;

            if (EventDict.TryGetValue(receiver, out dict))
            {
                if (null != dict && dict.Count > 0)
                {
                    if (dict.TryGetValue(type, out list))
                    {
                        if (null != list && list.Count > 0)
                        {
                            foreach (var callback in list)
                            {
                                if (callback != null)
                                {
                                    callback(eventArgs);
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 添加事件;
        /// </summary>
        /// <param name="receiver">接收者</param>
        /// <param name="type">事件类型</param>
        /// <param name="callBack">事件回调</param>
        public void AddEvent(ObjectEx receiver, EventType type, EventHandler callBack)
        {
            if (null == receiver)
            {
                LogHelper.PrintError("[EventMgr]AddEvent error,the receiver is null.");
                return;
            }
            Dictionary <EventType, List <EventHandler> > dict;
            List <EventHandler> list;

            if (!EventDict.TryGetValue(receiver, out dict))
            {
                EventDict[receiver] = new Dictionary <EventType, List <EventHandler> >();
            }
            dict = EventDict[receiver];
            if (!dict.TryGetValue(type, out list))
            {
                list       = new List <EventHandler>();
                dict[type] = list;
            }
            list = dict[type];
            if (list.Contains(callBack))
            {
                LogHelper.PrintWarning(string.Format("[EventMgr]AddEvent repeat,receiver:{0},eventType:{1}.",
                                                     receiver.ID, type.ToString()));
            }
            else
            {
                list.Add(callBack);
            }
        }
Beispiel #3
0
 protected override void OnAttachObject(ObjectEx owner)
 {
     base.OnAttachObject(owner);
     //初始化;
     _initModel = true;
     CombineModel();
 }
 /// <summary>
 /// 移除Component;
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="owner"></param>
 public void ReleaseComponent <T>(ObjectEx owner) where T : AbsComponent, new()
 {
     if (null == owner)
     {
         return;
     }
     owner.ReleaseComponent <T>();
 }
 /// <summary>
 /// 创建Component;
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="owner"></param>
 /// <returns></returns>
 public T CreateComponent <T>(ObjectEx owner) where T : AbsComponent, new()
 {
     if (null != owner && owner.AddComponent <T>())
     {
         return(owner.GetComponent <T>());
     }
     else
     {
         LogHelper.PrintError("[ComponentMgr]CreateComponent " + typeof(T).ToString() + " error!");
         return(null);
     }
 }
Beispiel #6
0
 /// <summary>
 /// 移除事件;
 /// </summary>
 /// <param name="receiver">接收者</param>
 public void RemoveEvent(ObjectEx receiver)
 {
     if (null == receiver)
     {
         LogHelper.PrintError("[EventMgr]RemoveEvent error,the receiver is null.");
         return;
     }
     if (EventDict.TryGetValue(receiver, out var dict))
     {
         EventDict.Remove(receiver);
     }
 }
Beispiel #7
0
        /// <summary>
        /// 移除事件;
        /// </summary>
        /// <param name="receiver">接收者</param>
        public void RemoveEvent(ObjectEx receiver)
        {
            if (null == receiver)
            {
                LogHelper.PrintError("[EventMgr]RemoveEvent error,the receiver is null.");
                return;
            }
            Dictionary <EventType, List <EventHandler> > dict;

            if (EventDict.TryGetValue(receiver, out dict))
            {
                EventDict.Remove(receiver);
            }
        }
Beispiel #8
0
 /// <summary>
 /// 初始化Component;
 /// </summary>
 /// <param name="entity">entity</param>
 /// <param name="go">gameObject</param>
 public void Initialize(ObjectEx owner)
 {
     Enable = true;
     OnAttachObjectEx(owner);
     if (Entity.gameObjectEx.IsLoadFinish)
     {
         OnAttachGoEx(Entity.gameObjectEx);
     }
     else
     {
         Entity.gameObjectEx.AddLoadFinishHandler(OnAttachGoEx);
     }
     EventSubscribe();
     InitializeEx();
 }
Beispiel #9
0
 /// <summary>
 /// 移除事件;
 /// </summary>
 /// <param name="receiver">接收者</param>
 /// <param name="type">事件类型</param>
 public void RemoveEvent(ObjectEx receiver, EventType type)
 {
     if (null == receiver)
     {
         LogHelper.PrintError("[EventMgr]RemoveEvent error,the receiver is null.");
         return;
     }
     if (EventDict.TryGetValue(receiver, out var dict) && null != dict && dict.Count > 0)
     {
         if (dict.ContainsKey(type))
         {
             dict.Remove(type);
         }
     }
 }
Beispiel #10
0
 /// <summary>
 /// 广播事件;
 /// </summary>
 /// <param name="receiver">接收者</param>
 /// <param name="type">事件类型</param>
 /// <param name="eventArgs">事件参数</param>
 public void FireEvent(ObjectEx receiver, EventType type, IEventArgs eventArgs)
 {
     if (null == receiver)
     {
         LogHelper.PrintError("[EventMgr]FireEvent error,the receiver is null.");
         return;
     }
     if (EventDict.TryGetValue(receiver, out var dict) && null != dict && dict.Count > 0)
     {
         if (dict.TryGetValue(type, out var list) && null != list && list.Count > 0)
         {
             foreach (var callback in list)
             {
                 callback?.Invoke(eventArgs);
             }
         }
     }
 }
Beispiel #11
0
 /// <summary>
 /// Component附加Entity;
 /// </summary>
 /// <param name="entity"></param>
 protected virtual void OnAttachObjectEx(ObjectEx owner)
 {
     Owner  = owner;
     Entity = owner as AbsEntity;
 }