public static void TriggerEvent(ModelEventType modelEventType, int row, int column)
        {
            ModelEvent thisEvent = null;

            if (instance.eventDictionary.TryGetValue(modelEventType, out thisEvent))
            {
                thisEvent.Invoke(row, column);
            }
        }
示例#2
0
        public virtual void RegisterModelEvent <TModelDefinition, TSPObject>(ModelEventType actionType, Action <TModelDefinition, TSPObject> action)
        {
            if (action == null)
            {
                return;
            }

            if (!ModelEvents.ContainsKey(actionType))
            {
                ModelEvents.Add(actionType, new List <object>());
            }

            ModelEvents[actionType].Add(action);
        }
        public static void StopListening(ModelEventType modelEventType, UnityAction <int, int> listener)
        {
            if (gameEventManager == null)
            {
                return;
            }

            ModelEvent thisEvent = null;

            if (instance.eventDictionary.TryGetValue(modelEventType, out thisEvent))
            {
                thisEvent.RemoveListener(listener);
            }
        }
示例#4
0
        public virtual void InvokeOnModelEvents(object rawObject, ModelEventType eventType)
        {
            if (!ModelEvents.ContainsKey(eventType))
            {
                return;
            }

            var targetEvents = ModelEvents[eventType];

            // yeap, shity yet
            foreach (MulticastDelegate action in targetEvents)
            {
                action.DynamicInvoke(Value, rawObject);
            }
        }
        public static void StartListening(ModelEventType modelEventType, UnityAction <int, int> listener)
        {
            ModelEvent thisEvent = null;

            if (instance.eventDictionary.TryGetValue(modelEventType, out thisEvent))
            {
                thisEvent.AddListener(listener);
            }
            else
            {
                thisEvent = new ModelEvent();
                thisEvent.AddListener(listener);
                instance.eventDictionary.Add(modelEventType, thisEvent);
            }
        }
示例#6
0
        public virtual void RegisterModelContextEvent <TSPObject, TDefinitionType>(
            ModelEventType actionType,
            Action <OnCreatingContext <TSPObject, TDefinitionType> > action)
            where TDefinitionType : DefinitionBase
        {
            if (action == null)
            {
                return;
            }

            if (!ModelContextEvents.ContainsKey(actionType))
            {
                ModelContextEvents.Add(actionType, new List <object>());
            }

            ModelContextEvents[actionType].Add(action);
        }
示例#7
0
 protected void InvokeOnModelEvent <TModelDefinition, TSPObject>(TSPObject rawObject, ModelEventType eventType)
 {
     InvokeOnModelEvent(this, new ModelEventArgs
     {
         Object    = rawObject,
         EventType = eventType
     });
 }
示例#8
0
 public ModelEventArgs(ModelEventType type)
 {
     Type = type;
 }