Beispiel #1
0
        public void PostEvent(string evtName, GameObject obj = null)
        {
            EventDelegate value;

            try
            {
                GPEventID evtID = EventNameToID(evtName);

                if (evtID == GPEventID.Invalid)
                {
                    throw new KeyNotFoundException();
                }

                if (m_eventMap.TryGetValue(evtID.ID, out value))
                {
                    GPEvent evt = new GPEvent();

                    evt.EventID       = evtID;
                    evt.RelatedObject = obj;

                    value(evt);
                }
                else
                {
                    throw new KeyNotFoundException();
                }
            }
            catch (KeyNotFoundException)
            {
            }
        }
Beispiel #2
0
 private void StopEvent(GPEvent evt)
 {
     if (evt.EventID.Name == _stopEvent)
     {
         ActionAtIndex(m_currActionIndex).Stop();
         End();
     }
 }
Beispiel #3
0
        private void EventTrigger(GPEventID id, GameObject relatedObj = null)
        {
            GPEvent evt = new GPEvent();

            evt.EventID       = id;
            evt.RelatedObject = relatedObj;

            this.EventTrigger(evt);
        }
Beispiel #4
0
        public void EventTrigger(GPEvent evt)
        {
            if (!evt.EventID.Equals(_eventID) || Action == null)
            {
                return;
            }

            CurrentEvent = evt;

            m_relativeObjectAction._relatedObject = evt.RelatedObject;

            if (CanTriggerAction())
            {
                TriggerAction();
            }
        }
Beispiel #5
0
        public void PostRelativeEvent(GameObject postToObj, string evtName, GameObject obj = null)
        {
            if (postToObj == null)
            {
                throw new NullReferenceException();
            }

            EventDelegate value;

            try
            {
                GPEventID evtID = EventNameToID(evtName);

                if (evtID == GPEventID.Invalid)
                {
                    throw new IndexOutOfRangeException();
                }

                EventHandler handlerToTrigger = null;

                EventHandler[] handlers = postToObj.GetComponents <EventHandler>();

                foreach (EventHandler handler in handlers)
                {
                    if (handler._eventID.Equals(evtID))
                    {
                        if (handlerToTrigger == null)
                        {
                            handlerToTrigger = handler;
                        }
                        else
                        {
                            Debug.LogError("Several handler listening to " + evtID.Name + " found in object " +
                                           postToObj.name + ". Only the first handler will be triggered");
                        }
                    }
                }

                if (handlerToTrigger == null)
                {
                    Debug.LogWarning("Can not post relative event to " + postToObj.name +
                                     ". No event handler listening to " + evtID.Name + " found in object.");
                    return;
                }

                if (m_eventMap.TryGetValue(evtID.ID, out value))
                {
                    GPEvent evt = new GPEvent();

                    evt.EventID       = evtID;
                    evt.RelatedObject = obj;

                    handlerToTrigger.EventTrigger(evt);
                }
                else
                {
                    throw new KeyNotFoundException();
                }
            }
            catch (System.Exception e)
            {
                Debug.Log("Exception: " + e.Message + " Stack " + e.StackTrace);
            }
        }