using System.Linq; using Robust.Shared.Map; using static Content.Shared.Interaction.SharedInteractionSystem; namespace Content.Shared.Construction { public abstract class SharedConstructionSystem : EntitySystem { [Dependency] private readonly IMapManager _mapManager = default!; /// /// Get predicate for construction obstruction checks. /// public Ignored? GetPredicate(bool canBuildInImpassable, MapCoordinates coords) { if (!canBuildInImpassable) return null; if (!_mapManager.TryFindGridAt(coords, out _, out var grid)) return null; var ignored = grid.GetAnchoredEntities(coords).ToHashSet(); return e => ignored.Contains(e); } } }