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; }