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