Some work

This commit is contained in:
Víctor Aguilera Puerto
2020-08-19 12:23:42 +02:00
parent 259762717b
commit 5190c04944
40 changed files with 586 additions and 52 deletions

View File

@@ -1,5 +1,7 @@
#nullable enable
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using Content.Shared.Physics;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
@@ -62,6 +64,7 @@ namespace Content.Shared.Maps
/// <summary>
/// Helper that returns all entities in a turf.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static IEnumerable<IEntity> GetEntitiesInTile(this TileRef turf, bool approximate = false)
{
var entityManager = IoCManager.Resolve<IEntityManager>();
@@ -69,6 +72,32 @@ namespace Content.Shared.Maps
return entityManager.GetEntitiesIntersecting(turf.MapIndex, GetWorldTileBox(turf), approximate);
}
/// <summary>
/// Helper that returns all entities in a turf.
/// </summary>
public static IEnumerable<IEntity> GetEntitiesInTile(this GridCoordinates coordinates, bool approximate = false)
{
var turf = coordinates.GetTileRef();
if (turf == null)
return Enumerable.Empty<IEntity>();
return GetEntitiesInTile(turf.Value);
}
/// <summary>
/// Helper that returns all entities in a turf.
/// </summary>
public static IEnumerable<IEntity> GetEntitiesInTile(this MapIndices indices, GridId gridId, bool approximate = false)
{
var turf = indices.GetTileRef(gridId);
if (turf == null)
return Enumerable.Empty<IEntity>();
return GetEntitiesInTile(turf.Value);
}
/// <summary>
/// Checks if a turf has something dense on it.
/// </summary>