diff --git a/Content.Server/Electrocution/ElectrocutionSystem.cs b/Content.Server/Electrocution/ElectrocutionSystem.cs index 9e6ec7fbbd..70f7adfd28 100644 --- a/Content.Server/Electrocution/ElectrocutionSystem.cs +++ b/Content.Server/Electrocution/ElectrocutionSystem.cs @@ -25,6 +25,7 @@ using Content.Shared.Tag; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Melee.Events; using Robust.Shared.Audio; +using Robust.Shared.Map; using Robust.Shared.Physics.Events; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -34,22 +35,23 @@ namespace Content.Server.Electrocution; public sealed class ElectrocutionSystem : SharedElectrocutionSystem { - [Dependency] private readonly EntityLookupSystem _entityLookup = default!; - [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly EntityLookupSystem _entityLookup = default!; + [Dependency] private readonly MeleeWeaponSystem _meleeWeapon = default!; + [Dependency] private readonly NodeContainerSystem _nodeContainer = default!; + [Dependency] private readonly NodeGroupSystem _nodeGroup = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; [Dependency] private readonly SharedJitteringSystem _jittering = default!; - [Dependency] private readonly MeleeWeaponSystem _meleeWeapon = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedStunSystem _stun = default!; [Dependency] private readonly SharedStutteringSystem _stuttering = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly DamageableSystem _damageable = default!; - [Dependency] private readonly NodeGroupSystem _nodeGroup = default!; - [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly TagSystem _tag = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly NodeContainerSystem _nodeContainer = default!; private const string StatusEffectKey = "Electrocution"; private const string DamageType = "Shock"; @@ -138,10 +140,15 @@ public sealed class ElectrocutionSystem : SharedElectrocutionSystem return false; if (electrified.NoWindowInTile) { - foreach (var entity in transform.Coordinates.GetEntitiesInTile(LookupFlags.Approximate | LookupFlags.Static, _entityLookup)) + var tileRef = transform.Coordinates.GetTileRef(EntityManager, _mapManager); + + if (tileRef != null) { - if (_tag.HasTag(entity, "Window")) - return false; + foreach (var entity in _entityLookup.GetEntitiesIntersecting(tileRef.Value, flags: LookupFlags.StaticSundries)) + { + if (_tag.HasTag(entity, "Window")) + return false; + } } } if (electrified.UsesApcPower) diff --git a/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs b/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs index dd89558669..f2d4620a1e 100644 --- a/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs +++ b/Content.Server/NPC/Pathfinding/PathfindingSystem.Grid.cs @@ -454,7 +454,7 @@ public sealed partial class PathfindingSystem // var isBorder = x < 0 || y < 0 || x == ChunkSize - 1 || y == ChunkSize - 1; tileEntities.Clear(); - var available = _lookup.GetEntitiesIntersecting(tile); + var available = _lookup.GetEntitiesIntersecting(tile, flags: LookupFlags.Dynamic | LookupFlags.Static); foreach (var ent in available) {