using System.Collections.Generic; using System.Runtime.CompilerServices; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Map; using Robust.Shared.Maths; namespace Content.Server.Coordinates.Helpers { public static class GridTileLookupHelpers { /// /// Helper that returns all entities in a turf very fast. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable GetEntitiesInTileFast(this TileRef turf, GridTileLookupSystem? gridTileLookup = null) { gridTileLookup ??= EntitySystem.Get(); return gridTileLookup.GetEntitiesIntersecting(turf.GridIndex, turf.GridIndices); } /// /// Helper that returns all entities in a turf. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static IEnumerable GetEntitiesInTileFast(this Vector2i indices, GridId gridId, GridTileLookupSystem? gridTileLookup = null) { gridTileLookup ??= EntitySystem.Get(); return gridTileLookup.GetEntitiesIntersecting(gridId, indices); } } }