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); }; }
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)); }; }
public InteractionsController(IInteractions interactions) { this.interactions = interactions; }