Pointing coordinate fixes.

This commit is contained in:
Vera Aguilera Puerto
2021-08-06 18:27:37 +02:00
parent 91efe64a45
commit 6bd6b9789a
4 changed files with 20 additions and 5 deletions

View File

@@ -89,6 +89,7 @@ namespace Content.Server.Pointing.EntitySystems
public bool TryPoint(ICommonSession? session, EntityCoordinates coords, EntityUid uid)
{
var mapCoords = coords.ToMap(EntityManager);
var player = (session as IPlayerSession)?.ContentData()?.Mind?.CurrentEntity;
if (player == null)
{
@@ -115,14 +116,14 @@ namespace Content.Server.Pointing.EntitySystems
if (_actionBlockerSystem.CanChangeDirection(player))
{
var diff = coords.ToMapPos(EntityManager) - player.Transform.MapPosition.Position;
var diff = mapCoords.Position - player.Transform.MapPosition.Position;
if (diff.LengthSquared > 0.01f)
{
player.Transform.LocalRotation = new Angle(diff);
}
}
var arrow = EntityManager.SpawnEntity("pointingarrow", coords);
var arrow = EntityManager.SpawnEntity("pointingarrow", mapCoords);
var layer = (int) VisibilityFlags.Normal;
if (player.TryGetComponent(out VisibilityComponent? playerVisibility))
@@ -160,8 +161,14 @@ namespace Content.Server.Pointing.EntitySystems
}
else
{
var tileRef = _mapManager.GetGrid(coords.GetGridId(EntityManager)).GetTileRef(coords);
var tileDef = _tileDefinitionManager[tileRef.Tile.TypeId];
TileRef? tileRef = null;
if (_mapManager.TryFindGridAt(mapCoords, out var grid))
{
tileRef = grid.GetTileRef(grid.WorldToTile(mapCoords.Position));
}
var tileDef = _tileDefinitionManager[tileRef?.Tile.TypeId ?? 0];
selfMessage = Loc.GetString("pointing-system-point-at-tile", ("tileName", tileDef.DisplayName));