public void Update(GameTime gameTime) { if (RemainingCountdownTime > TimeSpan.Zero) { RemainingCountdownTime -= gameTime.ElapsedGameTime; } ProcessMessages(); _interpolator.Apply(gameTime); TickCountdown(gameTime); GameInstance.Tick(gameTime); if (MessageProcessor.MessageQueue.Count > 0 && NetworkClient.ConnectionStatus == Lidgren.Network.NetConnectionStatus.Connected) { var msg = NetworkClient.CreateMessage(); MessageProcessor.WriteMessages(msg); NetworkClient.SendMessage(msg, Lidgren.Network.NetDeliveryMethod.ReliableOrdered); } MessageProcessor.ClearQueue(); NetworkClient.FlushSendQueue(); }
public void Update(GameTime gameTime) { GameInstance.Tick(gameTime); TickGameStartCountdown(gameTime); Timers.Update(gameTime); ProcessMessages(); //Send all the wideband messages (if someone is listening) if (Connections.ActiveConnections.Count > 0) { if (MessageProcessor.MessageQueue.Count > 0) { var msg = NetworkServer.CreateMessage(); MessageProcessor.WriteMessages(msg); NetworkServer.SendMessage(msg, Connections.ActiveConnections, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, Channels.GameplayData); } //As well as narrowband ones foreach (var plr in Players) { if (MessageProcessor.HasPrivateMessages(plr) && plr.Connection != null && plr.Connection.Status == Lidgren.Network.NetConnectionStatus.Connected) { var msg = NetworkServer.CreateMessage(); MessageProcessor.WritePrivateMessages(plr, msg); plr.Connection.SendMessage(msg, Lidgren.Network.NetDeliveryMethod.ReliableOrdered, Channels.GameplayData); } } } //Just clear the queue since no one is listening MessageProcessor.ClearQueue(); MessageProcessor.ClearPrivateQueues(); FlushMessages(); }