예제 #1
0
    public void RemoveViewer <T>(ActionViewer viewer) where T : GameAction
    {
        var typeName = ActionSystem.GetActionType <T>();

        if (actionViewerMap.ContainsKey(typeName))
        {
            actionViewerMap[typeName].Remove(viewer);
        }
    }
예제 #2
0
    public void RemoveListener <T>(UnityAction <GameAction> listener) where T : GameAction
    {
        var typeName = ActionSystem.GetActionType <T>();

        if (listeners.ContainsKey(typeName))
        {
            listeners[typeName].RemoveListener(listener);
        }
    }
예제 #3
0
    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);
        }
    }
예제 #4
0
    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);
    }
예제 #5
0
    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);
    }
예제 #6
0
    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);
        }
    }
예제 #7
0
    public bool HasViewers <T>(T action) where T : GameAction
    {
        var type = ActionSystem.GetActionType(action);

        return(actionViewerMap.ContainsKey(type) && actionViewerMap[type].Count > 0);
    }