TrayScanRevealSystem.cs 935 B

1234567891011121314151617181920212223242526272829
  1. using System.Linq;
  2. using Content.Shared.SubFloor;
  3. using Robust.Shared.Map.Components;
  4. namespace Content.Client.SubFloor;
  5. public sealed class TrayScanRevealSystem : EntitySystem
  6. {
  7. [Dependency] private readonly SharedTransformSystem _transform = default!;
  8. [Dependency] private readonly SharedMapSystem _map = default!;
  9. public bool IsUnderRevealingEntity(EntityUid uid)
  10. {
  11. var gridUid = _transform.GetGrid(uid);
  12. if (gridUid is null)
  13. return false;
  14. var gridComp = Comp<MapGridComponent>(gridUid.Value);
  15. var position = _transform.GetGridOrMapTilePosition(uid);
  16. return HasTrayScanReveal(((EntityUid)gridUid, gridComp), position);
  17. }
  18. private bool HasTrayScanReveal(Entity<MapGridComponent> ent, Vector2i position)
  19. {
  20. var anchoredEnum = _map.GetAnchoredEntities(ent, position);
  21. return anchoredEnum.Any(HasComp<TrayScanRevealComponent>);
  22. }
  23. }