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:
@@ -18,6 +18,7 @@ public sealed partial class DungeonJob
|
||||
// Grab all of the room bounds
|
||||
// Then, work out connections between them
|
||||
var roomBorders = new Dictionary<DungeonRoom, HashSet<Vector2i>>(dungeon.Rooms.Count);
|
||||
var flank = gen.Flank;
|
||||
|
||||
foreach (var room in dungeon.Rooms)
|
||||
{
|
||||
@@ -107,18 +108,30 @@ public sealed partial class DungeonJob
|
||||
continue;
|
||||
|
||||
width--;
|
||||
_maps.SetTile(_gridUid, _grid, node, _tile.GetVariantTile((ContentTileDefinition) tileDef, random));
|
||||
var tileVariant = _tile.GetVariantTile((ContentTileDefinition)tileDef, random);
|
||||
_maps.SetTile(_gridUid, _grid, node, tileVariant);
|
||||
AddLoadedTile(node, tileVariant);
|
||||
|
||||
if (flankContents != null && nodeDistances.Count - i <= 2)
|
||||
{
|
||||
_entManager.SpawnEntitiesAttachedTo(gridPos, _entTable.GetSpawns(flankContents, random));
|
||||
var uids = _entManager.SpawnEntitiesAttachedTo(gridPos, _entTable.GetSpawns(flankContents, random));
|
||||
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
AddLoadedEntity(node, uid);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Iterate neighbors and check for blockers, if so bulldoze
|
||||
ClearDoor(dungeon, _grid, node);
|
||||
|
||||
_entManager.SpawnEntitiesAttachedTo(gridPos, _entTable.GetSpawns(contents, random));
|
||||
var uids = _entManager.SpawnEntitiesAttachedTo(gridPos, _entTable.GetSpawns(contents, random));
|
||||
|
||||
foreach (var uid in uids)
|
||||
{
|
||||
AddLoadedEntity(node, uid);
|
||||
}
|
||||
}
|
||||
|
||||
if (width == 0)
|
||||
|
||||
Reference in New Issue
Block a user