using Content.Shared.Parallax.Biomes.Markers; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Gateway.Components; /// /// Generates gateway destinations at a regular interval. /// [RegisterComponent] public sealed partial class GatewayGeneratorComponent : Component { /// /// Prototype to spawn on the generated map if applicable. /// [DataField] public EntProtoId? Proto = "Gateway"; /// /// Next time another seed unlocks. /// [DataField(customTypeSerializer:typeof(TimeOffsetSerializer))] public TimeSpan NextUnlock; /// /// How long it takes to unlock another destination once one is taken. /// [DataField] public TimeSpan UnlockCooldown = TimeSpan.FromMinutes(45); /// /// Maps we've generated. /// [DataField] public List Generated = new(); [DataField] public int MobLayerCount = 1; /// /// Mob layers to pick from. /// [DataField] public List> MobLayers = new() { "Carps", "Xenos", }; [DataField] public int LootLayerCount = 3; /// /// Loot layers to pick from. /// public List> LootLayers = new() { "OreTin", "OreQuartz", "OreGold", "OreSilver", "OrePlasma", "OreUranium", "OreBananium", "OreArtifactFragment", }; }