Remove some client IEnumerables (#16501)

This commit is contained in:
metalgearsloth
2023-05-16 22:55:22 +10:00
committed by GitHub
parent e91fc652a3
commit 64bb57cdef
6 changed files with 30 additions and 32 deletions

View File

@@ -59,7 +59,9 @@ public sealed class AnomalySystem : SharedAnomalySystem
{ {
base.Update(frameTime); base.Update(frameTime);
foreach (var (super, sprite) in EntityQuery<AnomalySupercriticalComponent, SpriteComponent>()) var query = EntityQueryEnumerator<AnomalySupercriticalComponent, SpriteComponent>();
while (query.MoveNext(out var super, out var sprite))
{ {
var completion = 1f - (float) ((super.EndTime - _timing.CurTime) / super.SupercriticalDuration); var completion = 1f - (float) ((super.EndTime - _timing.CurTime) / super.SupercriticalDuration);
var scale = completion * (super.MaxScaleAmount - 1f) + 1f; var scale = completion * (super.MaxScaleAmount - 1f) + 1f;

View File

@@ -6,23 +6,17 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem
{ {
public override void Update(float frameTime) public override void Update(float frameTime)
{ {
foreach (var comp in EntityQuery<ActiveSurveillanceCameraMonitorVisualsComponent>()) var query = EntityQueryEnumerator<ActiveSurveillanceCameraMonitorVisualsComponent>();
{
if (Paused(comp.Owner))
{
continue;
}
while (query.MoveNext(out var uid, out var comp))
{
comp.TimeLeft -= frameTime; comp.TimeLeft -= frameTime;
if (comp.TimeLeft <= 0 || Deleted(comp.Owner)) if (comp.TimeLeft <= 0)
{ {
if (comp.OnFinish != null) comp.OnFinish?.Invoke();
{
comp.OnFinish();
}
EntityManager.RemoveComponentDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(comp.Owner); RemCompDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(uid);
} }
} }
} }
@@ -35,6 +29,6 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem
public void RemoveTimer(EntityUid uid) public void RemoveTimer(EntityUid uid)
{ {
EntityManager.RemoveComponentDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(uid); RemCompDeferred<ActiveSurveillanceCameraMonitorVisualsComponent>(uid);
} }
} }

View File

@@ -123,11 +123,11 @@ public sealed class ConveyorController : SharedConveyorController
if (!xformQuery.TryGetComponent(uid, out var xform)) if (!xformQuery.TryGetComponent(uid, out var xform))
return; return;
var beltTileRef = xform.Coordinates.GetTileRef(EntityManager, _mapManager); var beltTileRef = xform.Coordinates.GetTileRef(EntityManager, MapManager);
if (beltTileRef != null) if (beltTileRef != null)
{ {
var intersecting = _lookup.GetEntitiesIntersecting(beltTileRef.Value); var intersecting = Lookup.GetEntitiesIntersecting(beltTileRef.Value);
foreach (var entity in intersecting) foreach (var entity in intersecting)
{ {
@@ -135,7 +135,7 @@ public sealed class ConveyorController : SharedConveyorController
continue; continue;
if (physics.BodyType != BodyType.Static) if (physics.BodyType != BodyType.Static)
_physics.WakeBody(entity, body: physics); Physics.WakeBody(entity, body: physics);
} }
} }
} }

View File

@@ -23,9 +23,10 @@ public sealed class DamageContactsSystem : EntitySystem
{ {
base.Update(frameTime); base.Update(frameTime);
foreach (var damaged in EntityQuery<DamagedByContactComponent>()) var query = EntityQueryEnumerator<DamagedByContactComponent>();
while (query.MoveNext(out var ent, out var damaged))
{ {
var ent = damaged.Owner;
if (_timing.CurTime < damaged.NextSecond) if (_timing.CurTime < damaged.NextSecond)
continue; continue;
damaged.NextSecond = _timing.CurTime + TimeSpan.FromSeconds(1); damaged.NextSecond = _timing.CurTime + TimeSpan.FromSeconds(1);

View File

@@ -24,18 +24,19 @@ public abstract partial class SharedGravitySystem
{ {
var curTime = Timing.CurTime; var curTime = Timing.CurTime;
var gravityQuery = GetEntityQuery<GravityComponent>(); var gravityQuery = GetEntityQuery<GravityComponent>();
var query = EntityQueryEnumerator<GravityShakeComponent>();
foreach (var comp in EntityQuery<GravityShakeComponent>()) while (query.MoveNext(out var uid, out var comp))
{ {
if (comp.NextShake <= curTime) if (comp.NextShake <= curTime)
{ {
if (comp.ShakeTimes == 0 || !gravityQuery.TryGetComponent(comp.Owner, out var gravity)) if (comp.ShakeTimes == 0 || !gravityQuery.TryGetComponent(uid, out var gravity))
{ {
RemCompDeferred<GravityShakeComponent>(comp.Owner); RemCompDeferred<GravityShakeComponent>(uid);
continue; continue;
} }
ShakeGrid(comp.Owner, gravity); ShakeGrid(uid, gravity);
comp.ShakeTimes--; comp.ShakeTimes--;
comp.NextShake += TimeSpan.FromSeconds(ShakeCooldown); comp.NextShake += TimeSpan.FromSeconds(ShakeCooldown);
Dirty(comp); Dirty(comp);

View File

@@ -13,9 +13,9 @@ namespace Content.Shared.Physics.Controllers;
public abstract class SharedConveyorController : VirtualController public abstract class SharedConveyorController : VirtualController
{ {
[Dependency] protected readonly IMapManager _mapManager = default!; [Dependency] protected readonly IMapManager MapManager = default!;
[Dependency] protected readonly EntityLookupSystem _lookup = default!; [Dependency] protected readonly EntityLookupSystem Lookup = default!;
[Dependency] protected readonly SharedPhysicsSystem _physics = default!; [Dependency] protected readonly SharedPhysicsSystem Physics = default!;
[Dependency] private readonly SharedGravitySystem _gravity = default!; [Dependency] private readonly SharedGravitySystem _gravity = default!;
protected const string ConveyorFixture = "conveyor"; protected const string ConveyorFixture = "conveyor";
@@ -74,10 +74,10 @@ public abstract class SharedConveyorController : VirtualController
// Don't use it directly in EntityQuery because we may be able to save getcomponents. // Don't use it directly in EntityQuery because we may be able to save getcomponents.
var xformQuery = GetEntityQuery<TransformComponent>(); var xformQuery = GetEntityQuery<TransformComponent>();
var bodyQuery = GetEntityQuery<PhysicsComponent>(); var bodyQuery = GetEntityQuery<PhysicsComponent>();
var query = EntityQueryEnumerator<ActiveConveyorComponent, ConveyorComponent>();
foreach (var (_, comp) in EntityQuery<ActiveConveyorComponent, ConveyorComponent>()) while (query.MoveNext(out var uid, out var _, out var comp))
{ {
var uid = comp.Owner;
Convey(uid, comp, xformQuery, bodyQuery, conveyed, frameTime, prediction); Convey(uid, comp, xformQuery, bodyQuery, conveyed, frameTime, prediction);
} }
} }
@@ -115,8 +115,8 @@ public abstract class SharedConveyorController : VirtualController
transform.LocalPosition = localPos; transform.LocalPosition = localPos;
// Force it awake for collisionwake reasons. // Force it awake for collisionwake reasons.
_physics.SetAwake(entity, body, true); Physics.SetAwake(entity, body, true);
_physics.SetSleepTime(body, 0f); Physics.SetSleepTime(body, 0f);
} }
Dirty(comp); Dirty(comp);
} }
@@ -161,9 +161,9 @@ public abstract class SharedConveyorController : VirtualController
EntityQuery<PhysicsComponent> bodyQuery) EntityQuery<PhysicsComponent> bodyQuery)
{ {
// Check if the thing's centre overlaps the grid tile. // Check if the thing's centre overlaps the grid tile.
var grid = _mapManager.GetGrid(xform.GridUid!.Value); var grid = MapManager.GetGrid(xform.GridUid!.Value);
var tile = grid.GetTileRef(xform.Coordinates); var tile = grid.GetTileRef(xform.Coordinates);
var conveyorBounds = _lookup.GetLocalBounds(tile, grid.TileSize); var conveyorBounds = Lookup.GetLocalBounds(tile, grid.TileSize);
foreach (var entity in comp.Intersecting) foreach (var entity in comp.Intersecting)
{ {