Replace every usage of GridCoordinates with EntityCoordinates (#2021)
* Update RobustToolbox * Transition direct type usages * More updates * Fix invalid use of to map * Update RobustToolbox * Fix dropping items * Rename name usages of "GridCoordinates" to "EntityCoordinates" * Revert "Update RobustToolbox" This reverts commit 9f334a17c5908ded0043a63158bb671e4aa3f346. * Revert "Update RobustToolbox" This reverts commit 3a9c8cfa3606fa501aa84407796d2ad920853a09. # Conflicts: # RobustToolbox * Fix cursed IMapGrid method usage. * GridTileLookupTest now uses EntityCoordinates Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com> Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
This commit is contained in:
@@ -45,33 +45,36 @@ namespace Content.Shared.Maps
|
||||
/// <summary>
|
||||
/// Attempts to get the turf at a certain coordinates or null if no such turf is found.
|
||||
/// </summary>
|
||||
public static TileRef? GetTileRef(this GridCoordinates coordinates)
|
||||
public static TileRef? GetTileRef(this EntityCoordinates coordinates, IEntityManager? entityManager = null, IMapManager? mapManager = null)
|
||||
{
|
||||
if (!coordinates.GridID.IsValid())
|
||||
entityManager ??= IoCManager.Resolve<IEntityManager>();
|
||||
|
||||
if (!coordinates.IsValid(entityManager))
|
||||
return null;
|
||||
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
mapManager ??= IoCManager.Resolve<IMapManager>();
|
||||
|
||||
if (!mapManager.TryGetGrid(coordinates.GridID, out var grid))
|
||||
if (!mapManager.TryGetGrid(coordinates.GetGridId(entityManager), out var grid))
|
||||
return null;
|
||||
|
||||
if (!grid.TryGetTileRef(coordinates.ToMapIndices(mapManager), out var tile))
|
||||
if (!grid.TryGetTileRef(coordinates.ToMapIndices(entityManager, mapManager), out var tile))
|
||||
return null;
|
||||
|
||||
return tile;
|
||||
}
|
||||
|
||||
public static bool TryGetTileRef(this GridCoordinates coordinates, [NotNullWhen(true)] out TileRef? turf)
|
||||
public static bool TryGetTileRef(this EntityCoordinates coordinates, [NotNullWhen(true)] out TileRef? turf)
|
||||
{
|
||||
return (turf = coordinates.GetTileRef()) != null;
|
||||
}
|
||||
|
||||
public static bool PryTile(this GridCoordinates coordinates,
|
||||
IMapManager? mapManager = null, ITileDefinitionManager? tileDefinitionManager = null, IEntityManager? entityManager = null)
|
||||
public static bool PryTile(this EntityCoordinates coordinates, IEntityManager? entityManager = null,
|
||||
IMapManager? mapManager = null)
|
||||
{
|
||||
entityManager ??= IoCManager.Resolve<IEntityManager>();
|
||||
mapManager ??= IoCManager.Resolve<IMapManager>();
|
||||
|
||||
return coordinates.ToMapIndices(mapManager).PryTile(coordinates.GridID);
|
||||
return coordinates.ToMapIndices(entityManager, mapManager).PryTile(coordinates.GetGridId(entityManager));
|
||||
}
|
||||
|
||||
public static bool PryTile(this MapIndices indices, GridId gridId,
|
||||
@@ -109,7 +112,7 @@ namespace Content.Shared.Maps
|
||||
var half = mapGrid.TileSize / 2f;
|
||||
|
||||
//Actually spawn the relevant tile item at the right position and give it some random offset.
|
||||
var tileItem = entityManager.SpawnEntity(tileDef.ItemDropPrototypeName, indices.ToGridCoordinates(mapManager, tileRef.GridIndex).Offset(new Vector2(half, half)));
|
||||
var tileItem = entityManager.SpawnEntity(tileDef.ItemDropPrototypeName, indices.ToEntityCoordinates(mapManager, tileRef.GridIndex).Offset(new Vector2(half, half)));
|
||||
tileItem.RandomOffset(0.25f);
|
||||
return true;
|
||||
}
|
||||
@@ -147,9 +150,11 @@ namespace Content.Shared.Maps
|
||||
return false;
|
||||
}
|
||||
|
||||
public static GridCoordinates GridPosition(this TileRef turf)
|
||||
public static EntityCoordinates GridPosition(this TileRef turf, IMapManager? mapManager = null)
|
||||
{
|
||||
return new GridCoordinates(turf.X, turf.Y, turf.GridIndex);
|
||||
mapManager ??= IoCManager.Resolve<IMapManager>();
|
||||
|
||||
return turf.GridIndices.ToEntityCoordinates(mapManager, turf.GridIndex);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user