Minor biomes change (#23494)

Maybe fixes void if there's exceptions, idk
This commit is contained in:
metalgearsloth
2024-01-04 13:04:14 +11:00
committed by GitHub
parent 9c522c8b19
commit 002d749c7e

View File

@@ -57,6 +57,8 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
private const float DefaultLoadRange = 16f;
private float _loadRange = DefaultLoadRange;
private List<(Vector2i, Tile)> _tiles = new();
private ObjectPool<HashSet<Vector2i>> _tilePool =
new DefaultObjectPool<HashSet<Vector2i>>(new SetPolicy<Vector2i>(), 256);
@@ -582,7 +584,6 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
component.ForcedMarkerLayers.Clear();
var active = _activeChunks[component];
List<(Vector2i, Tile)>? tiles = null;
foreach (var chunk in active)
{
@@ -591,9 +592,8 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
if (!component.LoadedChunks.Add(chunk))
continue;
tiles ??= new List<(Vector2i, Tile)>(ChunkSize * ChunkSize);
// Load NOW!
LoadChunk(component, gridUid, grid, chunk, seed, tiles);
LoadChunk(component, gridUid, grid, chunk, seed);
}
}
@@ -665,11 +665,11 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
EntityUid gridUid,
MapGridComponent grid,
Vector2i chunk,
int seed,
List<(Vector2i, Tile)> tiles)
int seed)
{
component.ModifiedTiles.TryGetValue(chunk, out var modified);
modified ??= _tilePool.Get();
_tiles.Clear();
// Set tiles first
for (var x = 0; x < ChunkSize; x++)
@@ -686,15 +686,15 @@ public sealed partial class BiomeSystem : SharedBiomeSystem
if (_mapSystem.TryGetTileRef(gridUid, grid, indices, out var tileRef) && !tileRef.Tile.IsEmpty)
continue;
if (!TryGetBiomeTile(indices, component.Layers, seed, grid, out var biomeTile) || biomeTile.Value == tileRef.Tile)
if (!TryGetBiomeTile(indices, component.Layers, seed, grid, out var biomeTile))
continue;
tiles.Add((indices, biomeTile.Value));
_tiles.Add((indices, biomeTile.Value));
}
}
_mapSystem.SetTiles(gridUid, grid, tiles);
tiles.Clear();
_mapSystem.SetTiles(gridUid, grid, _tiles);
_tiles.Clear();
// Now do entities
var loadedEntities = new Dictionary<EntityUid, Vector2i>();