From 3538ed137a901347cafb0a74a92b4c6aa9ce702c Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Fri, 17 Nov 2023 00:09:10 +1100 Subject: [PATCH] Move RequiresTileSystem to server (#21691) --- .../Tiles/RequiresTileSystem.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) rename {Content.Shared => Content.Server}/Tiles/RequiresTileSystem.cs (56%) diff --git a/Content.Shared/Tiles/RequiresTileSystem.cs b/Content.Server/Tiles/RequiresTileSystem.cs similarity index 56% rename from Content.Shared/Tiles/RequiresTileSystem.cs rename to Content.Server/Tiles/RequiresTileSystem.cs index e34e6ffb18..571065c828 100644 --- a/Content.Shared/Tiles/RequiresTileSystem.cs +++ b/Content.Server/Tiles/RequiresTileSystem.cs @@ -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 _tilesQuery; + public override void Initialize() { base.Initialize(); + _tilesQuery = GetEntityQuery(); SubscribeLocalEvent(OnTileChange); } @@ -16,15 +26,13 @@ public sealed class RequiresTileSystem : EntitySystem if (!TryComp(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(); - while (anchored.MoveNext(out var ent)) { - if (!query.HasComponent(ent.Value)) + if (!_tilesQuery.HasComponent(ent.Value)) continue; QueueDel(ent.Value); -- 2.51.2