using Content.Shared.GameTicking; namespace Content.Server.Polymorph.Systems { public sealed partial class PolymorphSystem { public EntityUid? PausedMap { get; private set; } /// /// Used to subscribe to the round restart event /// private void InitializeMap() { SubscribeLocalEvent(OnRoundRestart); } private void OnRoundRestart(RoundRestartCleanupEvent _) { if (PausedMap == null || !Exists(PausedMap)) return; EntityManager.DeleteEntity(PausedMap.Value); } /// /// Used internally to ensure a paused map that is /// stores polymorphed entities. /// private void EnsurePausesdMap() { if (PausedMap != null && Exists(PausedMap)) return; var newmap = _mapManager.CreateMap(); _mapManager.SetMapPaused(newmap, true); PausedMap = _mapManager.GetMapEntityId(newmap); Dirty(PausedMap.Value); } } }