Remove 700 usages of Component.Owner (#21100)
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
using Content.Server.Polymorph.Systems;
|
||||
using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components;
|
||||
using Content.Server.Xenoarchaeology.XenoArtifacts.Events;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Server.Polymorph.Systems;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
using Content.Shared.Polymorph;
|
||||
|
||||
namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems;
|
||||
|
||||
@@ -28,7 +27,10 @@ public sealed class PolyArtifactSystem : EntitySystem
|
||||
private void OnActivate(EntityUid uid, PolyArtifactComponent component, ArtifactActivatedEvent args)
|
||||
{
|
||||
var xform = Transform(uid);
|
||||
foreach (var comp in _lookup.GetComponentsInRange<HumanoidAppearanceComponent>(xform.Coordinates, component.Range))
|
||||
var humanoids = new HashSet<Entity<HumanoidAppearanceComponent>>();
|
||||
_lookup.GetEntitiesInRange(xform.Coordinates, component.Range, humanoids);
|
||||
|
||||
foreach (var comp in humanoids)
|
||||
{
|
||||
var target = comp.Owner;
|
||||
if (_mob.IsAlive(target))
|
||||
|
||||
@@ -23,7 +23,7 @@ public sealed class ShuffleArtifactSystem : EntitySystem
|
||||
var mobState = GetEntityQuery<MobStateComponent>();
|
||||
|
||||
List<EntityCoordinates> allCoords = new();
|
||||
List<TransformComponent> toShuffle = new();
|
||||
List<Entity<TransformComponent>> toShuffle = new();
|
||||
|
||||
foreach (var ent in _lookup.GetEntitiesInRange(uid, component.Radius, LookupFlags.Dynamic | LookupFlags.Sundries))
|
||||
{
|
||||
@@ -32,7 +32,7 @@ public sealed class ShuffleArtifactSystem : EntitySystem
|
||||
|
||||
var xform = Transform(ent);
|
||||
|
||||
toShuffle.Add(xform);
|
||||
toShuffle.Add((ent, xform));
|
||||
allCoords.Add(xform.Coordinates);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,8 +24,9 @@ public sealed class RandomArtifactSpriteSystem : EntitySystem
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
var query = EntityManager.EntityQuery<RandomArtifactSpriteComponent, AppearanceComponent>();
|
||||
foreach (var (component, appearance) in query)
|
||||
|
||||
var query = EntityQueryEnumerator<RandomArtifactSpriteComponent, AppearanceComponent>();
|
||||
while (query.MoveNext(out var uid, out var component, out var appearance))
|
||||
{
|
||||
if (component.ActivationStart == null)
|
||||
continue;
|
||||
@@ -33,7 +34,7 @@ public sealed class RandomArtifactSpriteSystem : EntitySystem
|
||||
var timeDif = _time.CurTime - component.ActivationStart.Value;
|
||||
if (timeDif.Seconds >= component.ActivationTime)
|
||||
{
|
||||
_appearance.SetData(appearance.Owner, SharedArtifactsVisuals.IsActivated, false, appearance);
|
||||
_appearance.SetData(uid, SharedArtifactsVisuals.IsActivated, false, appearance);
|
||||
component.ActivationStart = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,9 @@ public sealed class ArtifactDeathTriggerSystem : EntitySystem
|
||||
|
||||
var deathXform = Transform(ev.Target);
|
||||
|
||||
var toActivate = new List<ArtifactDeathTriggerComponent>();
|
||||
foreach (var (trigger, xform) in EntityQuery<ArtifactDeathTriggerComponent, TransformComponent>())
|
||||
var toActivate = new List<Entity<ArtifactDeathTriggerComponent>>();
|
||||
var query = EntityQueryEnumerator<ArtifactDeathTriggerComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var xform))
|
||||
{
|
||||
if (!deathXform.Coordinates.TryDistance(EntityManager, xform.Coordinates, out var distance))
|
||||
continue;
|
||||
@@ -29,12 +30,12 @@ public sealed class ArtifactDeathTriggerSystem : EntitySystem
|
||||
if (distance > trigger.Range)
|
||||
continue;
|
||||
|
||||
toActivate.Add(trigger);
|
||||
toActivate.Add((uid, trigger));
|
||||
}
|
||||
|
||||
foreach (var a in toActivate)
|
||||
{
|
||||
_artifact.TryActivateArtifact(a.Owner);
|
||||
_artifact.TryActivateArtifact(a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,18 +20,20 @@ public sealed class ArtifactElectricityTriggerSystem : EntitySystem
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
List<ArtifactComponent> toUpdate = new();
|
||||
foreach (var (trigger, power, artifact) in EntityQuery<ArtifactElectricityTriggerComponent, PowerConsumerComponent, ArtifactComponent>())
|
||||
|
||||
List<Entity<ArtifactComponent>> toUpdate = new();
|
||||
var query = EntityQueryEnumerator<ArtifactElectricityTriggerComponent, PowerConsumerComponent, ArtifactComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var power, out var artifact))
|
||||
{
|
||||
if (power.ReceivedPower <= trigger.MinPower)
|
||||
continue;
|
||||
|
||||
toUpdate.Add(artifact);
|
||||
toUpdate.Add((uid, artifact));
|
||||
}
|
||||
|
||||
foreach (var a in toUpdate)
|
||||
{
|
||||
_artifactSystem.TryActivateArtifact(a.Owner, null, a);
|
||||
_artifactSystem.TryActivateArtifact(a, null, a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,11 +30,10 @@ public sealed class ArtifactGasTriggerSystem : EntitySystem
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
List<ArtifactComponent> toUpdate = new();
|
||||
foreach (var (trigger, artifact, transform) in EntityQuery<ArtifactGasTriggerComponent, ArtifactComponent, TransformComponent>())
|
||||
List<Entity<ArtifactComponent>> toUpdate = new();
|
||||
var query = EntityQueryEnumerator<ArtifactGasTriggerComponent, ArtifactComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var artifact, out var transform))
|
||||
{
|
||||
var uid = trigger.Owner;
|
||||
|
||||
if (trigger.ActivationGas == null)
|
||||
continue;
|
||||
|
||||
@@ -49,12 +48,12 @@ public sealed class ArtifactGasTriggerSystem : EntitySystem
|
||||
if (moles < trigger.ActivationMoles)
|
||||
continue;
|
||||
|
||||
toUpdate.Add(artifact);
|
||||
toUpdate.Add((uid, artifact));
|
||||
}
|
||||
|
||||
foreach (var a in toUpdate)
|
||||
{
|
||||
_artifactSystem.TryActivateArtifact(a.Owner, null, a);
|
||||
_artifactSystem.TryActivateArtifact(a, null, a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,10 +24,10 @@ public sealed class ArtifactHeatTriggerSystem : EntitySystem
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
List<ArtifactComponent> toUpdate = new();
|
||||
foreach (var (trigger, transform, artifact) in EntityQuery<ArtifactHeatTriggerComponent, TransformComponent, ArtifactComponent>())
|
||||
List<Entity<ArtifactComponent>> toUpdate = new();
|
||||
var query = EntityQueryEnumerator<ArtifactHeatTriggerComponent, TransformComponent, ArtifactComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var transform, out var artifact))
|
||||
{
|
||||
var uid = trigger.Owner;
|
||||
var environment = _atmosphereSystem.GetTileMixture(transform.GridUid, transform.MapUid,
|
||||
_transformSystem.GetGridOrMapTilePosition(uid, transform));
|
||||
if (environment == null)
|
||||
@@ -36,12 +36,12 @@ public sealed class ArtifactHeatTriggerSystem : EntitySystem
|
||||
if (environment.Temperature < trigger.ActivationTemperature)
|
||||
continue;
|
||||
|
||||
toUpdate.Add(artifact);
|
||||
toUpdate.Add((uid, artifact));
|
||||
}
|
||||
|
||||
foreach (var a in toUpdate)
|
||||
{
|
||||
_artifactSystem.TryActivateArtifact(a.Owner, null, a);
|
||||
_artifactSystem.TryActivateArtifact(a, null, a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,13 +29,12 @@ public sealed class ArtifactMagnetTriggerSystem : EntitySystem
|
||||
List<EntityUid> toActivate = new();
|
||||
|
||||
//assume that there's more instruments than artifacts
|
||||
foreach (var magboot in EntityQuery<MagbootsComponent>())
|
||||
var query = EntityQueryEnumerator<MagbootsComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var magboot, out var magXform))
|
||||
{
|
||||
if (!magboot.On)
|
||||
continue;
|
||||
|
||||
var magXform = Transform(magboot.Owner);
|
||||
|
||||
foreach (var (trigger, xform) in artifactQuery)
|
||||
{
|
||||
if (!magXform.Coordinates.TryDistance(EntityManager, xform.Coordinates, out var distance))
|
||||
@@ -44,7 +43,7 @@ public sealed class ArtifactMagnetTriggerSystem : EntitySystem
|
||||
if (distance > trigger.Range)
|
||||
continue;
|
||||
|
||||
toActivate.Add(trigger.Owner);
|
||||
toActivate.Add(uid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +58,8 @@ public sealed class ArtifactMagnetTriggerSystem : EntitySystem
|
||||
var magXform = Transform(ev.Magnet);
|
||||
|
||||
var toActivate = new List<EntityUid>();
|
||||
foreach (var (artifact, xform) in EntityQuery<ArtifactMagnetTriggerComponent, TransformComponent>())
|
||||
var query = EntityQueryEnumerator<ArtifactMagnetTriggerComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var artifact, out var xform))
|
||||
{
|
||||
if (!magXform.Coordinates.TryDistance(EntityManager, xform.Coordinates, out var distance))
|
||||
continue;
|
||||
@@ -67,7 +67,7 @@ public sealed class ArtifactMagnetTriggerSystem : EntitySystem
|
||||
if (distance > artifact.Range)
|
||||
continue;
|
||||
|
||||
toActivate.Add(artifact.Owner);
|
||||
toActivate.Add(uid);
|
||||
}
|
||||
|
||||
foreach (var a in toActivate)
|
||||
|
||||
@@ -11,22 +11,29 @@ public sealed class ArtifactMusicTriggerSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly ArtifactSystem _artifact = default!;
|
||||
|
||||
private readonly List<Entity<ArtifactMusicTriggerComponent, TransformComponent>> _artifacts = new();
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var artifactQuery = EntityQuery<ArtifactMusicTriggerComponent, TransformComponent>().ToArray();
|
||||
if (!artifactQuery.Any())
|
||||
_artifacts.Clear();
|
||||
var artifactQuery = EntityQueryEnumerator<ArtifactMusicTriggerComponent, TransformComponent>();
|
||||
while (artifactQuery.MoveNext(out var uid, out var trigger, out var xform))
|
||||
{
|
||||
_artifacts.Add((uid, trigger, xform));
|
||||
}
|
||||
|
||||
if (!_artifacts.Any())
|
||||
return;
|
||||
|
||||
List<EntityUid> toActivate = new();
|
||||
var query = EntityQueryEnumerator<ActiveInstrumentComponent, TransformComponent>();
|
||||
|
||||
//assume that there's more instruments than artifacts
|
||||
foreach (var activeinstrument in EntityQuery<ActiveInstrumentComponent>())
|
||||
while (query.MoveNext(out _, out var instXform))
|
||||
{
|
||||
var instXform = Transform(activeinstrument.Owner);
|
||||
|
||||
foreach (var (trigger, xform) in artifactQuery)
|
||||
foreach (var (uid, trigger, xform) in _artifacts)
|
||||
{
|
||||
if (!instXform.Coordinates.TryDistance(EntityManager, xform.Coordinates, out var distance))
|
||||
continue;
|
||||
@@ -34,7 +41,7 @@ public sealed class ArtifactMusicTriggerSystem : EntitySystem
|
||||
if (distance > trigger.Range)
|
||||
continue;
|
||||
|
||||
toActivate.Add(trigger.Owner);
|
||||
toActivate.Add(uid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ public sealed class ArtifactPressureTriggerSystem : EntitySystem
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
List<ArtifactComponent> toUpdate = new();
|
||||
foreach (var (trigger, artifact, transform) in EntityQuery<ArtifactPressureTriggerComponent, ArtifactComponent, TransformComponent>())
|
||||
List<Entity<ArtifactComponent>> toUpdate = new();
|
||||
var query = EntityQueryEnumerator<ArtifactPressureTriggerComponent, ArtifactComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var artifact, out var transform))
|
||||
{
|
||||
var uid = trigger.Owner;
|
||||
var environment = _atmosphereSystem.GetTileMixture(transform.GridUid, transform.MapUid,
|
||||
_transformSystem.GetGridOrMapTilePosition(uid, transform));
|
||||
|
||||
@@ -29,12 +29,12 @@ public sealed class ArtifactPressureTriggerSystem : EntitySystem
|
||||
|
||||
var pressure = environment.Pressure;
|
||||
if (pressure >= trigger.MaxPressureThreshold || pressure <= trigger.MinPressureThreshold)
|
||||
toUpdate.Add(artifact);
|
||||
toUpdate.Add((uid, artifact));
|
||||
}
|
||||
|
||||
foreach (var a in toUpdate)
|
||||
{
|
||||
_artifactSystem.TryActivateArtifact(a.Owner, null, a);
|
||||
_artifactSystem.TryActivateArtifact(a, null, a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,20 +24,21 @@ public sealed class ArtifactTimerTriggerSystem : EntitySystem
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
List<ArtifactComponent> toUpdate = new();
|
||||
foreach (var (trigger, artifact) in EntityQuery<ArtifactTimerTriggerComponent, ArtifactComponent>())
|
||||
List<Entity<ArtifactComponent>> toUpdate = new();
|
||||
var query = EntityQueryEnumerator<ArtifactTimerTriggerComponent, ArtifactComponent>();
|
||||
while (query.MoveNext(out var uid, out var trigger, out var artifact))
|
||||
{
|
||||
var timeDif = _time.CurTime - trigger.LastActivation;
|
||||
if (timeDif <= trigger.ActivationRate)
|
||||
continue;
|
||||
|
||||
toUpdate.Add(artifact);
|
||||
toUpdate.Add((uid, artifact));
|
||||
trigger.LastActivation = _time.CurTime;
|
||||
}
|
||||
|
||||
foreach (var a in toUpdate)
|
||||
{
|
||||
_artifactSystem.TryActivateArtifact(a.Owner, null, a);
|
||||
_artifactSystem.TryActivateArtifact(a, null, a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user