NoWindowsInTile.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Content.Shared.Maps;
  2. using Content.Shared.Tag;
  3. using JetBrains.Annotations;
  4. using Robust.Shared.Map;
  5. namespace Content.Shared.Construction.Conditions
  6. {
  7. [UsedImplicitly]
  8. [DataDefinition]
  9. public sealed partial class NoWindowsInTile : IConstructionCondition
  10. {
  11. public bool Condition(EntityUid user, EntityCoordinates location, Direction direction)
  12. {
  13. var entManager = IoCManager.Resolve<IEntityManager>();
  14. var sysMan = entManager.EntitySysManager;
  15. var tagSystem = sysMan.GetEntitySystem<TagSystem>();
  16. foreach (var entity in location.GetEntitiesInTile(LookupFlags.Static))
  17. {
  18. if (tagSystem.HasTag(entity, "Window"))
  19. return false;
  20. }
  21. return true;
  22. }
  23. public ConstructionGuideEntry GenerateGuideEntry()
  24. {
  25. return new ConstructionGuideEntry
  26. {
  27. Localization = "construction-step-condition-no-windows-in-tile"
  28. };
  29. }
  30. }
  31. }