using Content.Shared.Maps; using Content.Shared.Tag; using JetBrains.Annotations; using Robust.Shared.Map; namespace Content.Shared.Construction.Conditions { [UsedImplicitly] [DataDefinition] public sealed partial class NoWindowsInTile : IConstructionCondition { public bool Condition(EntityUid user, EntityCoordinates location, Direction direction) { var entManager = IoCManager.Resolve(); var sysMan = entManager.EntitySysManager; var tagSystem = sysMan.GetEntitySystem(); foreach (var entity in location.GetEntitiesInTile(LookupFlags.Static)) { if (tagSystem.HasTag(entity, "Window")) return false; } return true; } public ConstructionGuideEntry GenerateGuideEntry() { return new ConstructionGuideEntry { Localization = "construction-step-condition-no-windows-in-tile" }; } } }