6
2025-11-05 11:11:22 +03:00

53 lines
1.4 KiB
C#

using Content.Shared.Maps; // Upstream#33105
using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural.DungeonLayers;
/// <summary>
/// Generates veins inside of the specified dungeon.
/// </summary>
/// <remarks>
/// Generates on top of existing entities for sanity reasons moreso than performance.
/// </remarks>
[Virtual]
public partial class OreDunGen : IDunGenLayer
{
// Upstream#33105: OreDunGen replacement (Thank you, TheShuEd!)
/// <summary>
/// This vein can only be generated by replacing the specified entities.
/// </summary>
[DataField]
public HashSet<EntProtoId>? EntityMask;
/// <summary>
/// This vein can only be generated on the specified tiles
/// </summary>
[DataField]
public HashSet<ProtoId<ContentTileDefinition>>? TileMask;
// End Upstream#33105: OreDunGen replacement (Thank you, TheShuEd!)
/// <summary>
/// Entity to spawn.
/// </summary>
[DataField(required: true)]
public EntProtoId Entity;
/// <summary>
/// Maximum amount of group spawns
/// </summary>
[DataField]
public int Count = 10;
/// <summary>
/// Minimum entities to spawn in one group.
/// </summary>
[DataField]
public int MinGroupSize = 1;
/// <summary>
/// Maximum entities to spawn in one group.
/// </summary>
[DataField]
public int MaxGroupSize = 1;
}