public static void TriggerEvent(ModelEventType modelEventType, int row, int column) { ModelEvent thisEvent = null; if (instance.eventDictionary.TryGetValue(modelEventType, out thisEvent)) { thisEvent.Invoke(row, column); } }
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); } }
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); } }
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); }
protected void InvokeOnModelEvent <TModelDefinition, TSPObject>(TSPObject rawObject, ModelEventType eventType) { InvokeOnModelEvent(this, new ModelEventArgs { Object = rawObject, EventType = eventType }); }
public ModelEventArgs(ModelEventType type) { Type = type; }