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:
@@ -1,12 +1,14 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.Server.Decals;
|
||||
using Content.Server.Shuttles.Components;
|
||||
using Content.Server.Shuttles.Events;
|
||||
using Content.Server.Station.Events;
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Decals;
|
||||
using Content.Shared.Ghost;
|
||||
using Content.Shared.Maps;
|
||||
using Content.Shared.Parallax;
|
||||
@@ -956,6 +958,7 @@ public sealed partial class ShuttleSystem
|
||||
var transform = _physics.GetRelativePhysicsTransform((uid, xform), xform.MapUid.Value);
|
||||
var aabbs = new List<Box2>(manager.Fixtures.Count);
|
||||
var tileSet = new List<(Vector2i, Tile)>();
|
||||
TryComp(xform.MapUid.Value, out DecalGridComponent? decalGrid);
|
||||
|
||||
foreach (var fixture in manager.Fixtures.Values)
|
||||
{
|
||||
@@ -969,9 +972,15 @@ public sealed partial class ShuttleSystem
|
||||
aabb = aabb.Enlarged(0.2f);
|
||||
aabbs.Add(aabb);
|
||||
|
||||
// Handle clearing biome stuff as relevant.
|
||||
if (decalGrid != null)
|
||||
{
|
||||
foreach (var decal in _decals.GetDecalsIntersecting(xform.MapUid.Value, aabb))
|
||||
{
|
||||
_decals.RemoveDecal(xform.MapUid.Value, decal.Index, decalGrid);
|
||||
}
|
||||
}
|
||||
|
||||
tileSet.Clear();
|
||||
_biomes.ReserveTiles(xform.MapUid.Value, aabb, tileSet);
|
||||
_lookupEnts.Clear();
|
||||
_immuneEnts.Clear();
|
||||
// TODO: Ideally we'd query first BEFORE moving grid but needs adjustments above.
|
||||
|
||||
Reference in New Issue
Block a user