using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Threading.Tasks; using BepInEx; using BepInEx.Logging; using BepInEx.NET.Common; using BepInExResoniteShim; using Elements.Core; using FrooxEngine; using FrooxEngine.UIX; using HarmonyLib; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(/*Could not decode attribute arguments.*/)] [assembly: TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] [assembly: AssemblyCompany("art0007i")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("2.0.1.0")] [assembly: AssemblyInformationalVersion("2.0.1+c938ec1397b94c990c028be87374a2173e916bf9")] [assembly: AssemblyProduct("JustBoundedUIX")] [assembly: AssemblyTitle("JustBoundedUIX")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/art0007i/JustBoundedUIX")] [assembly: AssemblyVersion("2.0.1.0")] [module: RefSafetyRules(11)] namespace JustBoundedUIX; [ResonitePlugin("art0007i.JustBoundedUIX", "JustBoundedUIX", "2.0.1", "art0007i", "https://github.com/art0007i/JustBoundedUIX")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BasePlugin { [HarmonyPatch] internal static class SceneInspectorPatches { [CompilerGenerated] private sealed class d__0 : global::System.Collections.Generic.IEnumerable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator, global::System.Collections.IEnumerator, global::System.IDisposable { private int <>1__state; private MethodBase <>2__current; private int <>l__initialThreadId; MethodBase global::System.Collections.Generic.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object global::System.Collections.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__0(int <>1__state) { this.<>1__state = <>1__state; <>l__initialThreadId = Environment.CurrentManagedThreadId; } [DebuggerHidden] void global::System.IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: { <>1__state = -1; MethodInfo val = AccessTools.Method(typeof(SceneInspector), "OnInsertParentPressed", (global::System.Type[])null, (global::System.Type[])null); <>2__current = (MethodBase)(object)val; <>1__state = 1; return true; } case 1: { <>1__state = -1; MethodInfo val = AccessTools.Method(typeof(SceneInspector), "OnAddChildPressed", (global::System.Type[])null, (global::System.Type[])null); <>2__current = (MethodBase)(object)val; <>1__state = 2; return true; } case 2: <>1__state = -1; return false; } } bool global::System.Collections.IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void global::System.Collections.IEnumerator.Reset() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) throw new NotSupportedException(); } [DebuggerHidden] global::System.Collections.Generic.IEnumerator global::System.Collections.Generic.IEnumerable.GetEnumerator() { if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId) { <>1__state = 0; return this; } return new d__0(0); } [DebuggerHidden] global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() { return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable)this).GetEnumerator(); } } [CompilerGenerated] private sealed class d__1 : global::System.Collections.Generic.IEnumerable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator, global::System.Collections.IEnumerator, global::System.IDisposable { private int <>1__state; private CodeInstruction <>2__current; private int <>l__initialThreadId; private global::System.Collections.Generic.IEnumerable codes; public global::System.Collections.Generic.IEnumerable <>3__codes; private MethodInfo 5__2; private global::System.Collections.Generic.IEnumerator <>7__wrap2; private CodeInstruction 5__4; CodeInstruction global::System.Collections.Generic.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object global::System.Collections.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__1(int <>1__state) { this.<>1__state = <>1__state; <>l__initialThreadId = Environment.CurrentManagedThreadId; } [DebuggerHidden] void global::System.IDisposable.Dispose() { int num = <>1__state; if (num == -3 || (uint)(num - 1) <= 2u) { try { } finally { <>m__Finally1(); } } 5__2 = null; <>7__wrap2 = null; 5__4 = null; <>1__state = -2; } private bool MoveNext() { //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown try { switch (<>1__state) { default: return false; case 0: <>1__state = -1; 5__2 = typeof(Slot).GetMethod("AddSlot"); <>7__wrap2 = codes.GetEnumerator(); <>1__state = -3; break; case 1: <>1__state = -3; if (CodeInstructionExtensions.Calls(5__4, 5__2)) { <>2__current = new CodeInstruction(OpCodes.Ldarg_0, (object)null); <>1__state = 2; return true; } goto IL_0104; case 2: <>1__state = -3; <>2__current = new CodeInstruction(OpCodes.Call, (object)typeof(SceneInspectorPatches).GetMethod("ProxyFunc")); <>1__state = 3; return true; case 3: { <>1__state = -3; goto IL_0104; } IL_0104: 5__4 = null; break; } if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext()) { 5__4 = <>7__wrap2.Current; <>2__current = 5__4; <>1__state = 1; return true; } <>m__Finally1(); <>7__wrap2 = null; return false; } catch { //try-fault ((global::System.IDisposable)this).Dispose(); throw; } } bool global::System.Collections.IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } private void <>m__Finally1() { <>1__state = -1; if (<>7__wrap2 != null) { ((global::System.IDisposable)<>7__wrap2).Dispose(); } } [DebuggerHidden] void global::System.Collections.IEnumerator.Reset() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) throw new NotSupportedException(); } [DebuggerHidden] global::System.Collections.Generic.IEnumerator global::System.Collections.Generic.IEnumerable.GetEnumerator() { d__1 d__; if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId) { <>1__state = 0; d__ = this; } else { d__ = new d__1(0); } d__.codes = <>3__codes; return d__; } [DebuggerHidden] global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() { return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable)this).GetEnumerator(); } } [IteratorStateMachine(typeof(d__0))] private static global::System.Collections.Generic.IEnumerable TargetMethods() { yield return (MethodBase)(object)AccessTools.Method(typeof(SceneInspector), "OnInsertParentPressed", (global::System.Type[])null, (global::System.Type[])null); yield return (MethodBase)(object)AccessTools.Method(typeof(SceneInspector), "OnAddChildPressed", (global::System.Type[])null, (global::System.Type[])null); } [IteratorStateMachine(typeof(d__1))] private static global::System.Collections.Generic.IEnumerable Transpiler(global::System.Collections.Generic.IEnumerable codes) { MethodInfo lookFor = typeof(Slot).GetMethod("AddSlot"); global::System.Collections.Generic.IEnumerator enumerator = codes.GetEnumerator(); try { while (((global::System.Collections.IEnumerator)enumerator).MoveNext()) { CodeInstruction code = enumerator.Current; yield return code; if (CodeInstructionExtensions.Calls(code, lookFor)) { yield return new CodeInstruction(OpCodes.Ldarg_0, (object)null); yield return new CodeInstruction(OpCodes.Call, (object)typeof(SceneInspectorPatches).GetMethod("ProxyFunc")); } } } finally { ((global::System.IDisposable)enumerator)?.Dispose(); } } public static Slot ProxyFunc(Slot sl, SceneInspector i) { Slot target = i.ComponentView.Target; if (target != null) { RectTransform component = ((ContainerWorker)(object)target).GetComponent((Predicate)null, false); if (component != null && component.Canvas != null) { ((ContainerWorker)(object)sl).AttachComponent(true, (Action)null); } } return sl; } } [HarmonyPatch(typeof(SlotGizmo))] internal static class SlotGizmoPatches { [CompilerGenerated] private sealed class d__3 : global::System.Collections.Generic.IEnumerable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator, global::System.Collections.IEnumerator, global::System.IDisposable { private int <>1__state; private CodeInstruction <>2__current; private int <>l__initialThreadId; private global::System.Collections.Generic.IEnumerable codes; public global::System.Collections.Generic.IEnumerable <>3__codes; private global::System.Collections.Generic.IEnumerator <>7__wrap1; private CodeInstruction 5__3; CodeInstruction global::System.Collections.Generic.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object global::System.Collections.IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__3(int <>1__state) { this.<>1__state = <>1__state; <>l__initialThreadId = Environment.CurrentManagedThreadId; } [DebuggerHidden] void global::System.IDisposable.Dispose() { int num = <>1__state; if (num == -3 || (uint)(num - 1) <= 3u) { try { } finally { <>m__Finally1(); } } <>7__wrap1 = null; 5__3 = null; <>1__state = -2; } private bool MoveNext() { //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Expected O, but got Unknown //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown try { switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>7__wrap1 = codes.GetEnumerator(); <>1__state = -3; break; case 1: <>1__state = -3; if (CodeInstructionExtensions.Calls(5__3, computeBoundingBoxMethod)) { <>2__current = new CodeInstruction(OpCodes.Ldloc_0, (object)null); <>1__state = 2; return true; } goto IL_0105; case 2: <>1__state = -3; <>2__current = new CodeInstruction(OpCodes.Ldloc_3, (object)null); <>1__state = 3; return true; case 3: <>1__state = -3; <>2__current = new CodeInstruction(OpCodes.Call, (object)boundUIXMethod); <>1__state = 4; return true; case 4: { <>1__state = -3; goto IL_0105; } IL_0105: 5__3 = null; break; } if (((global::System.Collections.IEnumerator)<>7__wrap1).MoveNext()) { 5__3 = <>7__wrap1.Current; <>2__current = 5__3; <>1__state = 1; return true; } <>m__Finally1(); <>7__wrap1 = null; return false; } catch { //try-fault ((global::System.IDisposable)this).Dispose(); throw; } } bool global::System.Collections.IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } private void <>m__Finally1() { <>1__state = -1; if (<>7__wrap1 != null) { ((global::System.IDisposable)<>7__wrap1).Dispose(); } } [DebuggerHidden] void global::System.Collections.IEnumerator.Reset() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) throw new NotSupportedException(); } [DebuggerHidden] global::System.Collections.Generic.IEnumerator global::System.Collections.Generic.IEnumerable.GetEnumerator() { d__3 d__; if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId) { <>1__state = 0; d__ = this; } else { d__ = new d__3(0); } d__.codes = <>3__codes; return d__; } [DebuggerHidden] global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() { return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable)this).GetEnumerator(); } } private static readonly MethodInfo boundUIXMethod = typeof(SlotGizmoPatches).GetMethod("BoundUIX", AccessTools.allDeclared); private static readonly MethodInfo computeBoundingBoxMethod = typeof(BoundsHelper).GetMethod("ComputeBoundingBox", AccessTools.allDeclared); private static BoundingBox BoundUIX(BoundingBox bounds, Slot target, Slot space) { //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) RectTransform component = ((ContainerWorker)(object)target).GetComponent((Predicate)null, false); if (component != null && component.Canvas != null && ((Component)component).Slot != ((Component)component.Canvas).Slot) { Rect val = component.ComputeGlobalComputeRect(); Slot slot = ((Component)component.Canvas).Slot; float2 extentMin = ((Rect)(ref val)).ExtentMin; float2 val2 = (ref extentMin) / Sync.op_Implicit(component.Canvas.UnitScale); float3 val3 = float2.op_Implicit(ref val2); float3 val4 = slot.LocalPointToGlobal(ref val3); float3 val5 = space.GlobalPointToLocal(ref val4); ((BoundingBox)(ref bounds)).Encapsulate(ref val5); Slot slot2 = ((Component)component.Canvas).Slot; extentMin = ((Rect)(ref val)).ExtentMax; val2 = (ref extentMin) / Sync.op_Implicit(component.Canvas.UnitScale); val3 = float2.op_Implicit(ref val2); val4 = slot2.LocalPointToGlobal(ref val3); val5 = space.GlobalPointToLocal(ref val4); ((BoundingBox)(ref bounds)).Encapsulate(ref val5); } return bounds; } [IteratorStateMachine(typeof(d__3))] [HarmonyTranspiler] [HarmonyPatch("OnCommonUpdate")] private static global::System.Collections.Generic.IEnumerable OnCommonUpdateTranspiler(global::System.Collections.Generic.IEnumerable codes) { global::System.Collections.Generic.IEnumerator enumerator = codes.GetEnumerator(); try { while (((global::System.Collections.IEnumerator)enumerator).MoveNext()) { CodeInstruction code = enumerator.Current; yield return code; if (CodeInstructionExtensions.Calls(code, computeBoundingBoxMethod)) { yield return new CodeInstruction(OpCodes.Ldloc_0, (object)null); yield return new CodeInstruction(OpCodes.Ldloc_3, (object)null); yield return new CodeInstruction(OpCodes.Call, (object)boundUIXMethod); } } } finally { ((global::System.IDisposable)enumerator)?.Dispose(); } } } [HarmonyPatch(typeof(RectTransform), "BuildInspectorUI")] internal class RectTransformPatch { [CompilerGenerated] private sealed class <>c__DisplayClass0_1 { [StructLayout((LayoutKind)3)] private struct <b__1>d : IAsyncStateMachine { public int <>1__state; public AsyncTaskMethodBuilder <>t__builder; public <>c__DisplayClass0_1 <>4__this; private NextUpdate <>u__1; private void MoveNext() { //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; <>c__DisplayClass0_1 <>c__DisplayClass0_ = <>4__this; try { if (num != 0) { goto IL_0188; } NextUpdate val = <>u__1; <>u__1 = default(NextUpdate); num = (<>1__state = -1); goto IL_0181; IL_0181: ((NextUpdate)(ref val)).GetResult(); goto IL_0188; IL_0188: if (!((IWorldElement)<>c__DisplayClass0_.b).IsRemoved) { float preferred = <>c__DisplayClass0_.rt.GetHorizontalMetrics().preferred; float preferred2 = <>c__DisplayClass0_.rt.GetVerticalMetrics().preferred; Rect val2 = <>c__DisplayClass0_.rt.ComputeGlobalComputeRect(); Slot slot = ((Component)<>c__DisplayClass0_.rt.Canvas).Slot; float2 center = ((Rect)(ref val2)).Center; float2 val3 = (ref center) / Sync.op_Implicit(<>c__DisplayClass0_.rt.Canvas.UnitScale); float3 val4 = new float3(float2.op_Implicit(ref val3)); float3 val5 = slot.LocalPointToGlobal(ref val4); Slot slot2 = ((Component)<>c__DisplayClass0_.rt.Canvas).Slot; val4 = new float3(preferred, preferred2, 0f); float3 val6 = (ref val4) / Sync.op_Implicit(<>c__DisplayClass0_.rt.Canvas.UnitScale); float3 val7 = slot2.LocalScaleToGlobal(ref val6); DebugManager debug = ((Worker)<>c__DisplayClass0_.rt).World.Debug; colorX val8 = colorX.Blue; val8 = ((colorX)(ref val8)).SetA(0.25f); floatQ globalRotation = ((Component)<>c__DisplayClass0_.rt.Canvas).Slot.GlobalRotation; debug.Box(ref val5, ref val7, ref val8, ref globalRotation, 0f, false); NextUpdate val9 = default(NextUpdate); val = ((NextUpdate)(ref val9)).GetAwaiter(); if (!((NextUpdate)(ref val)).IsCompleted) { num = (<>1__state = 0); <>u__1 = val; ((AsyncTaskMethodBuilder)(ref <>t__builder)).AwaitOnCompletedb__1>d>(ref val, ref this); return; } goto IL_0181; } } catch (global::System.Exception exception) { <>1__state = -2; ((AsyncTaskMethodBuilder)(ref <>t__builder)).SetException(exception); return; } <>1__state = -2; ((AsyncTaskMethodBuilder)(ref <>t__builder)).SetResult(); } [DebuggerHidden] private void SetStateMachine(IAsyncStateMachine stateMachine) { ((AsyncTaskMethodBuilder)(ref <>t__builder)).SetStateMachine(stateMachine); } } public RectTransform rt; public IButton b; [AsyncStateMachine(typeof(<b__1>d))] internal global::System.Threading.Tasks.Task b__1() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) <b__1>d <b__1>d = default(<b__1>d); <b__1>d.<>t__builder = AsyncTaskMethodBuilder.Create(); <b__1>d.<>4__this = this; <b__1>d.<>1__state = -1; ((AsyncTaskMethodBuilder)(ref <b__1>d.<>t__builder)).Start<<b__1>d>(ref <b__1>d); return ((AsyncTaskMethodBuilder)(ref <b__1>d.<>t__builder)).Task; } } public static void Postfix(RectTransform __instance, UIBuilder ui) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown LocaleString val = LocaleString.op_Implicit("Visualize Preferred Area"); ui.Button(ref val).LocalPressed += (ButtonEventHandler)delegate(IButton b, ButtonEventData e) { <>c__DisplayClass0_1 CS$<>8__locals6 = new <>c__DisplayClass0_1(); CS$<>8__locals6.b = b; CS$<>8__locals6.rt = __instance; if (CS$<>8__locals6.rt != null && CS$<>8__locals6.rt.Canvas != null) { ((IComponentBase)CS$<>8__locals6.b).Enabled = false; ((Worker)__instance).StartTask((Func)([AsyncStateMachine(typeof(<>c__DisplayClass0_1.<b__1>d))] () => { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass0_1.<b__1>d <b__1>d = default(<>c__DisplayClass0_1.<b__1>d); <b__1>d.<>t__builder = AsyncTaskMethodBuilder.Create(); <b__1>d.<>4__this = CS$<>8__locals6; <b__1>d.<>1__state = -1; ((AsyncTaskMethodBuilder)(ref <b__1>d.<>t__builder)).Start<<>c__DisplayClass0_1.<b__1>d>(ref <b__1>d); return ((AsyncTaskMethodBuilder)(ref <b__1>d.<>t__builder)).Task; })); } }; } } internal static ManualLogSource Log; public override void Load() { Log = ((BasePlugin)this).Log; ((BasePlugin)this).HarmonyInstance.PatchAll(); } public static RectTransform GetRectTransform(Slot target) { if (target == null) { return null; } RectTransform component = ((ContainerWorker)(object)target).GetComponent((Predicate)null, false); if (component != null && component.Canvas != null && ((Component)component).Slot != ((Component)component.Canvas).Slot) { return component; } return null; } public static BoundingBox GetBoundingBox(RectTransform rt) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) Rect val = rt.ComputeGlobalComputeRect(); BoundingBox result = BoundingBox.Empty(); Slot slot = ((Component)rt.Canvas).Slot; float2 extentMin = ((Rect)(ref val)).ExtentMin; float2 val2 = (ref extentMin) / Sync.op_Implicit(rt.Canvas.UnitScale); float3 val3 = float2.op_Implicit(ref val2); float3 val4 = slot.LocalPointToGlobal(ref val3); ((BoundingBox)(ref result)).Encapsulate(ref val4); Slot slot2 = ((Component)rt.Canvas).Slot; extentMin = ((Rect)(ref val)).ExtentMax; val2 = (ref extentMin) / Sync.op_Implicit(rt.Canvas.UnitScale); val3 = float2.op_Implicit(ref val2); val4 = slot2.LocalPointToGlobal(ref val3); ((BoundingBox)(ref result)).Encapsulate(ref val4); return result; } } public static class PluginMetadata { public const string GUID = "art0007i.JustBoundedUIX"; public const string NAME = "JustBoundedUIX"; public const string VERSION = "2.0.1"; public const string AUTHORS = "art0007i"; public const string REPOSITORY_URL = "https://github.com/art0007i/JustBoundedUIX"; }