Pointing coordinate fixes.
This commit is contained in:
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user