using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using DG.Tweening; using HarmonyLib; using Microsoft.CodeAnalysis; using TMPro; using UnityEngine; using UnityEngine.UI; using _3DGUI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("com.github.azen.3DGUI")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("0.1.5.0")] [assembly: AssemblyInformationalVersion("0.1.5")] [assembly: AssemblyProduct("com.github.azen.3DGUI")] [assembly: AssemblyTitle("_3DGUI")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.5.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } public class UI3DController : MonoBehaviour { private class TiltElement { public RectTransform RT; public float SpeedMult; public Vector3 BaseRotation; public float ZDepth; public Vector3 InitialScale; public Vector2 InitialAnchoredPos; public bool AllowStretch; public bool IsWheel; public float ShakeIntensity; } [CompilerGenerated] private sealed class d__13 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GUIManager gui; public UI3DController <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__13(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) int num = <>1__state; UI3DController uI3DController = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; break; case 1: <>1__state = -1; break; } if ((Object)(object)Camera.main == (Object)null) { <>2__current = null; <>1__state = 1; return true; } Canvas hudCanvas = gui.hudCanvas; hudCanvas.renderMode = (RenderMode)1; hudCanvas.worldCamera = Camera.main; hudCanvas.planeDistance = 0.45f; uI3DController._tiltElements.Clear(); uI3DController._registered.Clear(); StaminaBar bar = gui.bar; uI3DController.Register((bar != null) ? ((Component)bar).gameObject : null, 1.1f, ModConfig.StaminaBaseRot.Value, -5f, ModConfig.StaminaScale.Value, allowStretch: false, isWheel: false); uI3DController.SetupInventory3D(gui); if ((Object)(object)gui.itemPromptMain != (Object)null) { RectTransform component = ((Component)((TMP_Text)gui.itemPromptMain).transform.parent).GetComponent(); ((Object)component).name = "PromptsRoot"; component.pivot = new Vector2(1f, 0.5f); uI3DController.Register(((Component)component).gameObject, 1.05f, ModConfig.PromptBaseRot.Value, -5f, ModConfig.PromptScale.Value, allowStretch: true, isWheel: false); } if ((Object)(object)gui.temporaryItem != (Object)null) { ((Object)gui.temporaryItem).name = "TemporarySlotRoot"; uI3DController.Register(((Component)gui.temporaryItem).gameObject, 1f, ModConfig.TempSlotBaseRot.Value, -10f, ModConfig.TempSlotScale.Value, allowStretch: true, isWheel: false); } if ((Object)(object)gui.mushroomsCanvasGroup != (Object)null) { ((Object)((Component)gui.mushroomsCanvasGroup).gameObject).name = "NumbRoot"; uI3DController.Register(((Component)gui.mushroomsCanvasGroup).gameObject, 1.1f, ModConfig.StaminaBaseRot.Value, -5f, ModConfig.StaminaScale.Value, allowStretch: false, isWheel: false); uI3DController._setupDone = true; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private GUIManager _gui; private CanvasGroup _hudCG; private bool _setupDone; private List _tiltElements = new List(); private HashSet _registered = new HashSet(); private RectTransform _inventory3DRoot; private RectTransform _wheelWrapper; private GameObject _lastActiveWheel; private float _currentAlpha = 1f; private Vector2 _smoothLook; private Vector3 _physicalRecoil; private float _velocityStretch; public void Init(GUIManager gui) { _gui = gui; _hudCG = gui.hudCanvasGroup; ((MonoBehaviour)this).StartCoroutine(SetupRoutine(gui)); } [IteratorStateMachine(typeof(d__13))] private IEnumerator SetupRoutine(GUIManager gui) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__13(0) { <>4__this = this, gui = gui }; } private void SetupInventory3D(GUIManager gui) { //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007c: 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_0083: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_inventory3DRoot == (Object)null) { GameObject val = new GameObject("Inventory3DRoot", new Type[1] { typeof(RectTransform) }); _inventory3DRoot = val.GetComponent(); ((Transform)_inventory3DRoot).SetParent(((Component)gui.hudCanvas).transform, false); RectTransform inventory3DRoot = _inventory3DRoot; RectTransform inventory3DRoot2 = _inventory3DRoot; RectTransform inventory3DRoot3 = _inventory3DRoot; Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(1f, 0f); inventory3DRoot3.pivot = val2; Vector2 anchorMin = (inventory3DRoot2.anchorMax = val2); inventory3DRoot.anchorMin = anchorMin; HorizontalLayoutGroup val4 = val.AddComponent(); ((HorizontalOrVerticalLayoutGroup)val4).spacing = 35f; ((LayoutGroup)val4).childAlignment = (TextAnchor)8; bool childControlWidth = (((HorizontalOrVerticalLayoutGroup)val4).childControlHeight = false); ((HorizontalOrVerticalLayoutGroup)val4).childControlWidth = childControlWidth; if ((Object)(object)gui.temporaryItem != (Object)null) { ((Component)gui.temporaryItem).transform.SetParent((Transform)(object)_inventory3DRoot, false); ((Component)gui.temporaryItem).transform.SetAsFirstSibling(); Plugin.Log.LogInfo((object)"[3DUI] Temporary slot moved to 3D root."); } InventoryItemUI[] items = gui.items; foreach (InventoryItemUI val5 in items) { if ((Object)(object)val5 != (Object)null) { ((Component)val5).transform.SetParent((Transform)(object)_inventory3DRoot, false); } } if ((Object)(object)gui.backpack != (Object)null) { ((Component)gui.backpack).transform.SetParent((Transform)(object)_inventory3DRoot, false); ((Component)gui.backpack).transform.SetAsLastSibling(); } } Register(((Component)_inventory3DRoot).gameObject, 1f, ModConfig.InvBaseRot.Value, -12f, ModConfig.InvScale.Value, allowStretch: true, isWheel: false); } private void LateUpdate() { //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) if (!_setupDone || (Object)(object)Character.localCharacter == (Object)null) { return; } if ((Object)(object)_hudCG != (Object)null && !ModConfig.GlobalHUDVisible.Value) { _hudCG.alpha = 0f; return; } if (!ModConfig.UIEnabled.Value) { if ((Object)(object)_hudCG != (Object)null) { _hudCG.alpha = 1f; } return; } float deltaTime = Time.deltaTime; UpdateWheelWrapper(); if ((Object)(object)_gui.bar?.extraBar != (Object)null && ((Component)_gui.bar.extraBar).gameObject.activeInHierarchy) { GameObject gameObject = ((Component)_gui.bar.extraBar).gameObject; if (!_registered.Contains(gameObject)) { ((Object)gameObject).name = "ExtraStaminaRoot"; Register(gameObject, 1.1f, ModConfig.ExtraStaminaBaseRot.Value, -5f, ModConfig.ExtraStaminaScale.Value, allowStretch: false, isWheel: false); } } if ((Object)(object)_gui.temporaryItem != (Object)null && ((Component)_gui.temporaryItem).gameObject.activeInHierarchy && (Object)(object)((Component)_gui.temporaryItem).transform.parent != (Object)(object)_inventory3DRoot) { ((Component)_gui.temporaryItem).transform.SetParent((Transform)(object)_inventory3DRoot, false); ((Component)_gui.temporaryItem).transform.SetAsFirstSibling(); } bool flag = (Object)(object)_lastActiveWheel != (Object)null; Vector2 val = (flag ? GetWheelInput() : Character.localCharacter.input.lookInput); _smoothLook = Vector2.Lerp(_smoothLook, val, deltaTime * 10f); float num = (((Character.localCharacter.data.isClimbing || Character.localCharacter.data.isRopeClimbing) && ModConfig.HideWhileClimbing.Value) ? ModConfig.HiddenAlpha.Value : 1f); _currentAlpha = Mathf.Lerp(_currentAlpha, num, deltaTime * 5f); if ((Object)(object)_hudCG != (Object)null) { _hudCG.alpha = _currentAlpha; } _physicalRecoil = Vector3.Lerp(_physicalRecoil, Vector3.zero, deltaTime * 4f); _velocityStretch = Mathf.Lerp(_velocityStretch, Mathf.Clamp01(((Vector3)(ref Character.localCharacter.data.avarageVelocity)).magnitude / 30f), deltaTime * 2f); foreach (TiltElement tiltElement in _tiltElements) { if ((Object)(object)tiltElement.RT == (Object)null) { continue; } UpdateItemFromConfig(tiltElement); float num2 = 0f; float num3 = 0f; if (flag) { if (tiltElement.IsWheel) { num2 = _smoothLook.y * tiltElement.SpeedMult; num3 = (0f - _smoothLook.x) * tiltElement.SpeedMult; } } else if (!tiltElement.IsWheel) { num2 = _smoothLook.y * 6f * tiltElement.SpeedMult; num3 = (0f - _smoothLook.x) * 6f * tiltElement.SpeedMult; } tiltElement.ShakeIntensity = Mathf.MoveTowards(tiltElement.ShakeIntensity, 0f, deltaTime * 35f); Vector3 val2 = Random.insideUnitSphere * tiltElement.ShakeIntensity * 0.15f; ((Transform)tiltElement.RT).localRotation = Quaternion.Euler(tiltElement.BaseRotation.x + num2 + val2.x, tiltElement.BaseRotation.y + num3 + val2.y, tiltElement.BaseRotation.z); float num4 = (tiltElement.AllowStretch ? ((float)((tiltElement.InitialAnchoredPos.x > 0f) ? 1 : (-1)) * _velocityStretch * 35f) : 0f); tiltElement.RT.anchoredPosition = tiltElement.InitialAnchoredPos + new Vector2(num4, 0f) + Vector2.op_Implicit(_physicalRecoil) * tiltElement.SpeedMult; ((Transform)tiltElement.RT).localScale = tiltElement.InitialScale * (1f + _velocityStretch * 0.08f); Vector3 localPosition = ((Transform)tiltElement.RT).localPosition; localPosition.z = tiltElement.ZDepth; ((Transform)tiltElement.RT).localPosition = localPosition; } } private void UpdateItemFromConfig(TiltElement item) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0071: 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_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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: 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_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) string text = ((Object)item.RT).name.ToLower(); if (text.Contains("temporaryslotroot")) { item.BaseRotation = ModConfig.TempSlotBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.TempSlotScale.Value; item.InitialAnchoredPos = ModConfig.TempSlotOffset.Value; } else if (text.Contains("extrastaminaroot")) { item.BaseRotation = ModConfig.ExtraStaminaBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.ExtraStaminaScale.Value; item.InitialAnchoredPos = ModConfig.ExtraStaminaOffset.Value; } else if (text.Contains("bar")) { item.BaseRotation = ModConfig.StaminaBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.StaminaScale.Value; item.InitialAnchoredPos = ModConfig.StaminaOffset.Value; } else if (text.Contains("inventory3droot")) { item.BaseRotation = ModConfig.InvBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.InvScale.Value; item.InitialAnchoredPos = ModConfig.InvOffset.Value; } else if (text.Contains("promptsroot")) { item.BaseRotation = ModConfig.PromptBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.PromptScale.Value; item.InitialAnchoredPos = ModConfig.PromptOffset.Value; } else if (text.Contains("numbroot")) { item.BaseRotation = ModConfig.StaminaBaseRot.Value; item.InitialScale = Vector3.one * ModConfig.StaminaScale.Value; item.InitialAnchoredPos = ModConfig.StaminaOffset.Value + ModConfig.NumbOffset.Value; } } private Vector2 GetWheelInput() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) float value = ModConfig.WheelMaxTilt.Value; float num = Input.GetAxis("Mouse X") * 10f; float num2 = Input.GetAxis("Mouse Y") * 10f; return new Vector2(Mathf.Clamp(num, 0f - value, value), Mathf.Clamp(num2, 0f - value, value)); } private TiltElement Register(GameObject go, float speed, Vector3 baseRot, float zDepth, float scale, bool allowStretch, bool isWheel) { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)go == (Object)null || _registered.Contains(go)) { return null; } RectTransform component = go.GetComponent(); TiltElement tiltElement = new TiltElement { RT = component, SpeedMult = speed, BaseRotation = baseRot, ZDepth = zDepth, InitialScale = Vector3.one * scale, InitialAnchoredPos = component.anchoredPosition, AllowStretch = allowStretch, IsWheel = isWheel }; _tiltElements.Add(tiltElement); _registered.Add(go); return tiltElement; } private void UpdateWheelWrapper() { GameObject val = null; if ((Object)(object)_gui.backpackWheel != (Object)null && ((Component)_gui.backpackWheel).gameObject.activeInHierarchy) { val = ((Component)_gui.backpackWheel).gameObject; } else if ((Object)(object)_gui.emoteWheel != (Object)null && _gui.emoteWheel.activeInHierarchy) { val = _gui.emoteWheel; } if ((Object)(object)val == (Object)null) { if ((Object)(object)_lastActiveWheel != (Object)null) { ResetWheelWrapper(); _lastActiveWheel = null; } } else if ((Object)(object)val != (Object)(object)_lastActiveWheel) { if ((Object)(object)_lastActiveWheel != (Object)null) { ResetWheelWrapper(); } _lastActiveWheel = val; PrepareWheel(val); } } private void PrepareWheel(GameObject wheelGO) { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_wheelWrapper == (Object)null) { GameObject val = new GameObject("[3DUI] WheelWrapper", new Type[1] { typeof(RectTransform) }); _wheelWrapper = val.GetComponent(); } ((Transform)_wheelWrapper).SetParent(wheelGO.transform, false); ((Transform)_wheelWrapper).SetAsLastSibling(); _wheelWrapper.anchoredPosition = Vector2.zero; ((Transform)_wheelWrapper).localRotation = Quaternion.identity; ((Transform)_wheelWrapper).localScale = Vector3.one; List list = new List(); foreach (Transform item in wheelGO.transform) { Transform val2 = item; if (!((Object)(object)val2 == (Object)(object)_wheelWrapper)) { string text = ((Object)val2).name.ToLower(); if (!text.Contains("back") && !text.Contains("dim") && !text.Contains("bg") && !text.Contains("shadow")) { list.Add(val2); } } } foreach (Transform item2 in list) { item2.SetParent((Transform)(object)_wheelWrapper, true); } if (!_registered.Contains(((Component)_wheelWrapper).gameObject)) { Register(((Component)_wheelWrapper).gameObject, 1.2f, Vector3.zero, -35f, 1f, allowStretch: false, isWheel: true); return; } TiltElement tiltElement = _tiltElements.Find((TiltElement e) => (Object)(object)e.RT == (Object)(object)_wheelWrapper); if (tiltElement != null) { tiltElement.BaseRotation = Vector3.zero; } } private void ResetWheelWrapper() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown if ((Object)(object)_wheelWrapper == (Object)null || (Object)(object)_lastActiveWheel == (Object)null) { return; } List list = new List(); foreach (Transform item2 in (Transform)_wheelWrapper) { Transform item = item2; list.Add(item); } foreach (Transform item3 in list) { item3.SetParent(_lastActiveWheel.transform, true); } Plugin.Log.LogInfo((object)("[3DUI] Wheel reset: children returned to " + ((Object)_lastActiveWheel).name)); } private void ResetToFlatUI() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) foreach (TiltElement tiltElement in _tiltElements) { if (!((Object)(object)tiltElement.RT == (Object)null)) { ((Transform)tiltElement.RT).localRotation = Quaternion.identity; tiltElement.RT.anchoredPosition = tiltElement.InitialAnchoredPos; ((Transform)tiltElement.RT).localScale = Vector3.one; } } } public void TriggerPhysicalImpulse(Vector3 force) { //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) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) _physicalRecoil += force * 70f; } public void TriggerLand(float vel) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (vel < -4f) { TriggerPhysicalImpulse(Vector3.down * Mathf.Abs(vel) * 0.5f); } } internal void TriggerDamageShake(float intensity) { foreach (TiltElement tiltElement in _tiltElements) { tiltElement.ShakeIntensity = Mathf.Clamp(tiltElement.ShakeIntensity + intensity * 35f, 0f, 45f); } } } internal class UILayer { internal RectTransform RT; internal float DepthMult; internal float SpeedMult; internal float CurrentX; internal float CurrentZ; internal UILayer(RectTransform rt, float depthMult = 1f, float speedMult = 1f) { RT = rt; DepthMult = depthMult; SpeedMult = speedMult; } internal void Apply(float targetX, float targetZ, float baseSpeed, float dt) { //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)RT == (Object)null)) { float num = baseSpeed * SpeedMult; CurrentX = Mathf.Lerp(CurrentX, targetX * DepthMult, dt * num); CurrentZ = Mathf.Lerp(CurrentZ, targetZ * DepthMult, dt * num); ((Transform)RT).localRotation = Quaternion.Euler(CurrentX, 0f, CurrentZ); } } } namespace BepInEx { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class BepInAutoPluginAttribute : Attribute { public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace BepInEx.Preloader.Core.Patching { [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [Conditional("CodeGeneration")] internal sealed class PatcherAutoPluginAttribute : Attribute { public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null) { } } } namespace _3DGUI { internal static class ModConfig { internal static ConfigEntry UIEnabled; internal static ConfigEntry GlobalHUDVisible; internal static ConfigEntry TiltStrength; internal static ConfigEntry CameraFOV; internal static ConfigEntry WheelMaxTilt; internal static ConfigEntry StaminaBaseRot; internal static ConfigEntry StaminaOffset; internal static ConfigEntry StaminaScale; internal static ConfigEntry ExtraStaminaBaseRot; internal static ConfigEntry ExtraStaminaOffset; internal static ConfigEntry ExtraStaminaScale; internal static ConfigEntry InvBaseRot; internal static ConfigEntry InvOffset; internal static ConfigEntry InvScale; internal static ConfigEntry PromptBaseRot; internal static ConfigEntry PromptOffset; internal static ConfigEntry PromptScale; internal static ConfigEntry HideWhileClimbing; internal static ConfigEntry HiddenAlpha; internal static ConfigEntry PresetData1; internal static ConfigEntry PresetData2; internal static ConfigEntry PresetData3; internal static ConfigEntry TempSlotBaseRot; internal static ConfigEntry TempSlotOffset; internal static ConfigEntry TempSlotScale; internal static ConfigEntry NumbOffset; private static ConfigFile _cfg; internal static void Init(ConfigFile cfg) { //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) _cfg = cfg; UIEnabled = cfg.Bind("Global", "3DEffectEnabled", true, ""); GlobalHUDVisible = cfg.Bind("Global", "GlobalHUDVisible", true, ""); TiltStrength = cfg.Bind("3D", "TiltStrength", 0.5f, ""); CameraFOV = cfg.Bind("3D", "CameraFOV", 60f, ""); WheelMaxTilt = cfg.Bind("3D", "WheelMaxTilt", 20f, ""); StaminaBaseRot = cfg.Bind("Stamina", "BaseRotation", new Vector3(-16.9f, -18f, 0f), ""); StaminaOffset = cfg.Bind("Stamina", "Offset", new Vector2(0f, -129.4f), ""); StaminaScale = cfg.Bind("Stamina", "Scale", 0.5f, ""); ExtraStaminaBaseRot = cfg.Bind("ExtraStamina", "BaseRotation", new Vector3(-14.8f, -18.5f, 0f), ""); ExtraStaminaOffset = cfg.Bind("ExtraStamina", "Offset", new Vector2(0f, -166.5f), ""); ExtraStaminaScale = cfg.Bind("ExtraStamina", "Scale", 0.4f, ""); InvBaseRot = cfg.Bind("Inventory", "BaseRotation", new Vector3(9.2f, 36.8f, 0f), ""); InvOffset = cfg.Bind("Inventory", "Offset", new Vector2(-427.4f, 163f), ""); InvScale = cfg.Bind("Inventory", "Scale", 0.4f, ""); PromptBaseRot = cfg.Bind("Prompts", "BaseRotation", new Vector3(9.2f, 45f, 0f), ""); PromptOffset = cfg.Bind("Prompts", "Offset", new Vector2(-250f, 32.9f), ""); PromptScale = cfg.Bind("Prompts", "Scale", 0.8f, ""); TempSlotBaseRot = cfg.Bind("TempSlot", "BaseRotation", new Vector3(14.2f, 8f, 0f), ""); TempSlotOffset = cfg.Bind("TempSlot", "Offset", new Vector2(39f, 65.8f), ""); TempSlotScale = cfg.Bind("TempSlot", "Scale", 1.4f, ""); HideWhileClimbing = cfg.Bind("Visibility", "HideWhileClimbing", true, ""); HiddenAlpha = cfg.Bind("Visibility", "HiddenAlpha", 0.05f, ""); NumbOffset = cfg.Bind("Stamina", "NumbOffset", new Vector2(0f, 0f), "Додаткове зміщення грибів відносно стаміни"); string text = "-16.9|-18.0|0.0|-129.4|0.5|-14.8|-18.5|0.0|-166.5|0.4|9.2|36.8|-427.4|163.0|0.4|9.2|45.0|-250.0|32.9|0.8|20.0|60.0|0.5|0.05|1|14.2|8.0|39.0|65.8|1.4|61.6|264.4"; PresetData1 = cfg.Bind("Presets", "Slot1", text, ""); string text2 = "-16.9|-18.0|0.0|-129.4|0.2|-14.8|-18.5|0.0|-150.1|0.2|9.2|36.8|-232.2|156.2|0.2|9.2|45.0|-106.8|-271.2|0.2|5.0|20.0|0.1|0.0|1|30.8|16.6|-91.1|-98.6|0.9|61.6|264.4"; PresetData2 = cfg.Bind("Presets", "Slot2", text2, ""); string text3 = "-16.9|-18.0|0.0|-113.0|0.7|-14.8|-18.5|0.0|-150.1|0.6|9.2|36.8|-505.4|179.5|0.6|11.1|-8.0|-950.0|600.0|1.0|60.0|110.0|3.0|0.0|1|-25.3|-24.7|-26.0|600.0|1.8|61.6|264.4"; PresetData3 = cfg.Bind("Presets", "Slot3", text3, ""); } public static void Save() { _cfg.Save(); } public static void ResetToDefaults() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: 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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) StaminaBaseRot.Value = new Vector3(-16.9f, -18f, 0f); StaminaOffset.Value = new Vector2(0f, -129.4f); StaminaScale.Value = 0.5f; ExtraStaminaBaseRot.Value = new Vector3(-14.8f, -18.5f, 0f); ExtraStaminaOffset.Value = new Vector2(0f, -166.5f); ExtraStaminaScale.Value = 0.4f; InvBaseRot.Value = new Vector3(9.2f, 36.8f, 0f); InvOffset.Value = new Vector2(-427.4f, 163f); InvScale.Value = 0.4f; PromptBaseRot.Value = new Vector3(9.2f, 45f, 0f); PromptOffset.Value = new Vector2(-250f, 32.9f); PromptScale.Value = 0.8f; WheelMaxTilt.Value = 20f; CameraFOV.Value = 60f; TempSlotBaseRot.Value = new Vector3(14.2f, 8f, 0f); TempSlotOffset.Value = new Vector2(39f, 65.8f); TempSlotScale.Value = 1.4f; WheelMaxTilt.Value = 20f; CameraFOV.Value = 60f; TiltStrength.Value = 0.5f; HiddenAlpha.Value = 0.05f; HideWhileClimbing.Value = true; NumbOffset.Value = new Vector2(61.6f, 264.4f); Save(); } } [HarmonyPatch(typeof(GUIManager), "Grasp")] internal static class Patch_Grasp { [HarmonyPostfix] private static void Postfix(GUIManager __instance) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) if (__instance.items == null) { return; } for (int i = 0; i < __instance.items.Length; i++) { InventoryItemUI obj = __instance.items[i]; RectTransform val = ((obj != null) ? ((Component)obj).GetComponent() : null); if (!((Object)(object)val == (Object)null)) { float num = (float)i * 0.04f; TweenSettingsExtensions.SetDelay(ShortcutExtensions.DOPunchScale((Transform)(object)val, Vector3.one * 0.12f, 0.35f, 5, 0.5f), num); } } } } [HarmonyPatch(typeof(GUIManager), "AddStatusFX")] internal static class Patch_GUIManager_AddStatusFX { [HarmonyPostfix] private static void Postfix(GUIManager __instance, STATUSTYPE type, float amount) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected I4, but got Unknown UI3DController component = ((Component)__instance).GetComponent(); if (!((Object)(object)component == (Object)null)) { component.TriggerDamageShake((int)type switch { 0 => amount, 5 => amount * 2.5f, 3 => 0.45f, 9 => 0.45f, 2 => 0.25f, 8 => 0.25f, 10 => 0.35f, _ => 0.2f, }); } } } [HarmonyPatch(typeof(GUIManager), "Awake")] internal static class Patch_GUIManager_Awake { [HarmonyPostfix] private static void Postfix(GUIManager __instance) { UI3DController uI3DController = ((Component)__instance).gameObject.AddComponent(); uI3DController.Init(__instance); Plugin.Log.LogInfo((object)"[Dynamic3DUI] UI3DController додано до GUIManager."); } } [HarmonyPatch(typeof(GUIManager), "ReticleLand")] internal static class Patch_GUIManager_ReticleLand { [HarmonyPostfix] private static void Postfix(GUIManager __instance) { UI3DController component = ((Component)__instance).GetComponent(); float y = Character.localCharacter.data.avarageVelocity.y; if (y < -5f) { component.TriggerLand(y); } } } [HarmonyPatch(typeof(GUIManager), "StartNumb")] internal static class Patch_StartNumb { [HarmonyPostfix] private static void Postfix(GUIManager __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) UI3DController component = ((Component)__instance).GetComponent(); if ((Object)(object)component != (Object)null) { component.TriggerPhysicalImpulse(Vector3.up * 0.1f); } } } [BepInPlugin("com.github.azen.3DGUI", "_3DGUI", "0.1.5")] public class Plugin : BaseUnityPlugin { internal static ManualLogSource Log; private Harmony _harmony; public const string Id = "com.github.azen.3DGUI"; public static string Name => "_3DGUI"; public static string Version => "0.1.5"; private void Awake() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; ModConfig.Init(((BaseUnityPlugin)this).Config); GameObject val = new GameObject("3DUI_Settings"); val.AddComponent(); Object.DontDestroyOnLoad((Object)(object)val); _harmony = new Harmony("com.azen.dynamic3dui"); _harmony.PatchAll(); } private void OnDestroy() { Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } } } public class UI3DSettingsPanel : MonoBehaviour { private bool _show; private Rect _windowRect = new Rect(20f, 40f, 340f, 700f); private int _tab; private Vector2 _scrollPos; private void Update() { if (Input.GetKeyDown((KeyCode)287)) { _show = !_show; Cursor.visible = _show; Cursor.lockState = (CursorLockMode)((!_show) ? 1 : 0); } } private void OnGUI() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_0049: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (_show) { GUI.backgroundColor = new Color(0.05f, 0.05f, 0.05f, 0.98f); _windowRect = GUI.Window(8888, _windowRect, new WindowFunction(DrawWindow), "\ud83d\udee0 3D UI MASTER EDITOR"); } } private void DrawWindow(int id) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) GUILayout.BeginHorizontal(Array.Empty()); if (GUILayout.Button("\ud83d\udcbe SAVE ALL", Array.Empty())) { ModConfig.Save(); } GUI.color = Color.red; if (GUILayout.Button("\ud83d\udd04 RESET", Array.Empty())) { ModConfig.ResetToDefaults(); } GUI.color = Color.white; GUILayout.EndHorizontal(); GUILayout.Space(5f); ModConfig.GlobalHUDVisible.Value = GUILayout.Toggle(ModConfig.GlobalHUDVisible.Value, " SHOW HUD (GLOBAL)", Array.Empty()); ModConfig.UIEnabled.Value = GUILayout.Toggle(ModConfig.UIEnabled.Value, " ENABLE 3D EFFECT", Array.Empty()); GUILayout.Space(5f); _tab = GUILayout.Toolbar(_tab, new string[3] { "UI", "Presets", "Global" }, Array.Empty()); GUILayout.Space(5f); _scrollPos = GUILayout.BeginScrollView(_scrollPos, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.Height(500f) }); if (_tab == 0) { DrawAdjustTab(); } else if (_tab == 1) { DrawPresetsTab(); } else { DrawGlobalTab(); } GUILayout.EndScrollView(); GUI.DragWindow(); } private void DrawAdjustTab() { //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: 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_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) DrawElement("MAIN STAMINA", ModConfig.StaminaBaseRot, ModConfig.StaminaOffset, ModConfig.StaminaScale); GUILayout.Space(10f); DrawElement("EXTRA STAMINA (RED/EXTRA)", ModConfig.ExtraStaminaBaseRot, ModConfig.ExtraStaminaOffset, ModConfig.ExtraStaminaScale); GUILayout.Space(10f); DrawElement("INVENTORY", ModConfig.InvBaseRot, ModConfig.InvOffset, ModConfig.InvScale); GUILayout.Space(10f); DrawElement("ADDITIONAL SLOT (TEMP)", ModConfig.TempSlotBaseRot, ModConfig.TempSlotOffset, ModConfig.TempSlotScale); GUILayout.Space(10f); DrawElement("PROMPTS (TEXT)", ModConfig.PromptBaseRot, ModConfig.PromptOffset, ModConfig.PromptScale); GUILayout.Label("--- NUMB (MUSHROOMS) ---", Array.Empty()); GUILayout.Label("Currently SYNCED with Main Stamina", Array.Empty()); Vector2 value = ModConfig.NumbOffset.Value; value.x = DrawSlider("Numb Off X", value.x, -500f, 500f); value.y = DrawSlider("Numb Off Y", value.y, -500f, 500f); ModConfig.NumbOffset.Value = value; } private void DrawPresetsTab() { GUILayout.Label("PRESET SLOTS", Array.Empty()); DrawPresetRow(1, ModConfig.PresetData1); DrawPresetRow(2, ModConfig.PresetData2); DrawPresetRow(3, ModConfig.PresetData3); } private void DrawPresetRow(int id, ConfigEntry slot) { GUILayout.BeginVertical(GUIStyle.op_Implicit("box"), Array.Empty()); GUILayout.BeginHorizontal(Array.Empty()); GUILayout.Label($"Slot {id}", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(50f) }); if (!string.IsNullOrEmpty(slot.Value) && GUILayout.Button("LOAD", Array.Empty())) { LoadPreset(slot.Value); } if (GUILayout.Button("SAVE CURRENT", Array.Empty())) { slot.Value = CaptureCurrentState(); ModConfig.Save(); } GUILayout.EndHorizontal(); GUILayout.EndVertical(); } private void DrawGlobalTab() { ModConfig.WheelMaxTilt.Value = DrawSlider("Wheel Limit", ModConfig.WheelMaxTilt.Value, 5f, 60f); ModConfig.CameraFOV.Value = DrawSlider("Cam FOV", ModConfig.CameraFOV.Value, 20f, 110f); ModConfig.TiltStrength.Value = DrawSlider("Tilt Power", ModConfig.TiltStrength.Value, 0.1f, 3f); GUILayout.Space(10f); ModConfig.HideWhileClimbing.Value = GUILayout.Toggle(ModConfig.HideWhileClimbing.Value, " Hide on Ropes", Array.Empty()); ModConfig.HiddenAlpha.Value = DrawSlider("Hide Alpha", ModConfig.HiddenAlpha.Value, 0f, 0.5f); } private float DrawSlider(string label, float val, float min, float max) { GUILayout.BeginHorizontal(Array.Empty()); GUILayout.Label(label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(90f) }); float result = GUILayout.HorizontalSlider(val, min, max, Array.Empty()); GUILayout.Label(result.ToString("F1", CultureInfo.InvariantCulture), (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(40f) }); GUILayout.EndHorizontal(); return result; } private void DrawElement(string label, ConfigEntry rot, ConfigEntry pos, ConfigEntry scale) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) GUILayout.Label("--- " + label + " ---", Array.Empty()); Vector3 value = rot.Value; value.x = DrawSlider("Rot X", value.x, -45f, 45f); value.y = DrawSlider("Rot Y", value.y, -45f, 45f); rot.Value = value; Vector2 value2 = pos.Value; value2.x = DrawSlider("Pos X", value2.x, -950f, 950f); value2.y = DrawSlider("Pos Y", value2.y, -600f, 600f); pos.Value = value2; scale.Value = DrawSlider("Scale", scale.Value, 0.2f, 1.8f); } private string CaptureCurrentState() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_005d: 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_009d: 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_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) return string.Format(CultureInfo.InvariantCulture, "{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}|{11}|{12}|{13}|{14}|{15}|{16}|{17}|{18}|{19}|{20}|{21}|{22}|{23}|{24}|{25}|{26}|{27}|{28}|{29}|{30}|{31}", ModConfig.StaminaBaseRot.Value.x, ModConfig.StaminaBaseRot.Value.y, ModConfig.StaminaOffset.Value.x, ModConfig.StaminaOffset.Value.y, ModConfig.StaminaScale.Value, ModConfig.ExtraStaminaBaseRot.Value.x, ModConfig.ExtraStaminaBaseRot.Value.y, ModConfig.ExtraStaminaOffset.Value.x, ModConfig.ExtraStaminaOffset.Value.y, ModConfig.ExtraStaminaScale.Value, ModConfig.InvBaseRot.Value.x, ModConfig.InvBaseRot.Value.y, ModConfig.InvOffset.Value.x, ModConfig.InvOffset.Value.y, ModConfig.InvScale.Value, ModConfig.PromptBaseRot.Value.x, ModConfig.PromptBaseRot.Value.y, ModConfig.PromptOffset.Value.x, ModConfig.PromptOffset.Value.y, ModConfig.PromptScale.Value, ModConfig.WheelMaxTilt.Value, ModConfig.CameraFOV.Value, ModConfig.TiltStrength.Value, ModConfig.HiddenAlpha.Value, ModConfig.HideWhileClimbing.Value ? 1 : 0, ModConfig.TempSlotBaseRot.Value.x, ModConfig.TempSlotBaseRot.Value.y, ModConfig.TempSlotOffset.Value.x, ModConfig.TempSlotOffset.Value.y, ModConfig.TempSlotScale.Value, ModConfig.NumbOffset.Value.x, ModConfig.NumbOffset.Value.y); } private void LoadPreset(string data) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrEmpty(data)) { return; } try { string[] array = data.Split('|'); int num = 0; ModConfig.StaminaBaseRot.Value = new Vector3(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture), 0f); ModConfig.StaminaOffset.Value = new Vector2(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture)); ModConfig.StaminaScale.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.ExtraStaminaBaseRot.Value = new Vector3(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture), 0f); ModConfig.ExtraStaminaOffset.Value = new Vector2(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture)); ModConfig.ExtraStaminaScale.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.InvBaseRot.Value = new Vector3(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture), 0f); ModConfig.InvOffset.Value = new Vector2(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture)); ModConfig.InvScale.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.PromptBaseRot.Value = new Vector3(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture), 0f); ModConfig.PromptOffset.Value = new Vector2(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture)); ModConfig.PromptScale.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); if (array.Length >= 25) { ModConfig.WheelMaxTilt.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.CameraFOV.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.TiltStrength.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.HiddenAlpha.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); ModConfig.HideWhileClimbing.Value = array[num++] == "1"; } if (array.Length >= 30) { ModConfig.TempSlotBaseRot.Value = new Vector3(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture), 0f); ModConfig.TempSlotOffset.Value = new Vector2(float.Parse(array[num++], CultureInfo.InvariantCulture), float.Parse(array[num++], CultureInfo.InvariantCulture)); ModConfig.TempSlotScale.Value = float.Parse(array[num++], CultureInfo.InvariantCulture); } if (array.Length >= 32) { ModConfig.NumbOffset.Value = new Vector2(float.Parse(array[30], CultureInfo.InvariantCulture), float.Parse(array[31], CultureInfo.InvariantCulture)); } Plugin.Log.LogInfo((object)("Preset loaded! Indices processed: " + num)); } catch (Exception ex) { Plugin.Log.LogError((object)("Failed to load preset: " + ex.Message)); } } } internal enum UIState { Visible, FadingOut, Hidden, FadingIn } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }