using System.Numerics; using Content.Server.Worldgen.Prototypes; using Content.Server.Worldgen.Systems.Debris; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Worldgen.Components.Debris; /// /// This is used for controlling the debris feature placer. /// [RegisterComponent] [Access(typeof(DebrisFeaturePlacerSystem))] public sealed partial class DebrisFeaturePlacerControllerComponent : Component { /// /// Whether or not to clip debris that would spawn at a location that has a density of zero. /// [DataField("densityClip")] public bool DensityClip = true; /// /// Whether or not entities are already spawned. /// public bool DoSpawns = true; [DataField("ownedDebris")] public Dictionary OwnedDebris = new(); /// /// The chance spawning a piece of debris will just be cancelled randomly. /// [DataField("randomCancelChance")] public float RandomCancellationChance = 0.1f; /// /// Radius in which there should be no objects for debris to spawn. /// [DataField("safetyZoneRadius")] public float SafetyZoneRadius = 16.0f; /// /// The noise channel to use as a density controller. /// [DataField("densityNoiseChannel", customTypeSerializer: typeof(PrototypeIdSerializer))] public string DensityNoiseChannel { get; private set; } = default!; }