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:
58
Content.Shared/Utility/EntityCoordinatesExtensions.cs
Normal file
58
Content.Shared/Utility/EntityCoordinatesExtensions.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
#nullable enable
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.Interfaces.Map;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Map;
|
||||
using Vector2 = Robust.Shared.Maths.Vector2;
|
||||
|
||||
namespace Content.Shared.Utility
|
||||
{
|
||||
public static class EntityCoordinatesExtensions
|
||||
{
|
||||
public static EntityCoordinates ToCoordinates(this EntityUid id, Vector2 offset)
|
||||
{
|
||||
return new EntityCoordinates(id, offset);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this EntityUid id, float x, float y)
|
||||
{
|
||||
return new EntityCoordinates(id, x, y);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this EntityUid id)
|
||||
{
|
||||
return ToCoordinates(id, Vector2.Zero);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IEntity entity, Vector2 offset)
|
||||
{
|
||||
return ToCoordinates(entity.Uid, offset);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IEntity entity, float x, float y)
|
||||
{
|
||||
return new EntityCoordinates(entity.Uid, x, y);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IEntity entity)
|
||||
{
|
||||
return ToCoordinates(entity.Uid, Vector2.Zero);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IMapGrid grid, Vector2 offset)
|
||||
{
|
||||
return ToCoordinates(grid.GridEntityId, offset);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IMapGrid grid, float x, float y)
|
||||
{
|
||||
return ToCoordinates(grid.GridEntityId, x, y);
|
||||
}
|
||||
|
||||
public static EntityCoordinates ToCoordinates(this IMapGrid grid)
|
||||
{
|
||||
return ToCoordinates(grid.GridEntityId, Vector2.Zero);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Content.Shared.Maps;
|
||||
using Robust.Shared.Interfaces.Map;
|
||||
using Robust.Shared.Interfaces.Random;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Map;
|
||||
@@ -59,10 +58,8 @@ namespace Content.Shared.Utility
|
||||
/// Gets tiles in random directions from the given one.
|
||||
/// </summary>
|
||||
/// <returns>An enumerable of the adjacent tiles.</returns>
|
||||
public static IEnumerable<TileRef> AdjacentTilesRandom(this GridCoordinates coordinates, bool ignoreSpace = false)
|
||||
public static IEnumerable<TileRef> AdjacentTilesRandom(this EntityCoordinates coordinates, bool ignoreSpace = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
|
||||
foreach (var direction in RandomDirections())
|
||||
{
|
||||
var adjacent = coordinates.Offset(direction).GetTileRef();
|
||||
@@ -81,7 +78,7 @@ namespace Content.Shared.Utility
|
||||
}
|
||||
}
|
||||
|
||||
public static GridCoordinates Offset(this GridCoordinates coordinates, Direction direction)
|
||||
public static EntityCoordinates Offset(this EntityCoordinates coordinates, Direction direction)
|
||||
{
|
||||
return coordinates.Offset(direction.ToVec());
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ using Content.Shared.Physics;
|
||||
using Robust.Shared.GameObjects.Systems;
|
||||
using Robust.Shared.Interfaces.GameObjects;
|
||||
using Robust.Shared.Interfaces.GameObjects.Components;
|
||||
using Robust.Shared.Interfaces.Map;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Map;
|
||||
using static Content.Shared.GameObjects.EntitySystems.SharedInteractionSystem;
|
||||
@@ -59,7 +58,7 @@ namespace Content.Shared.Utility
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this IEntity origin,
|
||||
GridCoordinates other,
|
||||
EntityCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
@@ -133,7 +132,7 @@ namespace Content.Shared.Utility
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this IComponent origin,
|
||||
GridCoordinates other,
|
||||
EntityCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
@@ -210,7 +209,7 @@ namespace Content.Shared.Utility
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this IContainer origin,
|
||||
GridCoordinates other,
|
||||
EntityCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
@@ -239,17 +238,17 @@ namespace Content.Shared.Utility
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GridCoordinates
|
||||
#region EntityCoordinates
|
||||
public static bool InRangeUnobstructed(
|
||||
this GridCoordinates origin,
|
||||
this EntityCoordinates origin,
|
||||
IEntity other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var originPosition = origin.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var originPosition = origin.ToMap(entityManager);
|
||||
var otherPosition = other.Transform.MapPosition;
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask,
|
||||
@@ -257,15 +256,15 @@ namespace Content.Shared.Utility
|
||||
}
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this GridCoordinates origin,
|
||||
this EntityCoordinates origin,
|
||||
IComponent other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var originPosition = origin.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var originPosition = origin.ToMap(entityManager);
|
||||
var otherPosition = other.Owner.Transform.MapPosition;
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask,
|
||||
@@ -273,15 +272,15 @@ namespace Content.Shared.Utility
|
||||
}
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this GridCoordinates origin,
|
||||
this EntityCoordinates origin,
|
||||
IContainer other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var originPosition = origin.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var originPosition = origin.ToMap(entityManager);
|
||||
var otherPosition = other.Owner.Transform.MapPosition;
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask,
|
||||
@@ -289,31 +288,31 @@ namespace Content.Shared.Utility
|
||||
}
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this GridCoordinates origin,
|
||||
GridCoordinates other,
|
||||
this EntityCoordinates origin,
|
||||
EntityCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var originPosition = origin.ToMap(mapManager);
|
||||
var otherPosition = other.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var originPosition = origin.ToMap(entityManager);
|
||||
var otherPosition = other.ToMap(entityManager);
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(originPosition, otherPosition, range, collisionMask,
|
||||
predicate, ignoreInsideBlocker);
|
||||
}
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this GridCoordinates origin,
|
||||
this EntityCoordinates origin,
|
||||
MapCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var originPosition = origin.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var originPosition = origin.ToMap(entityManager);
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(originPosition, other, range, collisionMask, predicate,
|
||||
ignoreInsideBlocker);
|
||||
@@ -365,14 +364,14 @@ namespace Content.Shared.Utility
|
||||
|
||||
public static bool InRangeUnobstructed(
|
||||
this MapCoordinates origin,
|
||||
GridCoordinates other,
|
||||
EntityCoordinates other,
|
||||
float range = InteractionRange,
|
||||
CollisionGroup collisionMask = CollisionGroup.Impassable,
|
||||
Ignored predicate = null,
|
||||
bool ignoreInsideBlocker = false)
|
||||
{
|
||||
var mapManager = IoCManager.Resolve<IMapManager>();
|
||||
var otherPosition = other.ToMap(mapManager);
|
||||
var entityManager = IoCManager.Resolve<IEntityManager>();
|
||||
var otherPosition = other.ToMap(entityManager);
|
||||
|
||||
return SharedInteractionSystem.InRangeUnobstructed(origin, otherPosition, range, collisionMask, predicate,
|
||||
ignoreInsideBlocker);
|
||||
|
||||
Reference in New Issue
Block a user