| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using System.Linq;
- using Content.Shared.Construction.Components;
- using Robust.Shared.Map;
- using Robust.Shared.Prototypes;
- using static Content.Shared.Interaction.SharedInteractionSystem;
- namespace Content.Shared.Construction
- {
- public abstract class SharedConstructionSystem : EntitySystem
- {
- [Dependency] private readonly IMapManager _mapManager = default!;
- [Dependency] protected readonly IPrototypeManager PrototypeManager = default!;
- [Dependency] protected readonly SharedTransformSystem TransformSystem = default!;
- /// <summary>
- /// Get predicate for construction obstruction checks.
- /// </summary>
- 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);
- }
- public string GetExamineName(GenericPartInfo info)
- {
- if (info.ExamineName is not null)
- return Loc.GetString(info.ExamineName.Value);
- return PrototypeManager.Index(info.DefaultPrototype).Name;
- }
- }
- }
|