From 0ca94df85c2641fff1ee403d9a4660cdb7499443 Mon Sep 17 00:00:00 2001 From: Benjo Date: Fri, 19 Feb 2021 18:27:23 +0100 Subject: [PATCH] fixes --- Arch/ThreadManager.cs | 2 -- Game/GameManager.cs | 21 ++++++++++++++------- Management/Constants.cs | 2 +- Management/Server.cs | 3 +-- Management/ServerHandle.cs | 3 +-- Program.cs | 9 ++++++--- 6 files changed, 23 insertions(+), 17 deletions(-) diff --git a/Arch/ThreadManager.cs b/Arch/ThreadManager.cs index 25a8cb3..1d4650f 100644 --- a/Arch/ThreadManager.cs +++ b/Arch/ThreadManager.cs @@ -46,8 +46,6 @@ namespace GameServer.Arch { public static void MainThread() { Console.WriteLine($"Main thread started. Running at {Constants.TicksPerSec} ticks per second."); var nextLoop = DateTime.Now; - - Server.Start(50, 26950); while (IsRunning) while (nextLoop < DateTime.Now) { diff --git a/Game/GameManager.cs b/Game/GameManager.cs index 6c1a191..480458c 100644 --- a/Game/GameManager.cs +++ b/Game/GameManager.cs @@ -1,25 +1,32 @@ -using GameServer.Management; +using System.Collections.Generic; +using GameServer.Management; namespace GameServer.Game { public class GameManager { private Room Room { get; } - private bool IsStarted { get; set; } + private Dictionary Players { get; } = new(); public GameManager(Room room) { Room = room; + foreach (var client in room.Clients) { + Players.Add(client.Id, new Player(client.Id, client.Name)); + } + + Start(); } public void Start() { - IsStarted = true; + foreach (var player in Players.Values) { + player.Start(); + } } public void Update() { - if (!IsStarted) - return; - - + foreach (var player in Players.Values) { + player.Update(); + } } } diff --git a/Management/Constants.cs b/Management/Constants.cs index cacd42f..4e6132e 100644 --- a/Management/Constants.cs +++ b/Management/Constants.cs @@ -1,6 +1,6 @@ namespace GameServer.Management { public static class Constants { - public const int TicksPerSec = 64; + public const int TicksPerSec = 32; public const int MsPerTick = 1000 / TicksPerSec; public const int DataBufferSize = 4096; public const int CountdownSeconds = 2; diff --git a/Management/Server.cs b/Management/Server.cs index a11693e..05d880e 100644 --- a/Management/Server.cs +++ b/Management/Server.cs @@ -1,10 +1,9 @@ using System; using System.Collections.Generic; using GameServer.Arch; -using GameServer.Management; using GameServer.PacketTypes; -namespace GameServer { +namespace GameServer.Management { internal static class Server { public delegate void PacketHandler(int fromClient, Packet packet); diff --git a/Management/ServerHandle.cs b/Management/ServerHandle.cs index ee9e11e..b14e466 100644 --- a/Management/ServerHandle.cs +++ b/Management/ServerHandle.cs @@ -1,8 +1,7 @@ using System; using GameServer.Arch; -using GameServer.Management; -namespace GameServer { +namespace GameServer.Management { public static class ServerHandle { public static void WelcomeReceived(int fromClientId, Packet packet) { diff --git a/Program.cs b/Program.cs index bed6012..855ea5c 100644 --- a/Program.cs +++ b/Program.cs @@ -2,17 +2,20 @@ using System.Threading; using System.Threading.Tasks; using GameServer.Arch; +using GameServer.Management; namespace GameServer { internal static class Program { private static void Main() { Console.Title = "Game Server"; Console.SetOut(new DatePrefix()); - + + ThreadManager.IsRunning = true; + + Server.Start(50, 26950); + var mainThread = new Thread(ThreadManager.MainThread); mainThread.Start(); - - ThreadManager.IsRunning = true; } } }