From 19bbb5cbb0ad1ea002a88d99e720c56b32d848df Mon Sep 17 00:00:00 2001 From: Benjo Date: Fri, 19 Feb 2021 18:30:37 +0100 Subject: [PATCH] another fix --- Arch/ThreadManager.cs | 5 +++-- Game/GameManager.cs | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Arch/ThreadManager.cs b/Arch/ThreadManager.cs index 1d4650f..7037d9e 100644 --- a/Arch/ThreadManager.cs +++ b/Arch/ThreadManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using GameServer.Game; using GameServer.Management; @@ -59,8 +60,8 @@ namespace GameServer.Arch { } private static void Tick() { - foreach (var room in Server.Rooms.Values) { - room.Game?.Update(); + foreach (var room in Server.Rooms.Values.Where(room => room.Game != null && room.Game.IsRunning)) { + room.Game.Update(); } UpdateMain(); diff --git a/Game/GameManager.cs b/Game/GameManager.cs index 480458c..1d6b9cb 100644 --- a/Game/GameManager.cs +++ b/Game/GameManager.cs @@ -7,6 +7,8 @@ namespace GameServer.Game { private Room Room { get; } private Dictionary Players { get; } = new(); + + public bool IsRunning { get; set; } public GameManager(Room room) { Room = room; @@ -17,10 +19,12 @@ namespace GameServer.Game { Start(); } - public void Start() { + private void Start() { foreach (var player in Players.Values) { player.Start(); } + + IsRunning = true; } public void Update() {