private void HandleRunLevelChanged(object sender, RunLevelChangedEventArgs args) { switch (args.NewLevel) { case ServerRunLevel.PreGame: var timing = IoCManager.Resolve <IGameTiming>(); var mapLoader = IoCManager.Resolve <IMapLoader>(); var mapMan = IoCManager.Resolve <IMapManager>(); 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; } }