Replace IResettingEntitySystem with RoundRestartCleanupEvent. (#4245)
* Replace IResettingEntitySystem with RoundRestartCleanupEvent. * oops
This commit is contained in:
committed by
GitHub
parent
16e1c2c798
commit
bc7b315b18
@@ -13,7 +13,7 @@ using Robust.Shared.Maths;
|
|||||||
namespace Content.Client.Atmos.EntitySystems
|
namespace Content.Client.Atmos.EntitySystems
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
internal sealed class AtmosDebugOverlaySystem : SharedAtmosDebugOverlaySystem, IResettingEntitySystem
|
internal sealed class AtmosDebugOverlaySystem : SharedAtmosDebugOverlaySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||||
|
|
||||||
@@ -37,6 +37,7 @@ namespace Content.Client.Atmos.EntitySystems
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeNetworkEvent<AtmosDebugOverlayMessage>(HandleAtmosDebugOverlayMessage);
|
SubscribeNetworkEvent<AtmosDebugOverlayMessage>(HandleAtmosDebugOverlayMessage);
|
||||||
SubscribeNetworkEvent<AtmosDebugOverlayDisableMessage>(HandleAtmosDebugOverlayDisableMessage);
|
SubscribeNetworkEvent<AtmosDebugOverlayDisableMessage>(HandleAtmosDebugOverlayDisableMessage);
|
||||||
|
|
||||||
@@ -66,7 +67,7 @@ namespace Content.Client.Atmos.EntitySystems
|
|||||||
overlayManager.RemoveOverlay<GasTileOverlay>();
|
overlayManager.RemoveOverlay<GasTileOverlay>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_tileData.Clear();
|
_tileData.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using Robust.Shared.IoC;
|
|||||||
namespace Content.Client.HealthOverlay
|
namespace Content.Client.HealthOverlay
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class HealthOverlaySystem : EntitySystem, IResettingEntitySystem
|
public class HealthOverlaySystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IEyeManager _eyeManager = default!;
|
[Dependency] private readonly IEyeManager _eyeManager = default!;
|
||||||
|
|
||||||
@@ -44,10 +44,11 @@ namespace Content.Client.HealthOverlay
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<PlayerAttachSysMessage>(HandlePlayerAttached);
|
SubscribeLocalEvent<PlayerAttachSysMessage>(HandlePlayerAttached);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
foreach (var gui in _guis.Values)
|
foreach (var gui in _guis.Values)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ using Timer = Robust.Shared.Timing.Timer;
|
|||||||
namespace Content.Client.Verbs
|
namespace Content.Client.Verbs
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public sealed class VerbSystem : SharedVerbSystem, IResettingEntitySystem
|
public sealed class VerbSystem : SharedVerbSystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
||||||
@@ -47,6 +47,7 @@ namespace Content.Client.Verbs
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeNetworkEvent<VerbSystemMessages.VerbsResponseMessage>(FillEntityPopup);
|
SubscribeNetworkEvent<VerbSystemMessages.VerbsResponseMessage>(FillEntityPopup);
|
||||||
SubscribeNetworkEvent<PlayerContainerVisibilityMessage>(HandleContainerVisibilityMessage);
|
SubscribeNetworkEvent<PlayerContainerVisibilityMessage>(HandleContainerVisibilityMessage);
|
||||||
|
|
||||||
@@ -68,7 +69,7 @@ namespace Content.Client.Verbs
|
|||||||
CommandBinds.Unregister<VerbSystem>();
|
CommandBinds.Unregister<VerbSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
ToggleContainerVisibility?.Invoke(this, false);
|
ToggleContainerVisibility?.Invoke(this, false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,15 +9,22 @@ using Robust.Shared.Reflection;
|
|||||||
namespace Content.IntegrationTests.Tests
|
namespace Content.IntegrationTests.Tests
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
[TestOf(typeof(IResettingEntitySystem))]
|
[TestOf(typeof(RoundRestartCleanupEvent))]
|
||||||
public class ResettingEntitySystemTests : ContentIntegrationTest
|
public class ResettingEntitySystemTests : ContentIntegrationTest
|
||||||
{
|
{
|
||||||
[Reflect(false)]
|
[Reflect(false)]
|
||||||
private class TestResettingEntitySystem : EntitySystem, IResettingEntitySystem
|
private class TestRoundRestartCleanupEvent : EntitySystem
|
||||||
{
|
{
|
||||||
public bool HasBeenReset { get; set; }
|
public bool HasBeenReset { get; set; }
|
||||||
|
|
||||||
public void Reset()
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
HasBeenReset = true;
|
HasBeenReset = true;
|
||||||
}
|
}
|
||||||
@@ -30,7 +37,7 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
ContentBeforeIoC = () =>
|
ContentBeforeIoC = () =>
|
||||||
{
|
{
|
||||||
IoCManager.Resolve<IEntitySystemManager>().LoadExtraSystemType<TestResettingEntitySystem>();
|
IoCManager.Resolve<IEntitySystemManager>().LoadExtraSystemType<TestRoundRestartCleanupEvent>();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -43,7 +50,7 @@ namespace Content.IntegrationTests.Tests
|
|||||||
{
|
{
|
||||||
Assert.That(gameTicker.RunLevel, Is.EqualTo(GameRunLevel.InRound));
|
Assert.That(gameTicker.RunLevel, Is.EqualTo(GameRunLevel.InRound));
|
||||||
|
|
||||||
var system = entitySystemManager.GetEntitySystem<TestResettingEntitySystem>();
|
var system = entitySystemManager.GetEntitySystem<TestRoundRestartCleanupEvent>();
|
||||||
|
|
||||||
system.HasBeenReset = false;
|
system.HasBeenReset = false;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Content.Server.StationEvents;
|
using Content.Server.StationEvents;
|
||||||
|
using Content.Shared.GameTicking;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
using Robust.Shared.IoC;
|
using Robust.Shared.IoC;
|
||||||
@@ -33,7 +34,7 @@ namespace Content.IntegrationTests.Tests.StationEvents
|
|||||||
Assert.That(stationEvent.Occurrences > 0);
|
Assert.That(stationEvent.Occurrences > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
stationEventsSystem.Reset();
|
stationEventsSystem.Reset(new RoundRestartCleanupEvent());
|
||||||
|
|
||||||
foreach (var stationEvent in stationEventsSystem.StationEvents)
|
foreach (var stationEvent in stationEventsSystem.StationEvents)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// Long-term can be used to do hierarchical pathfinding
|
/// Long-term can be used to do hierarchical pathfinding
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public sealed class AiReachableSystem : EntitySystem, IResettingEntitySystem
|
public sealed class AiReachableSystem : EntitySystem
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The purpose of this is to provide a higher-level / hierarchical abstraction of the actual pathfinding graph
|
* The purpose of this is to provide a higher-level / hierarchical abstraction of the actual pathfinding graph
|
||||||
@@ -81,6 +81,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
|
|||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
_pathfindingSystem = Get<PathfindingSystem>();
|
_pathfindingSystem = Get<PathfindingSystem>();
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<PathfindingChunkUpdateMessage>(RecalculateNodeRegions);
|
SubscribeLocalEvent<PathfindingChunkUpdateMessage>(RecalculateNodeRegions);
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
SubscribeNetworkEvent<SharedAiDebug.SubscribeReachableMessage>(HandleSubscription);
|
SubscribeNetworkEvent<SharedAiDebug.SubscribeReachableMessage>(HandleSubscription);
|
||||||
@@ -699,7 +700,7 @@ namespace Content.Server.AI.Pathfinding.Accessible
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_queuedUpdates.Clear();
|
_queuedUpdates.Clear();
|
||||||
_regions.Clear();
|
_regions.Clear();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace Content.Server.AI.Pathfinding
|
|||||||
/// This system handles pathfinding graph updates as well as dispatches to the pathfinder
|
/// This system handles pathfinding graph updates as well as dispatches to the pathfinder
|
||||||
/// (90% of what it's doing is graph updates so not much point splitting the 2 roles)
|
/// (90% of what it's doing is graph updates so not much point splitting the 2 roles)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class PathfindingSystem : EntitySystem, IResettingEntitySystem
|
public class PathfindingSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||||
[Dependency] private readonly IEntityManager _entityManager = default!;
|
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||||
@@ -201,6 +201,7 @@ namespace Content.Server.AI.Pathfinding
|
|||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<CollisionChangeMessage>(QueueCollisionChangeMessage);
|
SubscribeLocalEvent<CollisionChangeMessage>(QueueCollisionChangeMessage);
|
||||||
SubscribeLocalEvent<MoveEvent>(QueueMoveEvent);
|
SubscribeLocalEvent<MoveEvent>(QueueMoveEvent);
|
||||||
SubscribeLocalEvent<AccessReaderChangeMessage>(QueueAccessChangeMessage);
|
SubscribeLocalEvent<AccessReaderChangeMessage>(QueueAccessChangeMessage);
|
||||||
@@ -385,7 +386,7 @@ namespace Content.Server.AI.Pathfinding
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_graph.Clear();
|
_graph.Clear();
|
||||||
_collidableUpdateQueue.Clear();
|
_collidableUpdateQueue.Clear();
|
||||||
|
|||||||
@@ -9,12 +9,19 @@ using Robust.Shared.Timing;
|
|||||||
namespace Content.Server.APC
|
namespace Content.Server.APC
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
internal sealed class ApcNetSystem : EntitySystem, IResettingEntitySystem
|
internal sealed class ApcNetSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IPauseManager _pauseManager = default!;
|
[Dependency] private readonly IPauseManager _pauseManager = default!;
|
||||||
|
|
||||||
private HashSet<IApcNet> _apcNets = new();
|
private HashSet<IApcNet> _apcNets = new();
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
public override void Update(float frameTime)
|
public override void Update(float frameTime)
|
||||||
{
|
{
|
||||||
foreach (var apcNet in _apcNets)
|
foreach (var apcNet in _apcNets)
|
||||||
@@ -35,7 +42,7 @@ namespace Content.Server.APC
|
|||||||
_apcNets.Remove(apcNet);
|
_apcNets.Remove(apcNet);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
// NodeGroupSystem does not remake ApcNets affected during restarting until a frame later,
|
// NodeGroupSystem does not remake ApcNets affected during restarting until a frame later,
|
||||||
// when their grid is invalid. So, we are clearing them on round restart.
|
// when their grid is invalid. So, we are clearing them on round restart.
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ using Dependency = Robust.Shared.IoC.DependencyAttribute;
|
|||||||
namespace Content.Server.Atmos.EntitySystems
|
namespace Content.Server.Atmos.EntitySystems
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
internal sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem, IResettingEntitySystem
|
internal sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
@@ -67,6 +67,8 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
|
||||||
_atmosphereSystem = Get<AtmosphereSystem>();
|
_atmosphereSystem = Get<AtmosphereSystem>();
|
||||||
_playerManager.PlayerStatusChanged += OnPlayerStatusChanged;
|
_playerManager.PlayerStatusChanged += OnPlayerStatusChanged;
|
||||||
_mapManager.OnGridRemoved += OnGridRemoved;
|
_mapManager.OnGridRemoved += OnGridRemoved;
|
||||||
@@ -479,7 +481,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_invalidTiles.Clear();
|
_invalidTiles.Clear();
|
||||||
_overlay.Clear();
|
_overlay.Clear();
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ using Robust.Shared.GameObjects;
|
|||||||
namespace Content.Server.Body.Surgery.Components
|
namespace Content.Server.Body.Surgery.Components
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class SurgeryToolSystem : EntitySystem, IResettingEntitySystem
|
public class SurgeryToolSystem : EntitySystem
|
||||||
{
|
{
|
||||||
private readonly HashSet<SurgeryToolComponent> _openSurgeryUIs = new();
|
private readonly HashSet<SurgeryToolComponent> _openSurgeryUIs = new();
|
||||||
|
|
||||||
@@ -18,11 +18,12 @@ namespace Content.Server.Body.Surgery.Components
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<SurgeryWindowOpenMessage>(OnSurgeryWindowOpen);
|
SubscribeLocalEvent<SurgeryWindowOpenMessage>(OnSurgeryWindowOpen);
|
||||||
SubscribeLocalEvent<SurgeryWindowCloseMessage>(OnSurgeryWindowClose);
|
SubscribeLocalEvent<SurgeryWindowCloseMessage>(OnSurgeryWindowClose);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_openSurgeryUIs.Clear();
|
_openSurgeryUIs.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using Robust.Shared.GameObjects;
|
|||||||
|
|
||||||
namespace Content.Server.Cargo
|
namespace Content.Server.Cargo
|
||||||
{
|
{
|
||||||
public class CargoConsoleSystem : EntitySystem, IResettingEntitySystem
|
public class CargoConsoleSystem : EntitySystem
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// How much time to wait (in seconds) before increasing bank accounts balance.
|
/// How much time to wait (in seconds) before increasing bank accounts balance.
|
||||||
@@ -45,6 +45,8 @@ namespace Content.Server.Cargo
|
|||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
|
||||||
CreateBankAccount("Space Station 14", 1000);
|
CreateBankAccount("Space Station 14", 1000);
|
||||||
CreateOrderDatabase(0);
|
CreateOrderDatabase(0);
|
||||||
}
|
}
|
||||||
@@ -64,7 +66,7 @@ namespace Content.Server.Cargo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_accountsDict.Clear();
|
_accountsDict.Clear();
|
||||||
_databasesDict.Clear();
|
_databasesDict.Clear();
|
||||||
|
|||||||
@@ -8,10 +8,17 @@ using Robust.Shared.GameObjects;
|
|||||||
namespace Content.Server.Climbing
|
namespace Content.Server.Climbing
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
internal sealed class ClimbSystem : EntitySystem, IResettingEntitySystem
|
internal sealed class ClimbSystem : EntitySystem
|
||||||
{
|
{
|
||||||
private readonly HashSet<ClimbingComponent> _activeClimbers = new();
|
private readonly HashSet<ClimbingComponent> _activeClimbers = new();
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddActiveClimber(ClimbingComponent climbingComponent)
|
public void AddActiveClimber(ClimbingComponent climbingComponent)
|
||||||
{
|
{
|
||||||
_activeClimbers.Add(climbingComponent);
|
_activeClimbers.Add(climbingComponent);
|
||||||
@@ -30,7 +37,7 @@ namespace Content.Server.Climbing
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_activeClimbers.Clear();
|
_activeClimbers.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ using static Content.Shared.Cloning.SharedCloningPodComponent;
|
|||||||
|
|
||||||
namespace Content.Server.Cloning
|
namespace Content.Server.Cloning
|
||||||
{
|
{
|
||||||
internal sealed class CloningSystem : EntitySystem, IResettingEntitySystem
|
internal sealed class CloningSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IGameTiming _timing = default!;
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
public readonly Dictionary<Mind.Mind, int> MindToId = new();
|
public readonly Dictionary<Mind.Mind, int> MindToId = new();
|
||||||
@@ -29,6 +29,7 @@ namespace Content.Server.Cloning
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<CloningPodComponent, ActivateInWorldEvent>(HandleActivate);
|
SubscribeLocalEvent<CloningPodComponent, ActivateInWorldEvent>(HandleActivate);
|
||||||
SubscribeLocalEvent<BeingClonedComponent, MindAddedMessage>(HandleMindAdded);
|
SubscribeLocalEvent<BeingClonedComponent, MindAddedMessage>(HandleMindAdded);
|
||||||
}
|
}
|
||||||
@@ -142,7 +143,7 @@ namespace Content.Server.Cloning
|
|||||||
return IdToDNA.ToDictionary(m => m.Key, m => m.Value.Mind.CharacterName);
|
return IdToDNA.ToDictionary(m => m.Key, m => m.Value.Mind.CharacterName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
MindToId.Clear();
|
MindToId.Clear();
|
||||||
IdToDNA.Clear();
|
IdToDNA.Clear();
|
||||||
|
|||||||
@@ -12,11 +12,18 @@ using Robust.Shared.GameObjects;
|
|||||||
namespace Content.Server.Damage
|
namespace Content.Server.Damage
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class GodmodeSystem : EntitySystem, IResettingEntitySystem
|
public class GodmodeSystem : EntitySystem
|
||||||
{
|
{
|
||||||
private readonly Dictionary<IEntity, OldEntityInformation> _entities = new();
|
private readonly Dictionary<IEntity, OldEntityInformation> _entities = new();
|
||||||
|
|
||||||
public void Reset()
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_entities.Clear();
|
_entities.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using Robust.Server.Player;
|
|||||||
using Robust.Shared.IoC;
|
using Robust.Shared.IoC;
|
||||||
using Robust.Shared.Localization;
|
using Robust.Shared.Localization;
|
||||||
using Robust.Shared.Log;
|
using Robust.Shared.Log;
|
||||||
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
@@ -296,13 +297,12 @@ namespace Content.Server.GameTicking
|
|||||||
|
|
||||||
_gameRules.Clear();
|
_gameRules.Clear();
|
||||||
|
|
||||||
foreach (var system in _entitySystemManager.AllSystems)
|
// Round restart cleanup event, so entity systems can reset.
|
||||||
{
|
var ev = new RoundRestartCleanupEvent();
|
||||||
if (system is IResettingEntitySystem resetting)
|
RaiseLocalEvent(ev);
|
||||||
{
|
|
||||||
resetting.Reset();
|
// So clients' entity systems can clean up too...
|
||||||
}
|
RaiseNetworkEvent(ev, Filter.Broadcast());
|
||||||
}
|
|
||||||
|
|
||||||
_spawnedPositions.Clear();
|
_spawnedPositions.Clear();
|
||||||
_manifest.Clear();
|
_manifest.Clear();
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ using Robust.Shared.ViewVariables;
|
|||||||
namespace Content.Server.Ghost.Roles
|
namespace Content.Server.Ghost.Roles
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class GhostRoleSystem : EntitySystem, IResettingEntitySystem
|
public class GhostRoleSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly EuiManager _euiManager = default!;
|
[Dependency] private readonly EuiManager _euiManager = default!;
|
||||||
|
|
||||||
@@ -33,6 +33,7 @@ namespace Content.Server.Ghost.Roles
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<PlayerAttachedEvent>(OnPlayerAttached);
|
SubscribeLocalEvent<PlayerAttachedEvent>(OnPlayerAttached);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +138,7 @@ namespace Content.Server.Ghost.Roles
|
|||||||
CloseEui(message.Player);
|
CloseEui(message.Player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
foreach (var session in _openUis.Keys)
|
foreach (var session in _openUis.Keys)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ using Robust.Shared.Utility;
|
|||||||
namespace Content.Server.Gravity.EntitySystems
|
namespace Content.Server.Gravity.EntitySystems
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class WeightlessSystem : EntitySystem, IResettingEntitySystem
|
public class WeightlessSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IMapManager _mapManager = default!;
|
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||||
|
|
||||||
@@ -22,11 +22,12 @@ namespace Content.Server.Gravity.EntitySystems
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<GravityChangedMessage>(GravityChanged);
|
SubscribeLocalEvent<GravityChangedMessage>(GravityChanged);
|
||||||
SubscribeLocalEvent<EntParentChangedMessage>(EntParentChanged);
|
SubscribeLocalEvent<EntParentChangedMessage>(EntParentChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_alerts.Clear();
|
_alerts.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ using Robust.Shared.Prototypes;
|
|||||||
namespace Content.Server.Plants
|
namespace Content.Server.Plants
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class PlantSystem : EntitySystem, IResettingEntitySystem
|
public class PlantSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IComponentManager _componentManager = default!;
|
[Dependency] private readonly IComponentManager _componentManager = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
@@ -26,6 +26,8 @@ namespace Content.Server.Plants
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
|
||||||
PopulateDatabase();
|
PopulateDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,7 +75,7 @@ namespace Content.Server.Plants
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
PopulateDatabase();
|
PopulateDatabase();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using Timer = Robust.Shared.Timing.Timer;
|
|||||||
|
|
||||||
namespace Content.Server.RoundEnd
|
namespace Content.Server.RoundEnd
|
||||||
{
|
{
|
||||||
public class RoundEndSystem : EntitySystem, IResettingEntitySystem
|
public class RoundEndSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
[Dependency] private readonly IGameTiming _gameTiming = default!;
|
||||||
[Dependency] private readonly IChatManager _chatManager = default!;
|
[Dependency] private readonly IChatManager _chatManager = default!;
|
||||||
@@ -30,6 +30,7 @@ namespace Content.Server.RoundEnd
|
|||||||
|
|
||||||
public TimeSpan CallCooldown { get; } = TimeSpan.FromSeconds(30);
|
public TimeSpan CallCooldown { get; } = TimeSpan.FromSeconds(30);
|
||||||
|
|
||||||
|
// TODO: Make these regular eventbus events...
|
||||||
public delegate void RoundEndCountdownStarted();
|
public delegate void RoundEndCountdownStarted();
|
||||||
public event RoundEndCountdownStarted? OnRoundEndCountdownStarted;
|
public event RoundEndCountdownStarted? OnRoundEndCountdownStarted;
|
||||||
|
|
||||||
@@ -42,7 +43,14 @@ namespace Content.Server.RoundEnd
|
|||||||
public delegate void CallCooldownEnded();
|
public delegate void CallCooldownEnded();
|
||||||
public event CallCooldownEnded? OnCallCooldownEnded;
|
public event CallCooldownEnded? OnCallCooldownEnded;
|
||||||
|
|
||||||
void IResettingEntitySystem.Reset()
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
IsRoundEndCountdownStarted = false;
|
IsRoundEndCountdownStarted = false;
|
||||||
_roundEndCancellationTokenSource.Cancel();
|
_roundEndCancellationTokenSource.Cancel();
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace Content.Server.StationEvents
|
|||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
// Somewhat based off of TG's implementation of events
|
// Somewhat based off of TG's implementation of events
|
||||||
public sealed class StationEventSystem : EntitySystem, IResettingEntitySystem
|
public sealed class StationEventSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
|
||||||
[Dependency] private readonly IServerNetManager _netManager = default!;
|
[Dependency] private readonly IServerNetManager _netManager = default!;
|
||||||
@@ -185,6 +185,8 @@ namespace Content.Server.StationEvents
|
|||||||
|
|
||||||
_netManager.RegisterNetMessage<MsgRequestStationEvents>(RxRequest);
|
_netManager.RegisterNetMessage<MsgRequestStationEvents>(RxRequest);
|
||||||
_netManager.RegisterNetMessage<MsgStationEvents>();
|
_netManager.RegisterNetMessage<MsgStationEvents>();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RxRequest(MsgRequestStationEvents msg)
|
private void RxRequest(MsgRequestStationEvents msg)
|
||||||
@@ -359,7 +361,7 @@ namespace Content.Server.StationEvents
|
|||||||
base.Shutdown();
|
base.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
if (CurrentEvent?.Running == true)
|
if (CurrentEvent?.Running == true)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using Robust.Shared.IoC;
|
|||||||
namespace Content.Server.Suspicion.EntitySystems
|
namespace Content.Server.Suspicion.EntitySystems
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public sealed class SuspicionEndTimerSystem : EntitySystem, IResettingEntitySystem
|
public sealed class SuspicionEndTimerSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = null!;
|
[Dependency] private readonly IPlayerManager _playerManager = null!;
|
||||||
|
|
||||||
@@ -33,6 +33,8 @@ namespace Content.Server.Suspicion.EntitySystems
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
|
||||||
_playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged;
|
_playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ namespace Content.Server.Suspicion.EntitySystems
|
|||||||
EntityManager.EntityNetManager?.SendSystemNetworkMessage(msg, player.ConnectedClient);
|
EntityManager.EntityNetManager?.SendSystemNetworkMessage(msg, player.ConnectedClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IResettingEntitySystem.Reset()
|
private void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
EndTime = null;
|
EndTime = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using Robust.Shared.GameObjects;
|
|||||||
namespace Content.Server.Suspicion.EntitySystems
|
namespace Content.Server.Suspicion.EntitySystems
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class SuspicionRoleSystem : EntitySystem, IResettingEntitySystem
|
public class SuspicionRoleSystem : EntitySystem
|
||||||
{
|
{
|
||||||
private readonly HashSet<SuspicionRoleComponent> _traitors = new();
|
private readonly HashSet<SuspicionRoleComponent> _traitors = new();
|
||||||
|
|
||||||
@@ -19,6 +19,7 @@ namespace Content.Server.Suspicion.EntitySystems
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<SuspicionRoleComponent, PlayerAttachedEvent>((HandlePlayerAttached));
|
SubscribeLocalEvent<SuspicionRoleComponent, PlayerAttachedEvent>((HandlePlayerAttached));
|
||||||
SubscribeLocalEvent<SuspicionRoleComponent, PlayerDetachedEvent>((HandlePlayerDetached));
|
SubscribeLocalEvent<SuspicionRoleComponent, PlayerDetachedEvent>((HandlePlayerDetached));
|
||||||
}
|
}
|
||||||
@@ -71,7 +72,7 @@ namespace Content.Server.Suspicion.EntitySystems
|
|||||||
base.Shutdown();
|
base.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_traitors.Clear();
|
_traitors.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ using static Content.Shared.Verbs.VerbSystemMessages;
|
|||||||
|
|
||||||
namespace Content.Server.Verbs
|
namespace Content.Server.Verbs
|
||||||
{
|
{
|
||||||
public class VerbSystem : SharedVerbSystem, IResettingEntitySystem
|
public class VerbSystem : SharedVerbSystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@ namespace Content.Server.Verbs
|
|||||||
|
|
||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeNetworkEvent<RequestVerbsMessage>(RequestVerbs);
|
SubscribeNetworkEvent<RequestVerbsMessage>(RequestVerbs);
|
||||||
SubscribeNetworkEvent<UseVerbMessage>(UseVerb);
|
SubscribeNetworkEvent<UseVerbMessage>(UseVerb);
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ namespace Content.Server.Verbs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_seesThroughContainers.Clear();
|
_seesThroughContainers.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,11 +7,18 @@ using static Content.Shared.Wires.SharedWiresComponent;
|
|||||||
|
|
||||||
namespace Content.Server.Wires
|
namespace Content.Server.Wires
|
||||||
{
|
{
|
||||||
public class WireHackingSystem : EntitySystem, IResettingEntitySystem
|
public class WireHackingSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[ViewVariables] private readonly Dictionary<string, WireLayout> _layouts =
|
[ViewVariables] private readonly Dictionary<string, WireLayout> _layouts =
|
||||||
new();
|
new();
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
|
}
|
||||||
|
|
||||||
public bool TryGetLayout(string id, [NotNullWhen(true)] out WireLayout? layout)
|
public bool TryGetLayout(string id, [NotNullWhen(true)] out WireLayout? layout)
|
||||||
{
|
{
|
||||||
return _layouts.TryGetValue(id, out layout);
|
return _layouts.TryGetValue(id, out layout);
|
||||||
@@ -22,7 +29,7 @@ namespace Content.Server.Wires
|
|||||||
_layouts.Add(id, layout);
|
_layouts.Add(id, layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_layouts.Clear();
|
_layouts.Clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
#nullable enable
|
|
||||||
|
|
||||||
namespace Content.Shared.GameTicking
|
|
||||||
{
|
|
||||||
public interface IResettingEntitySystem
|
|
||||||
{
|
|
||||||
void Reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
13
Content.Shared/GameTicking/RoundRestartCleanupEvent.cs
Normal file
13
Content.Shared/GameTicking/RoundRestartCleanupEvent.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using Robust.Shared.GameObjects;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
|
namespace Content.Shared.GameTicking
|
||||||
|
{
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public class RoundRestartCleanupEvent : EntityEventArgs
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,7 @@ using Robust.Shared.Players;
|
|||||||
namespace Content.Shared.Pulling
|
namespace Content.Shared.Pulling
|
||||||
{
|
{
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public abstract class SharedPullingSystem : EntitySystem, IResettingEntitySystem
|
public abstract class SharedPullingSystem : EntitySystem
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A mapping of pullers to the entity that they are pulling.
|
/// A mapping of pullers to the entity that they are pulling.
|
||||||
@@ -51,6 +51,7 @@ namespace Content.Shared.Pulling
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<RoundRestartCleanupEvent>(Reset);
|
||||||
SubscribeLocalEvent<PullStartedMessage>(OnPullStarted);
|
SubscribeLocalEvent<PullStartedMessage>(OnPullStarted);
|
||||||
SubscribeLocalEvent<PullStoppedMessage>(OnPullStopped);
|
SubscribeLocalEvent<PullStoppedMessage>(OnPullStopped);
|
||||||
SubscribeLocalEvent<MoveEvent>(PullerMoved);
|
SubscribeLocalEvent<MoveEvent>(PullerMoved);
|
||||||
@@ -70,7 +71,7 @@ namespace Content.Shared.Pulling
|
|||||||
_stoppedMoving.Clear();
|
_stoppedMoving.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset()
|
public void Reset(RoundRestartCleanupEvent ev)
|
||||||
{
|
{
|
||||||
_pullers.Clear();
|
_pullers.Clear();
|
||||||
_moving.Clear();
|
_moving.Clear();
|
||||||
|
|||||||
Reference in New Issue
Block a user