/// <summary> /// Called when adding listeners. Usually called before firing an event, but they can be added later also, as long as they would be triggered later. /// </summary> /// <param name="listener"></param> /// <param name="listenTime"></param> public bool AddResponder(IEventResponder listener, double listenTime) { if (listenTime < CurrentTickFraction) { return(false); //Don't add listeners that would have been triggered in the past. } listeners.Add(new ListenerEntry(listener, listenTime)); return(true); }
/// <summary> /// Only call this after getting listeners for an event. /// </summary> /// <param name="roomEvent"></param> private static void FireEvent(this RoomEvent roomEvent) { roomEvent.CalculatedStartTime(); //Make sure the event has a time. while (!roomEvent.Canceled) { IEventResponder listener = roomEvent.GetNextResponder(); if (listener == null) { break; } listener.RespondToEvent(roomEvent); } }
public void WireEvent(IEventProvider eventProvider, IEventResponder eventResponder) { eventProvider > event += eventResponder.OnEvent;
public ListenerEntry(IEventResponder listener, double listenTime) { Listener = listener; TickFraction = listenTime; }