More async init, add proper NLog target for WPF and free console in UI mode

This commit is contained in:
John Gross
2018-01-21 21:23:11 -08:00
parent c5e1dd7c3a
commit 0328876d50
12 changed files with 133 additions and 19 deletions

View File

@@ -75,6 +75,8 @@ namespace Torch.Server
private bool _hasRun;
public event Action<ITorchServer> Initialized;
/// <inheritdoc />
public InstanceManager DedicatedInstance { get; }
@@ -112,13 +114,15 @@ namespace Torch.Server
/// <inheritdoc />
public override void Init()
{
Log.Info("Initializing server");
Sandbox.Engine.Platform.Game.IsDedicated = true;
base.Init();
Log.Info($"Init server '{Config.InstanceName}' at '{Config.InstancePath}'");
Managers.GetManager<ITorchSessionManager>().SessionStateChanged += OnSessionStateChanged;
GetManager<InstanceManager>().LoadInstance(Config.InstancePath);
CanRun = true;
Initialized?.Invoke(this);
Log.Info($"Initialized server '{Config.InstanceName}' at '{Config.InstancePath}'");
}
private void OnSessionStateChanged(ITorchSession session, TorchSessionState newState)
@@ -216,7 +220,8 @@ namespace Torch.Server
public override void Update()
{
base.Update();
SimulationRatio = Sync.ServerSimulationRatio;
// Stops 1.00-1.02 flicker.
SimulationRatio = Math.Min(Sync.ServerSimulationRatio, 1);
var elapsed = TimeSpan.FromSeconds(Math.Floor(_uptime.Elapsed.TotalSeconds));
ElapsedPlayTime = elapsed;