]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Minor biomes change (#23494)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Thu, 4 Jan 2024 02:04:14 +0000 (13:04 +1100)
committerGitHub <noreply@github.com>
Thu, 4 Jan 2024 02:04:14 +0000 (13:04 +1100)
Maybe fixes void if there's exceptions, idk

Content.Server/Parallax/BiomeSystem.cs

index 881663db56be22f47eaa2ae235e1fecf469ca77f..fd44f24336523bb55ca44ef3b045a5d0ab31053a 100644 (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>();