Refactor InRangeUnobstructed and add extension methods (#1925)
* Sort out InRangeUnobstructed and add extension methods * Rename client RangeChecks to RangeExtensions * Add container extension methods and test * Add missing component methods Component to container Grid coordinates to container Map coordinates to container Local player to container * Actually use the field * Merge fixes * Add popup argument to local player extension methods * Reduce code repetition for client range extensions
This commit is contained in:
@@ -142,8 +142,7 @@ namespace Content.Client.GameObjects.EntitySystems
|
||||
if (_entityManager.TryGetEntity(args.EntityUid, out var entity))
|
||||
{
|
||||
// check if the entity is reachable
|
||||
if (_interactionSystem.InRangeUnobstructed(dragger.Transform.MapPosition,
|
||||
entity.Transform.MapPosition, ignoredEnt: dragger) == false)
|
||||
if (!_interactionSystem.InRangeUnobstructed(dragger, entity))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -193,8 +192,8 @@ namespace Content.Client.GameObjects.EntitySystems
|
||||
// tell the server we are dropping if we are over a valid drop target in range.
|
||||
// We don't use args.EntityUid here because drag interactions generally should
|
||||
// work even if there's something "on top" of the drop target
|
||||
if (_interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition,
|
||||
args.Coordinates.ToMap(_mapManager), ignoredEnt: _dragger, ignoreInsideBlocker: true) == false)
|
||||
if (!_interactionSystem.InRangeUnobstructed(_dragger,
|
||||
args.Coordinates, ignoreInsideBlocker: true))
|
||||
{
|
||||
CancelDrag(false, null);
|
||||
return false;
|
||||
@@ -288,8 +287,7 @@ namespace Content.Client.GameObjects.EntitySystems
|
||||
if (anyValidDraggable)
|
||||
{
|
||||
// highlight depending on whether its in or out of range
|
||||
var inRange = _interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition,
|
||||
pvsEntity.Transform.MapPosition, ignoredEnt: _dragger);
|
||||
var inRange = _interactionSystem.InRangeUnobstructed(_dragger, pvsEntity);
|
||||
inRangeSprite.PostShader = inRange ? _dropTargetInRangeShader : _dropTargetOutOfRangeShader;
|
||||
inRangeSprite.RenderOrder = EntityManager.CurrentTick.Value;
|
||||
highlightedSprites.Add(inRangeSprite);
|
||||
@@ -377,8 +375,7 @@ namespace Content.Client.GameObjects.EntitySystems
|
||||
return;
|
||||
}
|
||||
// still in range of the thing we are dragging?
|
||||
if (_interactionSystem.InRangeUnobstructed(_dragger.Transform.MapPosition,
|
||||
_draggedEntity.Transform.MapPosition, ignoredEnt: _dragger) == false)
|
||||
if (!_interactionSystem.InRangeUnobstructed(_dragger, _draggedEntity))
|
||||
{
|
||||
CancelDrag(false, null);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user