diff --git a/Content.Server/EntryPoint.cs b/Content.Server/EntryPoint.cs index 8ede28cbf9..85a75d2fcb 100644 --- a/Content.Server/EntryPoint.cs +++ b/Content.Server/EntryPoint.cs @@ -63,7 +63,6 @@ namespace Content.Server entityManager = IoCManager.Resolve(); chatManager = IoCManager.Resolve(); - _server.RunLevelChanged += HandleRunLevelChanged; _players.PlayerStatusChanged += HandlePlayerStatusChanged; var factory = IoCManager.Resolve(); @@ -135,48 +134,35 @@ namespace Content.Server IoCManager.Resolve().Initialize(); } + public override void PostInit() + { + base.PostInit(); + + var timing = IoCManager.Resolve(); + var mapLoader = IoCManager.Resolve(); + var mapMan = IoCManager.Resolve(); + + var newMap = mapMan.CreateMap(); + var grid = mapLoader.LoadBlueprint(newMap, "Maps/stationstation.yml"); + + SpawnPoint = new GridLocalCoordinates(Vector2.Zero, grid); + + var startTime = timing.RealTime; + var timeSpan = timing.RealTime - startTime; + Logger.Info($"Loaded map in {timeSpan.TotalMilliseconds:N2}ms."); + } + /// protected override void Dispose(bool disposing) { if (disposing) { - _server.RunLevelChanged -= HandleRunLevelChanged; _players.PlayerStatusChanged -= HandlePlayerStatusChanged; } base.Dispose(disposing); } - private void HandleRunLevelChanged(object sender, RunLevelChangedEventArgs args) - { - switch (args.NewLevel) - { - case ServerRunLevel.PreGame: - var timing = IoCManager.Resolve(); - var mapLoader = IoCManager.Resolve(); - var mapMan = IoCManager.Resolve(); - - var newMap = mapMan.CreateMap(); - var grid = mapLoader.LoadBlueprint(newMap, "Maps/stationstation.yml"); - - SpawnPoint = new GridLocalCoordinates(Vector2.Zero, grid); - - var startTime = timing.RealTime; - var timeSpan = timing.RealTime - startTime; - Logger.Info($"Loaded map in {timeSpan.TotalMilliseconds:N2}ms."); - - chatManager.DispatchMessage(ChatChannel.Server, "Gamemode: Round loaded!"); - break; - case ServerRunLevel.Game: - _players.SendJoinGameToAll(); - chatManager.DispatchMessage(ChatChannel.Server, "Gamemode: Round started!"); - break; - case ServerRunLevel.PostGame: - chatManager.DispatchMessage(ChatChannel.Server, "Gamemode: Round over!"); - break; - } - } - private void HandlePlayerStatusChanged(object sender, SessionStatusEventArgs args) { var session = args.Session; @@ -198,17 +184,6 @@ namespace Content.Server case SessionStatus.InLobby: { - // auto start game when first player joins - if (_server.RunLevel == ServerRunLevel.PreGame && !_countdownStarted) - { - _countdownStarted = true; - Timer.Spawn(2000, () => - { - _server.RunLevel = ServerRunLevel.Game; - _countdownStarted = false; - }); - } - chatManager.DispatchMessage(ChatChannel.Server, "Gamemode: Player joined Lobby!", args.Session.SessionId); } break; diff --git a/engine b/engine index 153b57ed56..fcc405e6b6 160000 --- a/engine +++ b/engine @@ -1 +1 @@ -Subproject commit 153b57ed562cb43f85993a1adf57cafc68fcee36 +Subproject commit fcc405e6b6006cabe193a700491ec8cee848a591