using Content.Shared.Maps;
using Robust.Shared.Noise;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
namespace Content.Shared.Procedural.DungeonLayers;
///
/// Samples noise and spawns the specified tile in the dungeon area.
///
[Serializable, NetSerializable]
public sealed partial class SampleTileDunGen : IDunGenLayer
{
///
/// Reserve any tiles we update.
///
[DataField]
public bool ReserveTiles = true;
[DataField] public FastNoiseLite Noise { get; private set; } = new(0);
[DataField]
public float Threshold { get; private set; } = 0.5f;
[DataField] public bool Invert { get; private set; } = false;
///
/// Which tile variants to use for this layer. Uses all of the tile's variants if none specified
///
[DataField]
public List? Variants = null;
[DataField(required: true)]
public ProtoId Tile = string.Empty;
}