示例#1
0
        /// <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;
        }
示例#3
0
 /// <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);
 }
 /// <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);
 }