fix window placement (#17815)

This commit is contained in:
Slava0135
2023-07-05 03:31:10 +03:00
committed by GitHub
parent c7f70407fb
commit 14e9b85196

View File

@@ -2,7 +2,6 @@
using Content.Shared.Tag; using Content.Shared.Tag;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Map.Components;
namespace Content.Shared.Construction.Conditions namespace Content.Shared.Construction.Conditions
{ {
@@ -13,17 +12,11 @@ namespace Content.Shared.Construction.Conditions
public bool Condition(EntityUid user, EntityCoordinates location, Direction direction) public bool Condition(EntityUid user, EntityCoordinates location, Direction direction)
{ {
var entManager = IoCManager.Resolve<IEntityManager>(); var entManager = IoCManager.Resolve<IEntityManager>();
var gridUid = location.GetGridUid(entManager);
if (!entManager.TryGetComponent<MapGridComponent>(gridUid, out var grid))
return true;
var tagQuery = entManager.GetEntityQuery<TagComponent>(); var tagQuery = entManager.GetEntityQuery<TagComponent>();
var sysMan = entManager.EntitySysManager; var sysMan = entManager.EntitySysManager;
var tagSystem = sysMan.GetEntitySystem<TagSystem>(); var tagSystem = sysMan.GetEntitySystem<TagSystem>();
var lookup = sysMan.GetEntitySystem<EntityLookupSystem>();
foreach (var entity in lookup.GetEntitiesIntersecting(gridUid.Value, grid.LocalToTile(location))) foreach (var entity in location.GetEntitiesInTile(LookupFlags.Approximate | LookupFlags.Static))
{ {
if (tagSystem.HasTag(entity, "Window", tagQuery)) if (tagSystem.HasTag(entity, "Window", tagQuery))
return false; return false;