Clean up polymorphsystem (#14297)
This commit is contained in:
41
Content.Server/Polymorph/Systems/PolymorphSystem.Map.cs
Normal file
41
Content.Server/Polymorph/Systems/PolymorphSystem.Map.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Content.Shared.GameTicking;
|
||||
|
||||
namespace Content.Server.Polymorph.Systems
|
||||
{
|
||||
public sealed partial class PolymorphSystem
|
||||
{
|
||||
public EntityUid? PausedMap { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Used to subscribe to the round restart event
|
||||
/// </summary>
|
||||
private void InitializeMap()
|
||||
{
|
||||
SubscribeLocalEvent<RoundRestartCleanupEvent>(OnRoundRestart);
|
||||
}
|
||||
|
||||
private void OnRoundRestart(RoundRestartCleanupEvent _)
|
||||
{
|
||||
if (PausedMap == null || !Exists(PausedMap))
|
||||
return;
|
||||
|
||||
EntityManager.DeleteEntity(PausedMap.Value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used internally to ensure a paused map that is
|
||||
/// stores polymorphed entities.
|
||||
/// </summary>
|
||||
private void EnsurePausesdMap()
|
||||
{
|
||||
if (PausedMap != null && Exists(PausedMap))
|
||||
return;
|
||||
|
||||
var newmap = _mapManager.CreateMap();
|
||||
_mapManager.SetMapPaused(newmap, true);
|
||||
PausedMap = _mapManager.GetMapEntityId(newmap);
|
||||
|
||||
Dirty(PausedMap.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user