using System.Collections.Generic; using Robust.Shared.Map.Components; using Robust.Shared.Maths; namespace Robust.Shared.GameObjects; public sealed partial class EntityLookupSystem { /* * Local AABB / Box2Rotated queries for broadphase entities. */ /// /// Gets the entities intersecting the specified broadphase entity using a local AABB. /// public void GetLocalEntitiesIntersecting(EntityUid gridUid, Vector2i localTile, HashSet intersecting, float enlargement = TileEnlargementRadius, LookupFlags flags = DefaultFlags, MapGridComponent? gridComp = null) { ushort tileSize = 1; if (_gridQuery.Resolve(gridUid, ref gridComp)) { tileSize = gridComp.TileSize; } var localAABB = GetLocalBounds(localTile, tileSize); localAABB = localAABB.Enlarged(TileEnlargementRadius); AddLocalEntitiesIntersecting(gridUid, intersecting, localAABB, flags); AddContained(intersecting, flags); } /// /// Gets the entities intersecting the specified broadphase entity using a local AABB. /// public void GetLocalEntitiesIntersecting(EntityUid gridUid, Box2 localAABB, HashSet intersecting, LookupFlags flags = DefaultFlags) { AddLocalEntitiesIntersecting(gridUid, intersecting, localAABB, flags); AddContained(intersecting, flags); } /// /// Gets the entities intersecting the specified broadphase entity using a local Box2Rotated. /// public void GetLocalEntitiesIntersecting(EntityUid gridUid, Box2Rotated localBounds, HashSet intersecting, LookupFlags flags = DefaultFlags) { AddLocalEntitiesIntersecting(gridUid, intersecting, localBounds, flags); AddContained(intersecting, flags); } }