Make PathfindingSystem take a nap during large explosions (#12309)
This commit is contained in:
@@ -63,7 +63,8 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
return;
|
||||
|
||||
_activeExplosion = null;
|
||||
_nodeGroupSystem.Snoozing = false;
|
||||
_nodeGroupSystem.PauseUpdating = false;
|
||||
_pathfindingSystem.PauseUpdating = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -107,7 +108,8 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
// just a lil nap
|
||||
if (SleepNodeSys)
|
||||
{
|
||||
_nodeGroupSystem.Snoozing = true;
|
||||
_nodeGroupSystem.PauseUpdating = true;
|
||||
_pathfindingSystem.PauseUpdating = true;
|
||||
// snooze grid-chunk regeneration?
|
||||
// snooze power network (recipients look for new suppliers as wires get destroyed).
|
||||
}
|
||||
@@ -136,7 +138,8 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
// Ensure the system does not get stuck in an error-loop.
|
||||
_activeExplosion = null;
|
||||
RaiseNetworkEvent(new ExplosionOverlayUpdateEvent(_explosionCounter, int.MaxValue));
|
||||
_nodeGroupSystem.Snoozing = false;
|
||||
_nodeGroupSystem.PauseUpdating = false;
|
||||
_pathfindingSystem.PauseUpdating = false;
|
||||
throw;
|
||||
}
|
||||
#endif
|
||||
@@ -163,7 +166,8 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
RaiseNetworkEvent(new ExplosionOverlayUpdateEvent(_explosionCounter, int.MaxValue));
|
||||
|
||||
//wakey wakey
|
||||
_nodeGroupSystem.Snoozing = false;
|
||||
_nodeGroupSystem.PauseUpdating = false;
|
||||
_pathfindingSystem.PauseUpdating = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -3,6 +3,7 @@ using Content.Server.Administration.Logs;
|
||||
using Content.Server.Atmos.Components;
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Server.NodeContainer.EntitySystems;
|
||||
using Content.Server.NPC.Pathfinding;
|
||||
using Content.Shared.Camera;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Database;
|
||||
@@ -32,6 +33,7 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
|
||||
[Dependency] private readonly DamageableSystem _damageableSystem = default!;
|
||||
[Dependency] private readonly NodeGroupSystem _nodeGroupSystem = default!;
|
||||
[Dependency] private readonly PathfindingSystem _pathfindingSystem = default!;
|
||||
[Dependency] private readonly SharedCameraRecoilSystem _recoilSystem = default!;
|
||||
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
|
||||
[Dependency] private readonly ThrowingSystem _throwingSystem = default!;
|
||||
@@ -85,14 +87,16 @@ public sealed partial class ExplosionSystem : EntitySystem
|
||||
{
|
||||
_explosionQueue.Clear();
|
||||
_activeExplosion = null;
|
||||
_nodeGroupSystem.Snoozing = false;
|
||||
_nodeGroupSystem.PauseUpdating = false;
|
||||
_pathfindingSystem.PauseUpdating = false;
|
||||
}
|
||||
|
||||
public override void Shutdown()
|
||||
{
|
||||
base.Shutdown();
|
||||
UnsubscribeCvars();
|
||||
_nodeGroupSystem.Snoozing = false;
|
||||
_nodeGroupSystem.PauseUpdating = false;
|
||||
_pathfindingSystem.PauseUpdating = false;
|
||||
}
|
||||
|
||||
private void OnGetResistance(EntityUid uid, ExplosionResistanceComponent component, GetExplosionResistanceEvent args)
|
||||
|
||||
Reference in New Issue
Block a user