Esempio n. 1
0
    public Action <IRoom> this[RoomEventType eventType]
    {
        get
        {
            if (isActiveAndEnabled)
            {
                if (_actions == null)
                {
                    _actions = new EnumActionDictionary <RoomEventType, IRoom>();
                    foreach (var listener in _roomEventsListeners.GetCachedComponets <IRoomEventListener>())
                    {
                        foreach (var roomEvent in StructsExtentions.GetEnumValues <RoomEventType>())
                        {
                            if (listener[roomEvent] != null)
                            {
                                _actions[roomEvent] += listener[roomEvent];
                            }
                        }
                    }
                }

                return(_actions[eventType]);
            }
            return(null);
        }
    }
Esempio n. 2
0
    public override void AddWall(Orientation orientation, Collider2D collider)
    {
        if (_collidersCollection == null)
        {
            _collidersCollection = new
                                   Dictionary <Orientation, ICollection <Collider2D> >
                                       (StructsExtentions.EnumLength <Orientation>());
        }

        _collidersCollection.Add(orientation,
                                 new List <Collider2D>(byte.MaxValue)
        {
            collider
        });
    }
    public RoomEventListenerCollector(bool listenAllRooms, IEnumerable <IRoomEventListener> listeners)
    {
        ShouldListenAllRooms = listenAllRooms;

        _actions = new EnumActionDictionary <RoomEventType, IRoom>();

        foreach (var listener in listeners)
        {
            foreach (var key in StructsExtentions.GetEnumValues <RoomEventType>())
            {
                if (listener[key] != null)
                {
                    _actions[key] += listener[key];
                }
            }
        }
    }