/// <summary> /// Run the event queue down. All events in the queue are given a /// chance to run. /// </summary> /// <param name="Script">Supplies the script object.</param> /// <param name="Database">Supplies the database connection.</param> public void RunQueue(ACR_ServerCommunicator Script, ALFA.Database Database) { #if DEBUG_MODE Script.WriteTimestampedLogEntry(String.Format("ACR_ServerCommunicator: Running queue of {0} entries", EventQueue.Count)); #endif while (!Empty()) { IGameEventQueueEvent Event = EventQueue.Dequeue(); Event.DispatchEvent(Script, Database); } }
/// <summary> /// This routine wrappers the process of enqueuing an event, and also /// sets the events queued flag if necessary. /// </summary> /// <param name="Event">Supplies the event to queue to the main game /// thread.</param> private void EnqueueEvent(IGameEventQueueEvent Event) { EventQueue.EnqueueEvent(Event); if (BlockEventsQueued) EventQueueModified = true; else EventsQueued = true; }
/// <summary> /// Push an event onto the event queue. /// </summary> /// <param name="Event">Supplies the event to push.</param> public void EnqueueEvent(IGameEventQueueEvent Event) { EventQueue.Enqueue(Event); }