]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Move RequiresTileSystem to server (#21691)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Thu, 16 Nov 2023 13:09:10 +0000 (00:09 +1100)
committerGitHub <noreply@github.com>
Thu, 16 Nov 2023 13:09:10 +0000 (00:09 +1100)
Content.Server/Tiles/RequiresTileSystem.cs [moved from Content.Shared/Tiles/RequiresTileSystem.cs with 56% similarity]

similarity index 56%
rename from Content.Shared/Tiles/RequiresTileSystem.cs
rename to Content.Server/Tiles/RequiresTileSystem.cs
index e34e6ffb18f592fbf13fee27255932a4e860dc8e..571065c82838489dcc8ea3f893cb2a3768694e28 100644 (file)
@@ -1,13 +1,23 @@
+using Content.Shared.Tiles;
 using Robust.Shared.Map.Components;
 using Robust.Shared.Map.Enumerators;
 
-namespace Content.Shared.Tiles;
+namespace Content.Server.Tiles;
 
 public sealed class RequiresTileSystem : EntitySystem
 {
+    /*
+     * Needs to be on server as client can't predict QueueDel.
+     */
+
+    [Dependency] private readonly SharedMapSystem _maps = default!;
+
+    private EntityQuery<RequiresTileComponent> _tilesQuery;
+
     public override void Initialize()
     {
         base.Initialize();
+        _tilesQuery = GetEntityQuery<RequiresTileComponent>();
         SubscribeLocalEvent<TileChangedEvent>(OnTileChange);
     }
 
@@ -16,15 +26,13 @@ public sealed class RequiresTileSystem : EntitySystem
         if (!TryComp<MapGridComponent>(ev.Entity, out var grid))
             return;
 
-        var anchored = grid.GetAnchoredEntitiesEnumerator(ev.NewTile.GridIndices);
+        var anchored = _maps.GetAnchoredEntitiesEnumerator(ev.Entity, grid, ev.NewTile.GridIndices);
         if (anchored.Equals(AnchoredEntitiesEnumerator.Empty))
             return;
 
-        var query = GetEntityQuery<RequiresTileComponent>();
-
         while (anchored.MoveNext(out var ent))
         {
-            if (!query.HasComponent(ent.Value))
+            if (!_tilesQuery.HasComponent(ent.Value))
                 continue;
 
             QueueDel(ent.Value);