Files
tbd-station-14/Content.Shared/Construction/Conditions/TileNotBlocked.cs
2021-06-09 22:19:39 +02:00

29 lines
839 B
C#

#nullable enable
using Content.Shared.Maps;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Shared.Construction.Conditions
{
[UsedImplicitly]
[DataDefinition]
public class TileNotBlocked : IConstructionCondition
{
[DataField("filterMobs")] private bool _filterMobs = false;
[DataField("failIfSpace")] private bool _failIfSpace = true;
public bool Condition(IEntity user, EntityCoordinates location, Direction direction)
{
var tileRef = location.GetTileRef();
if (tileRef == null || tileRef.Value.IsSpace())
return !_failIfSpace;
return !tileRef.Value.IsBlockedTurf(_filterMobs);
}
}
}