[+] Load jacket with higher resolution

pull/45/head
Clansty 2024-06-19 21:12:29 +08:00
parent 0f701ad2d3
commit 8b72214780
1 changed files with 15 additions and 10 deletions

View File

@ -15,10 +15,10 @@ namespace AquaMai.UX
public static IEnumerable<MethodBase> TargetMethods() public static IEnumerable<MethodBase> TargetMethods()
{ {
var AM = typeof(AssetManager); var AM = typeof(AssetManager);
return new[] { AM.GetMethod("GetJacketThumbTexture2D", new []{typeof(string)}), AM.GetMethod("GetJacketTexture2D", new []{typeof(string)}) }; return new[] { AM.GetMethod("GetJacketThumbTexture2D", new[] { typeof(string) }), AM.GetMethod("GetJacketTexture2D", new[] { typeof(string) }) };
} }
public static bool Prefix(string filename, ref Texture2D __result) public static bool Prefix(string filename, ref Texture2D __result, AssetManager __instance)
{ {
var matches = Regex.Matches(filename, @"UI_Jacket_(\d+)(_s)?\.png"); var matches = Regex.Matches(filename, @"UI_Jacket_(\d+)(_s)?\.png");
if (matches.Count < 1) if (matches.Count < 1)
@ -27,7 +27,7 @@ namespace AquaMai.UX
} }
var id = matches[0].Groups[1].Value; var id = matches[0].Groups[1].Value;
foreach (var ext in new []{".jpg",".png",".webp",".bmp",".gif"}) foreach (var ext in new[] { ".jpg", ".png", ".webp", ".bmp", ".gif" })
{ {
if (File.Exists(Path.Combine(Environment.CurrentDirectory, "LocalAssets", id + ext))) if (File.Exists(Path.Combine(Environment.CurrentDirectory, "LocalAssets", id + ext)))
{ {
@ -36,12 +36,17 @@ namespace AquaMai.UX
} }
var localPath = Path.Combine(Environment.CurrentDirectory, "LocalAssets", filename); var localPath = Path.Combine(Environment.CurrentDirectory, "LocalAssets", filename);
if (!File.Exists(localPath)) return true; if (File.Exists(localPath))
{
__result = new Texture2D(1, 1);
ImageConversion.LoadImage(__result, File.ReadAllBytes(localPath));
}
else
{
__result = __instance.LoadAsset<Texture2D>($"Jacket/UI_Jacket_{id}.png");
}
__result = new Texture2D(1, 1);
ImageConversion.LoadImage(__result, File.ReadAllBytes(localPath));
return false; return false;
} }
} }
} }