]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Remove uses of `TransformComponent.ChildEntities` (#22442)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Sat, 16 Dec 2023 16:09:50 +0000 (11:09 -0500)
committerGitHub <noreply@github.com>
Sat, 16 Dec 2023 16:09:50 +0000 (03:09 +1100)
* Make output of ChildEnumerator non-nullable

* Remove uses of ChildEntities

* poke tests

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
12 files changed:
Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs
Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs
Content.Server/Cargo/Systems/PricingSystem.cs
Content.Server/Construction/Commands/FixRotationsCommand.cs
Content.Server/Construction/Commands/TileWallsCommand.cs
Content.Server/Maps/ResaveCommand.cs
Content.Server/Medical/SuitSensors/SuitSensorSystem.cs
Content.Server/NPC/Systems/NPCUtilitySystem.cs
Content.Server/Shuttles/Systems/ArrivalsSystem.cs
Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs
Content.Server/Temperature/Systems/TemperatureSystem.cs

index 8d754d1b3af899d5ed48b5b7fcd5083c11155935..4b64195e939d517e87dd1e9a812cf3ddc0a2f6a9 100644 (file)
@@ -772,18 +772,20 @@ public sealed partial class AdminVerbSystem
         {
             foreach (var grid in station.Grids)
             {
-                foreach (var ent in Transform(grid).ChildEntities)
+                var enumerator = Transform(grid).ChildEnumerator;
+                while (enumerator.MoveNext(out var ent))
                 {
                     yield return ent;
                 }
             }
         }
-
         else if (HasComp<MapComponent>(target))
         {
-            foreach (var possibleGrid in Transform(target).ChildEntities)
+            var enumerator = Transform(target).ChildEnumerator;
+            while (enumerator.MoveNext(out var possibleGrid))
             {
-                foreach (var ent in Transform(possibleGrid).ChildEntities)
+                var enumerator2 = Transform(possibleGrid).ChildEnumerator;
+                while (enumerator2.MoveNext(out var ent))
                 {
                     yield return ent;
                 }
@@ -791,7 +793,8 @@ public sealed partial class AdminVerbSystem
         }
         else
         {
-            foreach (var ent in Transform(target).ChildEntities)
+            var enumerator = Transform(target).ChildEnumerator;
+            while (enumerator.MoveNext(out var ent))
             {
                 yield return ent;
             }
index 80e7cf71e092cecc6b9f66bdd1c672185f15fe62..f1a7f62051c2d5dc2055402089bf84e6c6aa6e47 100644 (file)
@@ -292,7 +292,7 @@ public sealed partial class CargoSystem
         var children = xform.ChildEnumerator;
         while (children.MoveNext(out var child))
         {
-            if (!CanSell(child.Value, _xformQuery.GetComponent(child.Value)))
+            if (!CanSell(child, _xformQuery.GetComponent(child)))
                 return false;
         }
 
index 509e99a28aacdbf66f13d3d8fdf0353be5bc6604..5bbe1e5a6d21e1c383a1a6707498d6e3798e2214 100644 (file)
@@ -342,8 +342,8 @@ public sealed class PricingSystem : EntitySystem
     {
         var xform = Transform(grid);
         var price = 0.0;
-
-        foreach (var child in xform.ChildEntities)
+        var enumerator = xform.ChildEnumerator;
+        while (enumerator.MoveNext(out var child))
         {
             if (predicate is null || predicate(child))
             {
index bdbfaf170d476cc676007adc3b44f6008dbdb8a0..9c99035573ab818cdb95fa5525eb8cd7ab9466e3 100644 (file)
@@ -64,7 +64,9 @@ namespace Content.Server.Construction.Commands
             var changed = 0;
             var tagSystem = _entManager.EntitySysManager.GetEntitySystem<TagSystem>();
 
-            foreach (var child in xformQuery.GetComponent(gridId.Value).ChildEntities)
+
+            var enumerator = xformQuery.GetComponent(gridId.Value).ChildEnumerator;
+            while (enumerator.MoveNext(out var child))
             {
                 if (!_entManager.EntityExists(child))
                 {
index 731d4da7f8442fa8ee02d874c059ce743ba52ce2..14d16dfb983b86d3c313d5eacbd237d39d85b7cb 100644 (file)
@@ -72,7 +72,8 @@ namespace Content.Server.Construction.Commands
             var underplating = _tileDefManager[TilePrototypeId];
             var underplatingTile = new Tile(underplating.TileId);
             var changed = 0;
-            foreach (var child in _entManager.GetComponent<TransformComponent>(gridId.Value).ChildEntities)
+            var enumerator = _entManager.GetComponent<TransformComponent>(gridId.Value).ChildEnumerator;
+            while (enumerator.MoveNext(out var child))
             {
                 if (!_entManager.EntityExists(child))
                 {
index 1b2e48294f16b7fd046b1e3f8c66a3b78f97d46a..a966070d3e4d5ee14500238a50e585d304e02ac8 100644 (file)
@@ -46,10 +46,9 @@ public sealed class ResaveCommand : LocalizedCommands
             {
                 loader.SaveMap(mapId, fn.ToString());
             }
-            else
+            else if (mapXform.ChildEnumerator.MoveNext(out var child))
             {
-
-                loader.Save(mapXform.ChildEntities.First(), fn.ToString());
+                loader.Save(child, fn.ToString());
             }
 
             _mapManager.DeleteMap(mapId);
index 4629a1bf551c96fb909ae50cc1594a1d94dbee55..bb662a15ea22fec17cb47f87abbb5af66a262640 100644 (file)
@@ -137,7 +137,7 @@ public sealed class SuitSensorSystem : EntitySystem
                 sensor.StationId = stationUid;
             }
 
-            RecursiveSensor(child.Value, stationUid, sensorQuery, xformQuery);
+            RecursiveSensor(child, stationUid, sensorQuery, xformQuery);
         }
     }
 
index 375d2b3c1936ad962c423f04c921836e2ddbe08a..641b8c20e10765caffa074c2c7a4b467638d51b6 100644 (file)
@@ -454,7 +454,7 @@ public sealed class NPCUtilitySystem : EntitySystem
 
         while (enumerator.MoveNext(out var child))
         {
-            RecursiveAdd(child.Value, entities);
+            RecursiveAdd(child, entities);
         }
     }
 
index 79d26ea14fad51ed7cc41419df6ff7ac9afe656b..7ff0e0b2977048adee65e6914cdca9ac1b2b4a0e 100644 (file)
@@ -236,10 +236,9 @@ public sealed class ArrivalsSystem : EntitySystem
         }
 
         var children = xform.ChildEnumerator;
-
         while (children.MoveNext(out var child))
         {
-            DumpChildren(child.Value, ref args, pendingEntQuery, arrivalsBlacklistQuery, mobQuery, xformQuery);
+            DumpChildren(child, ref args, pendingEntQuery, arrivalsBlacklistQuery, mobQuery, xformQuery);
         }
     }
 
index 15f1da5c28ba2a35cb174f9f66a908e9aef1a486..763e89e4f8173331c9e0f61b6bf6970e418498b6 100644 (file)
@@ -501,10 +501,10 @@ public sealed partial class ShuttleSystem
         var childEnumerator = xform.ChildEnumerator;
         while (childEnumerator.MoveNext(out var child))
         {
-            if (!_buckleQuery.TryGetComponent(child.Value, out var buckle) || buckle.Buckled)
+            if (!_buckleQuery.TryGetComponent(child, out var buckle) || buckle.Buckled)
                 continue;
 
-            toKnock.Add(child.Value);
+            toKnock.Add(child);
         }
     }
 
index 854ce538dc7a057376750e8a846f1ac76a155054..f817878c2ef02ac9a1871828ff28cc8cde6c4500 100644 (file)
@@ -148,7 +148,7 @@ public sealed partial class ShuttleSystem
             if (!dockQuery.TryGetComponent(child, out var dock))
                 continue;
 
-            return (child.Value, dock);
+            return (child, dock);
         }
 
         return null;
index 2ab9ce74c661a2b076345877502444df228622dd..9f7057d9b61f5d5f81998504132acc1c3a28b11f 100644 (file)
@@ -341,7 +341,8 @@ public sealed class TemperatureSystem : EntitySystem
     {
         RecalculateAndApplyParentThresholds(root, temperatureQuery, transformQuery, tempThresholdsQuery);
 
-        foreach (var child in Transform(root).ChildEntities)
+        var enumerator = Transform(root).ChildEnumerator;
+        while (enumerator.MoveNext(out var child))
         {
             RecursiveThresholdUpdate(child, temperatureQuery, transformQuery, tempThresholdsQuery);
         }