using System.Collections.Generic; using Content.Server.AI.Utils; using Content.Server.GameObjects; using Content.Server.GameObjects.Components; using Content.Server.GameObjects.Components.Movement; using JetBrains.Annotations; using Robust.Shared.Containers; using Robust.Shared.Interfaces.GameObjects; namespace Content.Server.AI.WorldState.States.Clothing { [UsedImplicitly] public sealed class NearbyClothingState : CachedStateData> { public override string Name => "NearbyClothing"; protected override List GetTrueValue() { var result = new List(); if (!Owner.TryGetComponent(out AiControllerComponent controller)) { return result; } foreach (var entity in Visibility .GetNearestEntities(Owner.Transform.GridPosition, typeof(ClothingComponent), controller.VisionRadius)) { if (ContainerHelpers.TryGetContainer(entity, out var container)) { if (!container.Owner.HasComponent()) { continue; } } result.Add(entity); } return result; } } }