Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Loop() //this runs on a separate thread and starts when the class is made.
- {
- Stopwatch Watch = new Stopwatch();
- while (!IsOncePopulated || Players.Count > 0)
- {
- Watch.Restart();
- foreach (PlayerClass Player in Players)
- {
- Player.Receive();
- SignalClass Signal = Player.GetOldestSignal();
- if (Signal.ToServer)
- {
- if (Signal.Destination < 0)
- {
- MainForm.ServerCommands.NewMessage(Signal);
- }
- else if (Signal.Destination == Number)
- {
- NewMessage(Signal);
- }
- }
- }
- Thread.Sleep((int)(1000f / MainForm.TickRate - Watch.ElapsedMilliseconds));
- }
- MainForm.Lobbies.Remove(this);
- }
- public void NewMessage(SignalClass Signal)
- {
- switch (Signal.ServerAction)
- {
- case ToServerAction.Join:
- new Thread(() => Join((string)Signal.Parameters[0], Signal.Sender)).Start();
- break;
- case ToServerAction.Leave:
- new Thread(() => Leave((ushort)Signal.Parameters[0])).Start();
- break;
- case ToServerAction.SetMap:
- new Thread(() => SetMap((int)Signal.Parameters[0])).Start();
- break;
- case ToServerAction.GiveMap:
- new Thread(() => GiveMap(Signal.Sender)).Start();
- break;
- case ToServerAction.Chat:
- new Thread(() => Chat((string)Signal.Parameters[0])).Start();
- break;
- case ToServerAction.GivePlayers:
- new Thread(() => GivePlayers(Signal.Sender)).Start();
- break;
- case ToServerAction.GiveChat:
- new Thread(() => GiveChat((int)Signal.Parameters[0], Signal.Sender)).Start();
- break;
- case ToServerAction.SetPlayerStat:
- new Thread(() => SetPlayerStat((ushort)Signal.Parameters[0], (string)Signal.Parameters[1], (string)Signal.Parameters[2])).Start();
- break;
- case ToServerAction.SpawnPlayer:
- new Thread(() => SpawnPlayer((ushort)Signal.Parameters[0], (int)Signal.Parameters[1])).Start();
- break;
- case ToServerAction.DeSpawnEntity:
- new Thread(() => DeSpawnEntity((ushort)Signal.Parameters[0])).Start();
- break;
- case ToServerAction.AssignEntityNumbers:
- new Thread(() => AssignEntityNumbers((int)Signal.Parameters[0])).Start();
- break;
- default:
- Signal.Sender.Send(new SignalClass(ToClientAction.Log, -1, "ToServerAction:" + Signal.ToServer.ToString() + " is not a valid key. This may be caused by an old version of the server or client"));
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment