using Content.Shared.Construction.EntitySystems;
using JetBrains.Annotations;
using Robust.Shared.Map;
namespace Content.Shared.Construction.Conditions;
///
/// Check for "Unstackable" condition commonly used by atmos devices and others which otherwise don't check on
/// collisions with other items.
///
[UsedImplicitly]
[DataDefinition]
public sealed partial class NoUnstackableInTile : IConstructionCondition
{
public const string GuidebookString = "construction-step-condition-no-unstackable-in-tile";
public bool Condition(EntityUid user, EntityCoordinates location, Direction direction)
{
var sysMan = IoCManager.Resolve();
var anchorable = sysMan.GetEntitySystem();
return !anchorable.AnyUnstackablesAnchoredAt(location);
}
public ConstructionGuideEntry GenerateGuideEntry()
{
return new ConstructionGuideEntry
{
Localization = GuidebookString
};
}
}