public void RemoveViewer <T>(ActionViewer viewer) where T : GameAction { var typeName = ActionSystem.GetActionType <T>(); if (actionViewerMap.ContainsKey(typeName)) { actionViewerMap[typeName].Remove(viewer); } }
public void RemoveListener <T>(UnityAction <GameAction> listener) where T : GameAction { var typeName = ActionSystem.GetActionType <T>(); if (listeners.ContainsKey(typeName)) { listeners[typeName].RemoveListener(listener); } }
public void InvokePerformEvent <T>(T action) where T : GameAction { var typeName = ActionSystem.GetActionType(action); if (listeners.ContainsKey(typeName)) { var performEvent = listeners[typeName]; performEvent.Invoke(action); } }
public void AddViewer <T>(ActionViewer viewer) where T : GameAction { var typeName = ActionSystem.GetActionType <T>(); if (!actionViewerMap.ContainsKey(typeName)) { actionViewerMap.Add(typeName, new List <ActionViewer>(1)); } actionViewerMap[typeName].Add(viewer); }
public void AddListener <T>(UnityAction <GameAction> listener) where T : GameAction { var typeName = ActionSystem.GetActionType <T>(); if (!listeners.ContainsKey(typeName)) { listeners.Add(typeName, new ActionEvent()); } listeners[typeName].AddListener(listener); }
public List <ActionViewer> GetViewers <T>(T action) where T : GameAction { var typeName = ActionSystem.GetActionType(action); if (actionViewerMap.ContainsKey(typeName)) { return(actionViewerMap[typeName]); } else { Debug.LogWarning(string.Format("No viewers present for {0}. Returning null.", typeName)); return(null); } }
public bool HasViewers <T>(T action) where T : GameAction { var type = ActionSystem.GetActionType(action); return(actionViewerMap.ContainsKey(type) && actionViewerMap[type].Count > 0); }