1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-10 07:23:28 +08:00

use patch to resolve tips priority

This commit is contained in:
2023-09-15 15:23:40 +08:00
parent 0c9a639df6
commit c68cde65f1
2 changed files with 28 additions and 5 deletions

View File

@@ -209,6 +209,33 @@ public class CheatEnabler : BaseUnityPlugin
return matcher.InstructionEnumeration(); return matcher.InstructionEnumeration();
} }
[HarmonyTranspiler]
[HarmonyPatch(typeof(UIButton), nameof(UIButton.LateUpdate))]
private static IEnumerable<CodeInstruction> UIButton_LateUpdate_Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
var matcher = new CodeMatcher(instructions, generator);
matcher.MatchForward(false,
new CodeMatch(OpCodes.Ldloc_2),
new CodeMatch(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Component), nameof(Component.gameObject))),
new CodeMatch(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(GameObject), nameof(GameObject.activeSelf)))
).InsertAndAdvance(
new CodeInstruction(OpCodes.Ldloc_2),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Component), nameof(Component.transform))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Transform), nameof(Transform.parent))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Transform), nameof(Transform.parent))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.Method(typeof(Transform), nameof(Transform.SetAsLastSibling)))
).MatchForward(false,
new CodeMatch(OpCodes.Callvirt, AccessTools.Method(typeof(UIButtonTip), nameof(UIButtonTip.SetTip)))
).Advance(1).Insert(
new CodeInstruction(OpCodes.Ldloc_2),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Component), nameof(Component.transform))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Transform), nameof(Transform.parent))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.PropertyGetter(typeof(Transform), nameof(Transform.parent))),
new CodeInstruction(OpCodes.Callvirt, AccessTools.Method(typeof(Transform), nameof(Transform.SetAsLastSibling)))
);
return matcher.InstructionEnumeration();
}
private static void ToggleConfigWindow() private static void ToggleConfigWindow()
{ {
if (!_configWinInitialized) if (!_configWinInitialized)

View File

@@ -29,11 +29,7 @@ public class MyWindow: ManualBehaviour
public void Open() public void Open()
{ {
_Open(); _Open();
} transform.SetAsLastSibling();
public override void _OnUpdate()
{
transform.SetSiblingIndex(UIRoot.instance.uiMechaEditor.transform.GetSiblingIndex() + 1);
} }
public void Close() => _Close(); public void Close() => _Close();