muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
363
LLib/LLib.ImGui/MapTextureService.cs
Normal file
363
LLib/LLib.ImGui/MapTextureService.cs
Normal file
|
|
@ -0,0 +1,363 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Interface.Textures;
|
||||
using Dalamud.Interface.Textures.TextureWraps;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace LLib.ImGui;
|
||||
|
||||
public sealed class MapTextureService
|
||||
{
|
||||
private readonly ITextureProvider _textureProvider;
|
||||
|
||||
private readonly IDataManager _dataManager;
|
||||
|
||||
private readonly ILogger<MapTextureService> _logger;
|
||||
|
||||
private uint _loadedTerritoryType;
|
||||
|
||||
private ISharedImmediateTexture? _resolvedTexture;
|
||||
|
||||
private List<ISharedImmediateTexture>? _candidateTextures;
|
||||
|
||||
private bool _failed;
|
||||
|
||||
private long _retryAtMs;
|
||||
|
||||
private int _searchFrames;
|
||||
|
||||
private const int SearchTimeout = 120;
|
||||
|
||||
private const long RetryDelayMs = 30000L;
|
||||
|
||||
private ushort _sizeFactor;
|
||||
|
||||
private short _offsetX;
|
||||
|
||||
private short _offsetY;
|
||||
|
||||
public bool IsLoaded => _resolvedTexture != null;
|
||||
|
||||
public bool IsSearching => _candidateTextures != null;
|
||||
|
||||
public ushort SizeFactor => _sizeFactor;
|
||||
|
||||
public MapTextureService(ITextureProvider textureProvider, IDataManager dataManager, ILogger<MapTextureService> logger)
|
||||
{
|
||||
_textureProvider = textureProvider;
|
||||
_dataManager = dataManager;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool LoadForTerritory(uint territoryType)
|
||||
{
|
||||
int num = ((territoryType != _loadedTerritoryType) ? (-703602804) : (-703602806));
|
||||
List<string> list2 = default(List<string>);
|
||||
string value = default(string);
|
||||
Map? map = default(Map?);
|
||||
string[] array = default(string[]);
|
||||
string text = default(string);
|
||||
TerritoryType? rowOrDefault = default(TerritoryType?);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -703602814;
|
||||
int num4 = num2;
|
||||
Map? obj;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 0:
|
||||
return false;
|
||||
case 3:
|
||||
num = ((_200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() >= _retryAtMs) ? (-703602796) : (-703602814));
|
||||
continue;
|
||||
case 16:
|
||||
num = ((_candidateTextures == null) ? (-703602797) : (-703602813));
|
||||
continue;
|
||||
case 21:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 1:
|
||||
PollCandidates();
|
||||
return _resolvedTexture != null;
|
||||
case 7:
|
||||
num = ((!_failed) ? (-703602799) : (-703602816));
|
||||
continue;
|
||||
case 15:
|
||||
{
|
||||
List<string> list = list2;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 2);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(674220722));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-27764842));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(582629916));
|
||||
list.Add(defaultInterpolatedStringHandler.ToStringAndClear());
|
||||
num = -703602795;
|
||||
continue;
|
||||
}
|
||||
case 23:
|
||||
_206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1609496745), new object[2]
|
||||
{
|
||||
territoryType,
|
||||
_200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1645706687), (IEnumerable<string>)list2)
|
||||
});
|
||||
_candidateTextures = list2.Select((string p) => _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(_textureProvider, p)).ToList();
|
||||
PollCandidates();
|
||||
return _resolvedTexture != null;
|
||||
case 14:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602799) : (-703602811));
|
||||
continue;
|
||||
case 17:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602796) : (-703602815));
|
||||
continue;
|
||||
case 20:
|
||||
num = ((map.Value.RowId != 0) ? (-703602808) : (-703602809));
|
||||
continue;
|
||||
case 19:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602797) : (-703602798));
|
||||
continue;
|
||||
case 13:
|
||||
return true;
|
||||
case 9:
|
||||
obj = null;
|
||||
break;
|
||||
case 4:
|
||||
num = -703602806;
|
||||
continue;
|
||||
case 2:
|
||||
return false;
|
||||
case 18:
|
||||
array = _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(text, '/', StringSplitOptions.None);
|
||||
num = ((array.Length == 2) ? (-703602807) : (-703602793));
|
||||
continue;
|
||||
case 5:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 11:
|
||||
{
|
||||
value = array[0];
|
||||
string text2 = array[1];
|
||||
List<string> list3 = new List<string>();
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(14, 3);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1333505234));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(text);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-102430846));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(text2);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-25096421));
|
||||
list3.Add(defaultInterpolatedStringHandler2.ToStringAndClear());
|
||||
list2 = list3;
|
||||
num = ((!_206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(text2, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1596345032))) ? (-703602795) : (-703602803));
|
||||
continue;
|
||||
}
|
||||
case 6:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 8:
|
||||
num = ((_resolvedTexture == null) ? (-703602804) : (-703602801));
|
||||
continue;
|
||||
case 22:
|
||||
_resolvedTexture = null;
|
||||
_candidateTextures = null;
|
||||
_failed = false;
|
||||
_retryAtMs = 0L;
|
||||
_loadedTerritoryType = territoryType;
|
||||
_searchFrames = 0;
|
||||
rowOrDefault = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryType);
|
||||
num = (rowOrDefault.HasValue ? (-703602802) : (-703602805));
|
||||
continue;
|
||||
case 10:
|
||||
_sizeFactor = map.Value.SizeFactor;
|
||||
_offsetX = map.Value.OffsetX;
|
||||
_offsetY = map.Value.OffsetY;
|
||||
text = map.Value.Id.ExtractText();
|
||||
num = ((!_206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(text)) ? (-703602800) : (-703602812));
|
||||
continue;
|
||||
case 12:
|
||||
obj = rowOrDefault.GetValueOrDefault().Map.ValueNullable;
|
||||
break;
|
||||
}
|
||||
map = obj;
|
||||
num = ((!map.HasValue) ? (-703602809) : (-703602794));
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void PollCandidates()
|
||||
{
|
||||
int num = ((_candidateTextures != null) ? 1719406812 : 1719406813);
|
||||
ISharedImmediateTexture current = default(ISharedImmediateTexture);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1719406812;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
goto IL_004b;
|
||||
case 1:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
using (List<ISharedImmediateTexture>.Enumerator enumerator = _candidateTextures.GetEnumerator())
|
||||
{
|
||||
num = -2142994811;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = -2142994811;
|
||||
num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (enumerator.MoveNext() ? (-2142994815) : (-2142994809));
|
||||
break;
|
||||
case 4:
|
||||
current = enumerator.Current;
|
||||
num = ((_202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(current, (IDalamudTextureWrap)null) == null) ? (-2142994811) : (-2142994812));
|
||||
break;
|
||||
case 3:
|
||||
num = -2142994811;
|
||||
break;
|
||||
case 1:
|
||||
_resolvedTexture = current;
|
||||
_candidateTextures = null;
|
||||
return;
|
||||
case 2:
|
||||
goto end_IL_006e;
|
||||
}
|
||||
continue;
|
||||
end_IL_006e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
int searchFrames = _searchFrames;
|
||||
num3 = 1;
|
||||
num4 = searchFrames;
|
||||
int num8 = num4 ^ num3;
|
||||
int num9 = num4 & num3;
|
||||
_searchFrames = num8 + (num9 + num9);
|
||||
num = ((_searchFrames < 120) ? 613954225 : 613954226);
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = 613954224;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 613954226;
|
||||
break;
|
||||
case 2:
|
||||
_206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1519773533), new object[2] { _loadedTerritoryType, 30L });
|
||||
_candidateTextures = null;
|
||||
_retryAtMs = _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() + 30000;
|
||||
num = 613954225;
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_004b:
|
||||
num = 1719406813;
|
||||
}
|
||||
}
|
||||
|
||||
public IDalamudTextureWrap? GetTextureWrap()
|
||||
{
|
||||
ISharedImmediateTexture? resolvedTexture = _resolvedTexture;
|
||||
if (resolvedTexture == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(resolvedTexture, (IDalamudTextureWrap)null);
|
||||
}
|
||||
|
||||
public Vector2 WorldToUV(float worldX, float worldZ)
|
||||
{
|
||||
float num = (float)(int)_sizeFactor / 100f;
|
||||
float x = (worldX * num + (float)_offsetX * num + 1024f) / 2048f;
|
||||
float y = (worldZ * num + (float)_offsetY * num + 1024f) / 2048f;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
public Vector2 UVToWorld(float u, float v)
|
||||
{
|
||||
float num = (float)(int)_sizeFactor / 100f;
|
||||
float x = (u * 2048f - 1024f - (float)_offsetX * num) / num;
|
||||
float y = (v * 2048f - 1024f - (float)_offsetY * num) / num;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
public Vector2 WorldToScreen(float worldX, float worldZ, Vector2 imagePos, Vector2 imageSize)
|
||||
{
|
||||
Vector2 vector = WorldToUV(worldX, worldZ);
|
||||
return imagePos + vector * imageSize;
|
||||
}
|
||||
|
||||
public Vector2 ScreenToWorld(Vector2 screenPos, Vector2 imagePos, Vector2 imageSize)
|
||||
{
|
||||
Vector2 vector = (screenPos - imagePos) / imageSize;
|
||||
return UVToWorld(vector.X, vector.Y);
|
||||
}
|
||||
|
||||
static long _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static bool _206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(string P_0)
|
||||
{
|
||||
return string.IsNullOrEmpty(P_0);
|
||||
}
|
||||
|
||||
static string[] _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(string P_0, char P_1, StringSplitOptions P_2)
|
||||
{
|
||||
return P_0.Split(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 != P_1;
|
||||
}
|
||||
|
||||
static string _200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(string P_0, IEnumerable<string> P_1)
|
||||
{
|
||||
return string.Join(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static IDalamudTextureWrap _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(ISharedImmediateTexture P_0, IDalamudTextureWrap P_1)
|
||||
{
|
||||
return P_0.GetWrapOrDefault(P_1);
|
||||
}
|
||||
|
||||
static void _206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static ISharedImmediateTexture _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(ITextureProvider P_0, string P_1)
|
||||
{
|
||||
return P_0.GetFromGame(P_1);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue