57 lines
1.3 KiB
C#
57 lines
1.3 KiB
C#
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Shared.Procedural;
|
|
|
|
[Virtual, DataDefinition]
|
|
public partial class DungeonConfig
|
|
{
|
|
/// <summary>
|
|
/// <see cref="Data"/>
|
|
/// </summary>
|
|
[DataField]
|
|
public DungeonData Data = DungeonData.Empty;
|
|
|
|
/// <summary>
|
|
/// The secret sauce, procedural generation layers that get run.
|
|
/// </summary>
|
|
[DataField]
|
|
public List<IDunGenLayer> Layers = new();
|
|
|
|
/// <summary>
|
|
/// Should we reserve the tiles generated by this config so no other dungeons can spawn on it within the same job?
|
|
/// </summary>
|
|
[DataField]
|
|
public bool ReserveTiles;
|
|
|
|
/// <summary>
|
|
/// Minimum times to run the config.
|
|
/// </summary>
|
|
[DataField]
|
|
public int MinCount = 1;
|
|
|
|
/// <summary>
|
|
/// Maximum times to run the config.
|
|
/// </summary>
|
|
[DataField]
|
|
public int MaxCount = 1;
|
|
|
|
/// <summary>
|
|
/// Minimum amount we can offset the dungeon by.
|
|
/// </summary>
|
|
[DataField]
|
|
public int MinOffset;
|
|
|
|
/// <summary>
|
|
/// Maximum amount we can offset the dungeon by.
|
|
/// </summary>
|
|
[DataField]
|
|
public int MaxOffset;
|
|
}
|
|
|
|
[Prototype]
|
|
public sealed class DungeonConfigPrototype : DungeonConfig, IPrototype
|
|
{
|
|
[IdDataField]
|
|
public string ID { get; private set; } = default!;
|
|
}
|