Biome rework (#37735)
* DungeonData rework Back to fields, serializes better, just make new layers dumby. * wawawewa * Fix this * Fixes * Port the work over * wawawewa * zoom * Kinda workin * Adjust wawa * Unloading work * Ore + entitytable fixes Iterate every dungeon not just last. * Big shot * wawawewa * Fixes * true * Fixes # Conflicts: # Content.Server/Procedural/DungeonJob/DungeonJob.cs * wawawewa * Fixes * Fix * Lot of work * wawawewa * Fixing * eh? * a * Fix a heap of stuff * Better ignored check * Reserve tile changes * biome * changes * wawawewa * Fixes & snow * Shadow fixes * wawawewa * smol * Add layer API * More work * wawawewa * Preloads and running again * wawawewa * Modified * Replacements and command * Runtime support * werk * Fix expeds + dungeon alltiles * reh --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
This commit is contained in:
24
Content.Shared/Procedural/DungeonGenerators/ChunkDunGen.cs
Normal file
24
Content.Shared/Procedural/DungeonGenerators/ChunkDunGen.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Robust.Shared.Noise;
|
||||
|
||||
namespace Content.Shared.Procedural.DungeonGenerators;
|
||||
|
||||
/// <summary>
|
||||
/// Turns a chunked area into a dungeon for layer purposes. Assumes the position is the BL origin.
|
||||
/// </summary>
|
||||
public sealed partial class ChunkDunGen : IDunGenLayer
|
||||
{
|
||||
[DataField]
|
||||
public int Size = 16;
|
||||
|
||||
/// <summary>
|
||||
/// Noise to apply for each tile conditionally.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public FastNoiseLite? Noise;
|
||||
|
||||
/// <summary>
|
||||
/// Threshold for noise. Does nothing if <see cref="Noise"/> is null.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float Threshold = -1f;
|
||||
}
|
||||
@@ -10,4 +10,10 @@ public sealed partial class ExteriorDunGen : IDunGenLayer
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public ProtoId<DungeonConfigPrototype> Proto;
|
||||
|
||||
/// <summary>
|
||||
/// Minimum and maximum penetration.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public Vector2i Penetration = new Vector2i(5, 15);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,12 @@ public sealed partial class PrototypeDunGen : IDunGenLayer
|
||||
[DataField]
|
||||
public DungeonInheritance InheritDungeons = DungeonInheritance.None;
|
||||
|
||||
/// <summary>
|
||||
/// Should we pass in the current level's reserved tiles to the prototype.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public ReservedInheritance InheritReserved = ReservedInheritance.All;
|
||||
|
||||
[DataField(required: true)]
|
||||
public ProtoId<DungeonConfigPrototype> Proto;
|
||||
}
|
||||
@@ -35,3 +41,16 @@ public enum DungeonInheritance : byte
|
||||
/// </summary>
|
||||
All,
|
||||
}
|
||||
|
||||
public enum ReservedInheritance : byte
|
||||
{
|
||||
/// <summary>
|
||||
/// Don't inherit any reserved tiles.
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Inherit reserved tiles,
|
||||
/// </summary>
|
||||
All,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user