Remove some client IEnumerables (#16501)
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user