VGRoid support (#27659)

* 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
This commit is contained in:
metalgearsloth
2024-07-03 22:23:11 +10:00
committed by GitHub
parent 1faa1b5df6
commit a2f99cc69e
103 changed files with 4928 additions and 2627 deletions

View File

@@ -1,21 +1,53 @@
using Content.Shared.Procedural.DungeonGenerators;
using Content.Shared.Procedural.PostGeneration;
using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural;
[Prototype("dungeonConfig")]
[Prototype]
public sealed partial class DungeonConfigPrototype : IPrototype
{
[IdDataField]
public string ID { get; private set; } = default!;
[DataField("generator", required: true)]
public IDunGen Generator = default!;
/// <summary>
/// <see cref="Data"/>
/// </summary>
[DataField]
public DungeonData Data = DungeonData.Empty;
/// <summary>
/// Ran after the main dungeon is created.
/// The secret sauce, procedural generation layers that get run.
/// </summary>
[DataField("postGeneration")]
public List<IPostDunGen> PostGeneration = new();
[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;
}