Content changes for ServerRunLevel removal

This commit is contained in:
Pieter-Jan Briers
2018-11-21 21:21:29 +01:00
parent f91488fa27
commit 2d07d89a73
2 changed files with 19 additions and 44 deletions

View File

@@ -63,7 +63,6 @@ namespace Content.Server
entityManager = IoCManager.Resolve<IEntityManager>(); entityManager = IoCManager.Resolve<IEntityManager>();
chatManager = IoCManager.Resolve<IChatManager>(); chatManager = IoCManager.Resolve<IChatManager>();
_server.RunLevelChanged += HandleRunLevelChanged;
_players.PlayerStatusChanged += HandlePlayerStatusChanged; _players.PlayerStatusChanged += HandlePlayerStatusChanged;
var factory = IoCManager.Resolve<IComponentFactory>(); var factory = IoCManager.Resolve<IComponentFactory>();
@@ -135,23 +134,10 @@ namespace Content.Server
IoCManager.Resolve<IServerNotifyManager>().Initialize(); IoCManager.Resolve<IServerNotifyManager>().Initialize();
} }
/// <inheritdoc /> public override void PostInit()
protected override void Dispose(bool disposing)
{ {
if (disposing) base.PostInit();
{
_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<IGameTiming>(); var timing = IoCManager.Resolve<IGameTiming>();
var mapLoader = IoCManager.Resolve<IMapLoader>(); var mapLoader = IoCManager.Resolve<IMapLoader>();
var mapMan = IoCManager.Resolve<IMapManager>(); var mapMan = IoCManager.Resolve<IMapManager>();
@@ -164,17 +150,17 @@ namespace Content.Server
var startTime = timing.RealTime; var startTime = timing.RealTime;
var timeSpan = timing.RealTime - startTime; var timeSpan = timing.RealTime - startTime;
Logger.Info($"Loaded map in {timeSpan.TotalMilliseconds:N2}ms."); 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;
} }
/// <inheritdoc />
protected override void Dispose(bool disposing)
{
if (disposing)
{
_players.PlayerStatusChanged -= HandlePlayerStatusChanged;
}
base.Dispose(disposing);
} }
private void HandlePlayerStatusChanged(object sender, SessionStatusEventArgs args) private void HandlePlayerStatusChanged(object sender, SessionStatusEventArgs args)
@@ -198,17 +184,6 @@ namespace Content.Server
case SessionStatus.InLobby: 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); chatManager.DispatchMessage(ChatChannel.Server, "Gamemode: Player joined Lobby!", args.Session.SessionId);
} }
break; break;

2
engine

Submodule engine updated: 153b57ed56...fcc405e6b6