refactor: simplify coordinate conversion

This commit is contained in:
Anna 2021-03-21 17:26:02 -04:00
parent 5d7091cfb9
commit 6109a95d06
1 changed files with 3 additions and 21 deletions

View File

@ -20,35 +20,17 @@ namespace Tourist {
return;
}
var x = ToMapCoordinate(loc!.X, map!.SizeFactor);
var y = ToMapCoordinate(loc.Z, map.SizeFactor);
var mapLink = new MapLinkPayload(
@interface.Data,
terr.RowId,
map.RowId,
ConvertMapCoordinateToRawPosition(x, map.SizeFactor),
ConvertMapCoordinateToRawPosition(y, map.SizeFactor)
map!.RowId,
(int) (loc!.X * 1_000f),
(int) (loc.Z * 1_000f)
);
@interface.Framework.Gui.OpenMapWithMapLink(mapLink);
}
private static int ConvertMapCoordinateToRawPosition(float pos, float scale) {
var c = scale / 100.0f;
var scaledPos = ((pos - 1.0f) * c / 41.0f * 2048.0f - 1024.0f) / c;
scaledPos *= 1000.0f;
return (int) scaledPos;
}
private static float ToMapCoordinate(float val, float scale) {
var c = scale / 100f;
val *= c;
return 41f / c * ((val + 1024f) / 2048f) + 1;
}
private static DateTimeOffset EorzeaTime(DateTimeOffset? at = null) {
at ??= DateTimeOffset.UtcNow;
return DateTimeOffset.FromUnixTimeMilliseconds(at.Value.ToUnixTimeMilliseconds() * 144 / 7);