using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Robust.Shared.GameObjects; using Robust.Shared.Maths; using Robust.Shared.Timing; namespace Robust.Shared.Map { /// internal interface IMapManagerInternal : IMapManager { IGameTiming GameTiming { get; } IEntityManager EntityManager { get; } void OnComponentRemoved(MapGridComponent comp); void ChunkRemoved(GridId gridId, MapChunk chunk); /// /// Specific version of TryFindGridAt that allows re-usable data structures to be passed in for optimisation reasons. /// bool TryFindGridAt( MapId mapId, Vector2 worldPos, List grids, EntityQuery xformQuery, EntityQuery bodyQuery, [NotNullWhen(true)] out IMapGrid? grid); /// /// Specific version of FindGridsIntersecting that allows re-usable data structures to be passed in for optimisation reasons. /// IEnumerable FindGridsIntersecting( MapId mapId, Box2 worldAabb, List grids, EntityQuery xformQuery, EntityQuery physicsQuery, bool approx = false); /// /// Raises the OnTileChanged event. /// /// A reference to the new tile. /// The old tile that got replaced. void RaiseOnTileChanged(TileRef tileRef, Tile oldTile); bool TryGetGridComp(GridId id, [MaybeNullWhen(false)]out IMapGridComponent comp); bool TryGetGridEuid(GridId id, [MaybeNullWhen(false)]out EntityUid euid); void TrueGridDelete(MapGrid grid); void TrueDeleteMap(MapId mapId); GridId GenerateGridId(GridId? forcedGridId); void OnGridAllocated(MapGridComponent gridComponent, MapGrid mapGrid); } }