コード例 #1
0
        public AGSInteractions (IInteractions defaultInteractions, IObject obj, IGameState state)
		{
            _events = new ConcurrentDictionary<string, IEvent<ObjectEventArgs>>();
            _inventoryEvents = new ConcurrentDictionary<string, IEvent<InventoryInteractEventArgs>>();
            var defaultInteractionEvent = new AGSInteractionEvent<ObjectEventArgs>(
                new List<IEvent<ObjectEventArgs>>(), DEFAULT, obj, state);
            var defaultInventoryEvent = new AGSInteractionEvent<InventoryInteractEventArgs>(
                new List<IEvent<InventoryInteractEventArgs>>(), DEFAULT, obj, state);
            _events.TryAdd(DEFAULT, defaultInteractionEvent);
            _inventoryEvents.TryAdd(DEFAULT, defaultInventoryEvent);

            _factory = verb =>
            {
                List<IEvent<ObjectEventArgs>> interactions = new List<IEvent<ObjectEventArgs>> { defaultInteractionEvent };
                if (defaultInteractions != null)
                {
                    interactions.Add(defaultInteractions.OnInteract(verb));
                    if (verb != DEFAULT) interactions.Add(defaultInteractions.OnInteract(DEFAULT));
                }
                return new AGSInteractionEvent<ObjectEventArgs>(interactions, verb, obj, state);
            };
            _inventoryFactory = verb =>
            {
                List<IEvent<InventoryInteractEventArgs>> interactions = new List<IEvent<InventoryInteractEventArgs>> { defaultInventoryEvent };
                if (defaultInteractions != null)
                {
                    interactions.Add(defaultInteractions.OnInventoryInteract(verb));
                    if (verb != DEFAULT) interactions.Add(defaultInteractions.OnInventoryInteract(DEFAULT));
                }
                return new AGSInteractionEvent<InventoryInteractEventArgs>(interactions, verb, obj, state);
            };
		}
コード例 #2
0
        public AGSInteractions(IInteractions defaultInteractions, IObject obj, IGameState state)
        {
            _events          = new ConcurrentDictionary <string, IEvent <ObjectEventArgs> >();
            _inventoryEvents = new ConcurrentDictionary <string, IEvent <InventoryInteractEventArgs> >();
            var defaultInteractionEvent = new AGSInteractionEvent <ObjectEventArgs>(
                new List <IEvent <ObjectEventArgs> >(), DEFAULT, obj, state);
            var defaultInventoryEvent = new AGSInteractionEvent <InventoryInteractEventArgs>(
                new List <IEvent <InventoryInteractEventArgs> >(), DEFAULT, obj, state);

            _events.TryAdd(DEFAULT, defaultInteractionEvent);
            _inventoryEvents.TryAdd(DEFAULT, defaultInventoryEvent);

            _factory = verb =>
            {
                List <IEvent <ObjectEventArgs> > interactions = new List <IEvent <ObjectEventArgs> > {
                    defaultInteractionEvent
                };
                if (defaultInteractions != null)
                {
                    interactions.Add(defaultInteractions.OnInteract(verb));
                    if (verb != DEFAULT)
                    {
                        interactions.Add(defaultInteractions.OnInteract(DEFAULT));
                    }
                }
                return(new AGSInteractionEvent <ObjectEventArgs>(interactions, verb, obj, state));
            };
            _inventoryFactory = verb =>
            {
                List <IEvent <InventoryInteractEventArgs> > interactions = new List <IEvent <InventoryInteractEventArgs> > {
                    defaultInventoryEvent
                };
                if (defaultInteractions != null)
                {
                    interactions.Add(defaultInteractions.OnInventoryInteract(verb));
                    if (verb != DEFAULT)
                    {
                        interactions.Add(defaultInteractions.OnInventoryInteract(DEFAULT));
                    }
                }
                return(new AGSInteractionEvent <InventoryInteractEventArgs>(interactions, verb, obj, state));
            };
        }
コード例 #3
0
 public InteractionsController(IInteractions interactions)
 {
     this.interactions = interactions;
 }