Move RequiresTileSystem to server (#21691)

This commit is contained in:
metalgearsloth
2023-11-17 00:09:10 +11:00
committed by GitHub
parent 0703415a7b
commit 3538ed137a

View File

@@ -1,13 +1,23 @@
using Content.Shared.Tiles;
using Robust.Shared.Map.Components; using Robust.Shared.Map.Components;
using Robust.Shared.Map.Enumerators; using Robust.Shared.Map.Enumerators;
namespace Content.Shared.Tiles; namespace Content.Server.Tiles;
public sealed class RequiresTileSystem : EntitySystem 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() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
_tilesQuery = GetEntityQuery<RequiresTileComponent>();
SubscribeLocalEvent<TileChangedEvent>(OnTileChange); SubscribeLocalEvent<TileChangedEvent>(OnTileChange);
} }
@@ -16,15 +26,13 @@ public sealed class RequiresTileSystem : EntitySystem
if (!TryComp<MapGridComponent>(ev.Entity, out var grid)) if (!TryComp<MapGridComponent>(ev.Entity, out var grid))
return; return;
var anchored = grid.GetAnchoredEntitiesEnumerator(ev.NewTile.GridIndices); var anchored = _maps.GetAnchoredEntitiesEnumerator(ev.Entity, grid, ev.NewTile.GridIndices);
if (anchored.Equals(AnchoredEntitiesEnumerator.Empty)) if (anchored.Equals(AnchoredEntitiesEnumerator.Empty))
return; return;
var query = GetEntityQuery<RequiresTileComponent>();
while (anchored.MoveNext(out var ent)) while (anchored.MoveNext(out var ent))
{ {
if (!query.HasComponent(ent.Value)) if (!_tilesQuery.HasComponent(ent.Value))
continue; continue;
QueueDel(ent.Value); QueueDel(ent.Value);