using Content.Server.AI.Components; using Content.Server.AI.Utils; using Content.Server.Clothing.Components; using Content.Server.Storage.Components; using JetBrains.Annotations; using Robust.Server.Containers; 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(); var entMan = IoCManager.Resolve(); if (!entMan.TryGetComponent(Owner, out AiControllerComponent? controller)) { return result; } var containerSystem = IoCManager.Resolve(); foreach (var entity in Visibility.GetNearestEntities(entMan.GetComponent(Owner).Coordinates, typeof(ClothingComponent), controller.VisionRadius)) { if (containerSystem.TryGetContainingContainer(entity, out var container)) { if (!entMan.HasComponent(container.Owner)) { continue; } } result.Add(entity); } return result; } } }