Files
crystall-punk-14/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneGeneratorDataComponent.cs
2024-12-17 14:39:37 +04:00

39 lines
1.1 KiB
C#

using Content.Shared._CP14.Demiplane.Prototypes;
using Robust.Shared.Prototypes;
namespace Content.Server._CP14.Demiplane.Components;
/// <summary>
/// Stores the data needed to generate a new demiplane
/// </summary>
[RegisterComponent, Access(typeof(CP14DemiplaneSystem))]
public sealed partial class CP14DemiplaneGeneratorDataComponent : Component
{
[DataField]
public ProtoId<CP14DemiplaneLocationPrototype>? Location;
[DataField]
public List<ProtoId<CP14DemiplaneModifierPrototype>> SelectedModifiers = new();
/// <summary>
/// Generator Tier. Determines which modifiers and locations will be selected for this demiplane
/// </summary>
[DataField(required: true)]
public Dictionary<int, float> TiersContent = new();
[DataField(required: true)]
public Dictionary<ProtoId<CP14DemiplaneModifierCategoryPrototype>, float> Limits;
[DataField]
public bool NeedDemiplaneCrystal = true;
[DataField]
public float DemiplaneCrystalRange = 15f;
[DataField]
public TimeSpan UseDelay = TimeSpan.FromSeconds(1.0);
[DataField]
public TimeSpan LastUseTime = TimeSpan.Zero;
}