Code cleanup: radio jammer (#29052)
* Code cleanup for radio jammer * More Entity<T> for the people, and fix an accidental variable reuse
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
using Content.Server.DeviceNetwork.Components;
|
||||
using Content.Shared.DeviceNetwork.Components;
|
||||
using Content.Shared.DeviceNetwork.Systems;
|
||||
using Robust.Server.GameObjects;
|
||||
|
||||
namespace Content.Server.DeviceNetwork.Systems;
|
||||
|
||||
public sealed class DeviceNetworkJammerSystem : EntitySystem
|
||||
/// <inheritdoc/>
|
||||
public sealed class DeviceNetworkJammerSystem : SharedDeviceNetworkJammerSystem
|
||||
{
|
||||
[Dependency] private TransformSystem _transform = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
[Dependency] private readonly SharedDeviceNetworkJammerSystem _jammer = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
@@ -14,20 +17,20 @@ public sealed class DeviceNetworkJammerSystem : EntitySystem
|
||||
SubscribeLocalEvent<TransformComponent, BeforePacketSentEvent>(BeforePacketSent);
|
||||
}
|
||||
|
||||
private void BeforePacketSent(EntityUid uid, TransformComponent xform, BeforePacketSentEvent ev)
|
||||
private void BeforePacketSent(Entity<TransformComponent> xform, ref BeforePacketSentEvent ev)
|
||||
{
|
||||
if (ev.Cancelled)
|
||||
return;
|
||||
|
||||
var query = EntityQueryEnumerator<DeviceNetworkJammerComponent, TransformComponent>();
|
||||
|
||||
while (query.MoveNext(out _, out var jammerComp, out var jammerXform))
|
||||
while (query.MoveNext(out var uid, out var jammerComp, out var jammerXform))
|
||||
{
|
||||
if (!jammerComp.JammableNetworks.Contains(ev.NetworkId))
|
||||
if (!_jammer.GetJammableNetworks((uid, jammerComp)).Contains(ev.NetworkId))
|
||||
continue;
|
||||
|
||||
if (jammerXform.Coordinates.InRange(EntityManager, _transform, ev.SenderTransform.Coordinates, jammerComp.Range)
|
||||
|| jammerXform.Coordinates.InRange(EntityManager, _transform, xform.Coordinates, jammerComp.Range))
|
||||
if (_transform.InRange(jammerXform.Coordinates, ev.SenderTransform.Coordinates, jammerComp.Range)
|
||||
|| _transform.InRange(jammerXform.Coordinates, xform.Comp.Coordinates, jammerComp.Range))
|
||||
{
|
||||
ev.Cancel();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user