* Dungeon spawn support for grid spawns * Recursive dungeons working * Mask approach working * zack * More work * Fix recursive dungeons * Heap of work * weh * the cud * rar * Job * weh * weh * weh * Master merges * orch * weh * vgroid most of the work * Tweaks * Tweaks * weh * do do do do do do * Basic layout * Ore spawning working * Big breaking changes * Mob gen working * weh * Finalising * emo * More finalising * reverty * Reduce distance
54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
using Content.Shared.Procedural.PostGeneration;
|
|
using Robust.Shared.Prototypes;
|
|
|
|
namespace Content.Shared.Procedural;
|
|
|
|
[Prototype]
|
|
public sealed partial class DungeonConfigPrototype : IPrototype
|
|
{
|
|
[IdDataField]
|
|
public string ID { get; private set; } = default!;
|
|
|
|
/// <summary>
|
|
/// <see cref="Data"/>
|
|
/// </summary>
|
|
[DataField]
|
|
public DungeonData Data = DungeonData.Empty;
|
|
|
|
/// <summary>
|
|
/// The secret sauce, procedural generation layers that get run.
|
|
/// </summary>
|
|
[DataField(required: true)]
|
|
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;
|
|
}
|