diff --git a/Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs b/Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs index cc775139f2..c478942d44 100644 --- a/Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs @@ -4,12 +4,13 @@ using JetBrains.Annotations; using Robust.Shared.GameObjects; using Robust.Shared.IoC; using System.Collections.Generic; +using Content.Shared.GameTicking; using Robust.Shared.Timing; namespace Content.Server.GameObjects.EntitySystems { [UsedImplicitly] - internal sealed class ApcNetSystem : EntitySystem + internal sealed class ApcNetSystem : EntitySystem, IResettingEntitySystem { [Dependency] private readonly IPauseManager _pauseManager = default!; @@ -34,5 +35,12 @@ namespace Content.Server.GameObjects.EntitySystems { _apcNets.Remove(apcNet); } + + public void Reset() + { + // 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. + _apcNets.Clear(); + } } }