using System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using ULTRAKILL.Portal; using ULTRAKILL.Portal.Geometry; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ULTRAPortalCreator")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ULTRAPortalCreator")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("d7af370e-d4df-4c88-b3f6-0b11c1ebbd7e")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")] [assembly: AssemblyVersion("1.0.0.0")] namespace ULTRAPortalCreator; public struct PortalTransform { public Vector3 position; public Vector3 rotation; public Vector2 scale; public PortalTransform(Vector3 pos, Vector3 euler, Vector2 scale) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) position = pos; rotation = euler; this.scale = scale; } } public struct PortalResult { public GameObject whole; public GameObject portalA; public GameObject portalB; public Portal portal; internal PortalResult(GameObject portalA, GameObject portalB, GameObject whole, Portal portal) { this.whole = whole; this.portalA = portalA; this.portalB = portalB; this.portal = portal; } } public struct PortalConstructorArgs { public PortalTransform entrance; public PortalTransform exit; public bool doubleSided; public bool makeGroup; public PortalConstructorArgs(PortalTransform entrance, PortalTransform exit, bool doubleSided = false, bool makeGroup = true) { this.entrance = entrance; this.exit = exit; this.doubleSided = doubleSided; this.makeGroup = makeGroup; } } public static class PortalConstructor { public static PortalResult MakePortal(PortalConstructorArgs args) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_003a: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) PortalTransform exit = args.exit; Transform transform = new GameObject("Exit").transform; transform.position = exit.position; transform.eulerAngles = exit.rotation; PortalResult result = MakePortal(args.entrance, transform, exit.scale, args.makeGroup); if (args.doubleSided) { PortalConstructorArgs portalConstructorArgs = args; Quaternion val = Quaternion.Euler(args.entrance.rotation); val *= Quaternion.Euler(0f, 180f, 0f); portalConstructorArgs.entrance.rotation = ((Quaternion)(ref val)).eulerAngles; PortalResult portalResult = MakePortal(portalConstructorArgs.entrance, transform, exit.scale, mkeGroup: false); portalResult.portalA.transform.parent = result.whole.transform; ((Object)portalResult.portalA.transform).name = "PortalDoubleside"; } transform.parent = result.whole.transform; return result; } public static PortalResult MakePortal(PortalTransform entrance, Transform exit, Vector2 scale = default(Vector2), bool mkeGroup = true) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: 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_0095: Unknown result type (might be due to invalid IL or missing references) GameObject val = null; if (mkeGroup) { val = new GameObject("Portal"); } GameObject val2 = new GameObject("Entrance", new Type[1] { typeof(Portal) }); if (mkeGroup) { val2.transform.parent = val.transform; } val2.transform.position = entrance.position; val2.transform.eulerAngles = entrance.rotation; Portal component = val2.GetComponent(); Vector2 val3 = scale; if (entrance.scale != Vector2.zero) { val3 = entrance.scale; } component.shape = (IPortalShape)(object)new PlaneShape { width = val3.x, height = val3.y }; component.entry = val2.transform; component.exit = exit; component.entryTravelFlags = (PortalTravellerFlags)62; component.exitTravelFlags = (PortalTravellerFlags)62; component.renderSettings = (PortalSideFlags)2; component.maxRecursions = 2; component.canHearAudio = true; return new PortalResult(val2, ((Component)exit).gameObject, val, component); } }