public static void UpdateNetwork()
{
NetIncomingMessage msg;
if (client == null)
{
return;
}
while ((msg = client.ReadMessage()) != null)
{
switch (msg.MessageType)
{
case NetIncomingMessageType.VerboseDebugMessage:
case NetIncomingMessageType.DebugMessage:
case NetIncomingMessageType.WarningMessage:
case NetIncomingMessageType.ErrorMessage:
Console.WriteLine("{0}: {1}", msg.MessageType, msg.ReadString());
break;
case NetIncomingMessageType.StatusChanged:
{
NetConnectionStatus status = (NetConnectionStatus)msg.ReadByte();
string reason = msg.ReadString();
Console.WriteLine("StatusChanged: {0}: {1}", status, reason);
switch (status)
{
case NetConnectionStatus.Connected:
Console.WriteLine("Connected, sending ServerJoin packet!");
SendMessage(new ServerJoin(Name, Program.Version));
break;
case NetConnectionStatus.Disconnected:
Game.SetState(lastStatus == NetConnectionStatus.Connected
? new ErrorMessageScreen(reason)
: new ErrorMessageScreen("Cannot connect to host!"));
Console.WriteLine("Disconnected!");
break;
}
lastStatus = status;
break;
}
case NetIncomingMessageType.Data:
HandlePacket(Packet.ReadFromMessage(msg));
break;
}
client.Recycle(msg);
}
}