Turns GameTicker into an EntitySystem. (#4197)

* GameTicker turned into an EntitySystem

* Turns ClientGameTicker into an EntitySystem, turn NetMessages into events

* Change event names to be more consistent with the rest.

* YAML linter uses the dummy gameticker CVar override.

* Fix game ticker initialization order

* Dummy ticker won't spawn players.

* Fix character creation test
This commit is contained in:
Vera Aguilera Puerto
2021-06-20 10:09:24 +02:00
committed by GitHub
parent 15fb554c28
commit d3a611164b
81 changed files with 1711 additions and 1990 deletions

View File

@@ -45,7 +45,7 @@ namespace Content.Server.GameTicking.Presets
mind.UnVisit();
}
var position = playerEntity?.Transform.Coordinates ?? IoCManager.Resolve<IGameTicker>().GetObserverSpawnPoint();
var position = playerEntity?.Transform.Coordinates ?? EntitySystem.Get<GameTicker>().GetObserverSpawnPoint();
// Ok, so, this is the master place for the logic for if ghosting is "too cheaty" to allow returning.
// There's no reason at this time to move it to any other place, especially given that the 'side effects required' situations would also have to be moved.
// + If CharacterDeadPhysically applies, we're physically dead. Therefore, ghosting OK, and we can return (this is critical for gibbing)

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Content.Server.GameTicking.Rules;
using Robust.Server.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
namespace Content.Server.GameTicking.Presets
@@ -8,11 +9,9 @@ namespace Content.Server.GameTicking.Presets
[GamePreset("deathmatch")]
public sealed class PresetDeathMatch : GamePreset
{
[Dependency] private readonly IGameTicker _gameTicker = default!;
public override bool Start(IReadOnlyList<IPlayerSession> readyPlayers, bool force = false)
{
_gameTicker.AddGameRule<RuleDeathMatch>();
EntitySystem.Get<GameTicker>().AddGameRule<RuleDeathMatch>();
return true;
}

View File

@@ -28,7 +28,6 @@ namespace Content.Server.GameTicking.Presets
public class PresetSuspicion : GamePreset
{
[Dependency] private readonly IChatManager _chatManager = default!;
[Dependency] private readonly IGameTicker _gameTicker = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
@@ -149,7 +148,7 @@ namespace Content.Server.GameTicking.Presets
traitor.GreetSuspicion(traitors, _chatManager);
}
_gameTicker.AddGameRule<RuleSuspicion>();
EntitySystem.Get<GameTicker>().AddGameRule<RuleSuspicion>();
return true;
}

View File

@@ -16,6 +16,7 @@ using Content.Shared.Inventory;
using Content.Shared.PDA;
using Robust.Server.Player;
using Robust.Shared.Configuration;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Log;
@@ -29,7 +30,6 @@ namespace Content.Server.GameTicking.Presets
[GamePreset("traitor")]
public class PresetTraitor : GamePreset
{
[Dependency] private readonly IGameTicker _gameTicker = default!;
[Dependency] private readonly IChatManager _chatManager = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
@@ -159,7 +159,7 @@ namespace Content.Server.GameTicking.Presets
traitor.GreetTraitor(codewords);
}
_gameTicker.AddGameRule<RuleTraitor>();
EntitySystem.Get<GameTicker>().AddGameRule<RuleTraitor>();
return true;
}

View File

@@ -34,7 +34,6 @@ namespace Content.Server.GameTicking.Presets
{
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IGameTicker _gameTicker = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IChatManager _chatManager = default!;
[Dependency] private readonly IRobustRandom _robustRandom = default!;
@@ -50,8 +49,9 @@ namespace Content.Server.GameTicking.Presets
public override bool Start(IReadOnlyList<IPlayerSession> readyPlayers, bool force = false)
{
_gameTicker.AddGameRule<RuleTraitorDeathMatch>();
_restarter = _gameTicker.AddGameRule<RuleMaxTimeRestart>();
var gameTicker = EntitySystem.Get<GameTicker>();
gameTicker.AddGameRule<RuleTraitorDeathMatch>();
_restarter = gameTicker.AddGameRule<RuleMaxTimeRestart>();
_restarter.RoundMaxTime = TimeSpan.FromMinutes(30);
_restarter.RestartTimer();
_safeToEndRound = true;
@@ -207,7 +207,7 @@ namespace Content.Server.GameTicking.Presets
var session = mind.Session;
if (session == null)
return false;
_gameTicker.Respawn(session);
EntitySystem.Get<GameTicker>().Respawn(session);
return true;
}