Decompiled source of Echoes of the Seer v1.0.0
EchoesOfTheSeer.dll
Decompiled a week ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Xml.Linq; using BepInEx; using BepInEx.Configuration; using BepInEx.Core.Logging.Interpolation; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using BepInEx.Unity.IL2CPP.Utils; using Fusion; using HarmonyLib; using HarmonyLib.Tools; using Il2CppInterop.Runtime.Injection; using Il2CppInterop.Runtime.InteropTypes; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppSystem; using Il2CppSystem.Collections; using Il2CppSystem.Collections.Generic; using Invector; using Microsoft.CodeAnalysis; using SSSGame; using SSSGame.AI; using SSSGame.Combat; using SSSGame.Controllers; using SSSGame.Localization; using SSSGame.UI; using SSSGame.Weather; using SandSailorStudio.Attributes; using SandSailorStudio.Inventory; using SandSailorStudio.UI; using SandSailorStudio.Utils; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; using UnityEngine.SceneManagement; using UnityEngine.UI; using eots.bepinex.mod.Core; using eots.bepinex.mod.Core.Helpers; using eots.bepinex.mod.Helpers; using eots.bepinex.mod.Managers; using eots.bepinex.mod.Managers.CharacterHelpers; using eots.bepinex.mod.Managers.Glyphs.Behaviors; using eots.bepinex.mod.Managers.Glyphs.Core; using eots.bepinex.mod.Managers.Inputs; using eots.bepinex.mod.Managers.Inputs.Commands; using eots.bepinex.mod.Managers.ItemSpawner; using eots.bepinex.mod.Managers.Prefabs; using eots.bepinex.mod.Managers.RunePowers; using eots.bepinex.mod.Managers.RunePowers.Earth.Basic; using eots.bepinex.mod.Managers.RunePowers.Earth.Core; using eots.bepinex.mod.Managers.RunePowers.Fire; using eots.bepinex.mod.Managers.Spells.Core; using eots.bepinex.mod.Managers.Spells.Fire; using eots.bepinex.mod.Managers.StatusEffects; using eots.bepinex.mod.Managers.Weather; using eots.bepinex.mod.Patches; using eots.bepinex.mod.Tools; using eots.bepinex.mod.UI.Numpad; using eots.bepinex.mod.UI.RunePowers; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("EchoesOfTheSeer")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+a1f6894bda307e0ef55cbb0e4539a79653f6680a")] [assembly: AssemblyProduct("Echoes of the Seer")] [assembly: AssemblyTitle("EchoesOfTheSeer")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.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 Glyph { private GameObject gameObject; private Vector3 originalScale; public GameObject GameObject => gameObject; public float OrbitAngle { get; set; } public float OrbitSpeed { get; set; } public float SpinSpeed { get; set; } public int Index { get; private set; } public float BaseHeight { get; private set; } public Vector3 OrbitAxis { get; private set; } public float OrbitDistance { get; private set; } public Vector3 OriginalScale => originalScale; public Glyph(GameObject prefab, Transform parent, float baseHeight, float orbitDistance, float orbitSpeed, float spinSpeed, int index, Vector3 orbitAxis) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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) BaseHeight = baseHeight * 0.5f; OrbitDistance = orbitDistance * 0.5f; OrbitSpeed = orbitSpeed; SpinSpeed = spinSpeed; Index = index; OrbitAxis = ((Vector3)(ref orbitAxis)).normalized; gameObject = Object.Instantiate<GameObject>(prefab, parent); Transform transform = gameObject.transform; originalScale = transform.localScale; gameObject.SetActive(true); Camera val = default(Camera); if (Extensions.TryGetComponentInChildren<Camera>(gameObject, ref val)) { ((Behaviour)val).enabled = false; } AudioListener val2 = default(AudioListener); if (Extensions.TryGetComponentInChildren<AudioListener>(gameObject, ref val2)) { ((Behaviour)val2).enabled = false; } Collider val3 = default(Collider); if (gameObject.TryGetComponent<Collider>(ref val3)) { val3.enabled = false; } OrbitAngle = Random.Range(0f, 360f); } public void Update(GlyphContext context, IGlyphBehavior behavior) { if (!((Object)(object)gameObject == (Object)null) && !((Object)(object)gameObject.transform == (Object)null) && !((Object)(object)context.Center == (Object)null)) { behavior.Update(this, context); } } public void Destroy() { if ((Object)(object)gameObject != (Object)null) { Object.Destroy((Object)(object)gameObject); } } } public class GlyphContext { public float Time { get; set; } public Transform Center { get; set; } public GlyphState CurrentState { get; set; } public RunePowerType ActiveRune { get; set; } public float VerticalOffset { get; set; } public int TotalGlyphs { get; set; } } internal class GlyphLifecycleController { private readonly Dictionary<RunePowerType, List<Glyph>> glyphGroups; private readonly Transform glyphContainer; private readonly float powerToGlyphRatio; private readonly int maxGlyphsPerRune; public GlyphLifecycleController(Dictionary<RunePowerType, List<Glyph>> glyphGroups, Transform glyphContainer, float powerToGlyphRatio = 30f, int maxGlyphsPerRune = 6) { this.glyphGroups = glyphGroups ?? new Dictionary<RunePowerType, List<Glyph>>(); this.glyphContainer = glyphContainer; this.powerToGlyphRatio = powerToGlyphRatio; this.maxGlyphsPerRune = maxGlyphsPerRune; } public void RefreshGlyphs(RunePowerType activeRune, float powerLevel, bool forceRebuild = false) { if ((Object)(object)glyphContainer == (Object)null) { return; } int num = Mathf.Clamp(Mathf.CeilToInt(powerLevel / powerToGlyphRatio), 0, maxGlyphsPerRune); if (!glyphGroups.TryGetValue(activeRune, out var value)) { value = new List<Glyph>(); glyphGroups[activeRune] = value; } int count = value.Count; if (!forceRebuild && num == count) { return; } if (num > count) { for (int i = count; i < num; i++) { Glyph glyph = GlyphFactory.Create(activeRune, i, glyphContainer); if (glyph != null) { value.Add(glyph); } } } else { for (int num2 = count - 1; num2 >= num; num2--) { value[num2]?.Destroy(); value.RemoveAt(num2); } } } public void DestroyAllGlyphs() { foreach (List<Glyph> value in glyphGroups.Values) { foreach (Glyph item in value) { item?.Destroy(); } } glyphGroups.Clear(); } } public class GlyphManager { private readonly Transform playerTransform; private readonly GameObject glyphContainer; private readonly Dictionary<RunePowerType, List<Glyph>> glyphGroups = new Dictionary<RunePowerType, List<Glyph>>(); private readonly Dictionary<RunePowerType, float> previousRunePowers = new Dictionary<RunePowerType, float>(); private readonly GlyphLifecycleController lifecycleController; private readonly GlyphUpdater glyphUpdater; private readonly RunePowerTracker runePowerTracker; private readonly GlyphBehaviorRegistry behaviorRegistry; private float runeLogTimer; private const float RunningSpeedThreshold = 3f; private int glyphIndex; public static GlyphManager Instance { get; private set; } public Dictionary<RunePowerType, List<Glyph>> GlyphGroups => glyphGroups; public Transform GlyphContainer => glyphContainer.transform; public bool RunePowerActive { get; set; } public GlyphManager(Transform player, Dictionary<RunePowerType, GameObject> glyphPrefabs) { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown if (Instance != null) { Debug.LogWarning(Object.op_Implicit("GlyphManager already exists, overwriting instance.")); } Instance = this; playerTransform = player; glyphContainer = new GameObject("GlyphContainer"); glyphContainer.transform.SetParent(playerTransform, false); GlyphFactory.Initialize(glyphPrefabs); behaviorRegistry = new GlyphBehaviorRegistry(); behaviorRegistry.InitializeBehaviors(); lifecycleController = new GlyphLifecycleController(glyphGroups, glyphContainer.transform); glyphUpdater = new GlyphUpdater(glyphGroups, behaviorRegistry, playerTransform); runePowerTracker = new RunePowerTracker(previousRunePowers); RunePowerService.OnRunePowerSwitched += HandleRuneSwitched; } ~GlyphManager() { RunePowerService.OnRunePowerSwitched -= HandleRuneSwitched; } private void HandleRuneSwitched(RunePowerType newRune) { foreach (KeyValuePair<RunePowerType, List<Glyph>> glyphGroup in glyphGroups) { if (glyphGroup.Key == newRune) { continue; } foreach (Glyph item in glyphGroup.Value) { item?.Destroy(); } glyphGroup.Value.Clear(); } RefreshGlyphs(newRune, forceRebuild: true); Debug.Log(Object.op_Implicit($"[GlyphManager] Rune switched to {newRune}, refreshing glyphs.")); } private void RefreshGlyphs(RunePowerType rune, bool forceRebuild) { float powerLevel = runePowerTracker.GetPowerLevel(rune); lifecycleController.RefreshGlyphs(rune, powerLevel, forceRebuild); } public void Update() { //IL_0028: 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) runeLogTimer += Time.deltaTime; float verticalOffset = 0f; Rigidbody val = default(Rigidbody); int num; if (((Component)playerTransform).TryGetComponent<Rigidbody>(ref val)) { Vector3 velocity = val.velocity; num = ((((Vector3)(ref velocity)).magnitude > 3f) ? 1 : 0); } else { num = 0; } bool isPlayerRunning = (byte)num != 0; RunePowerType currentRunePower = runePowerTracker.GetCurrentRunePower(); if (runePowerTracker.PowersChanged()) { RefreshGlyphs(currentRunePower, forceRebuild: false); } glyphUpdater.UpdateGlyphs(currentRunePower, RunePowerActive, verticalOffset, isPlayerRunning); } public void TriggerSpecialOnOneGlyph(FireStructure fireStructure, Action onComplete, SpecialEffectType effectType) { RunePowerType currentRunePower = runePowerTracker.GetCurrentRunePower(); if (glyphGroups.TryGetValue(currentRunePower, out var value) && value.Count != 0) { Glyph glyph = value[glyphIndex % value.Count]; glyphIndex++; if (behaviorRegistry.TryGetDispatcher(currentRunePower, out var dispatcher)) { dispatcher.TriggerSpecial(glyph, fireStructure, onComplete, effectType); } } } } public class EarthTerraformingCommands { public class UserDefined : IRuneCommand { public string Name => "Terraform (General)"; public string IconName => "HUD_atlas_controller_switch_22"; public float CommandCost => TerraformCostHelper.CalculateRuneCost(); public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral(); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class SmoothRoad : IRuneCommand { public string Name => "Terraform Road"; public string IconName => "Item_Structures_TerrainRoad"; public float CommandCost => 0.5f; public float RepeatDelay => 0.2f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)2, offsetAhead: 0f, width: 0f, height: 0f, blend: 3f, terrainType: (TerrainType)19); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class Smooth : IRuneCommand { public string Name => "Terraform Smooth"; public string IconName => "UIFlat_WhiteIcon_FallDmg"; public float CommandCost => 0.5f; public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)2, offsetAhead: 0f, width: 0f, height: 0f, blend: 7f, terrainType: (TerrainType)0); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class Level : IRuneCommand { public string Name => "Terraform Level"; public string IconName => "HUD_atlas_controller_switch_5"; public float CommandCost => 3f; public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)2, offsetAhead: 0f, width: 7f, height: 7f, blend: 3f, terrainType: (TerrainType)0); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class Raise : IRuneCommand { public string Name => "Terraform Raise"; public string IconName => "HUD_atlas_controller_switch_26"; public float CommandCost => 3f; public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)1, offsetAhead: 0f, width: 7f, height: 7f, blend: 3f, terrainType: (TerrainType)0); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class Dig : IRuneCommand { public string Name => "Terraform Dig"; public string IconName => "HUD_atlas_controller_switch_24"; public float CommandCost => 3f; public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)0, offsetAhead: 0f, width: 7f, height: 7f, blend: 3f, terrainType: (TerrainType)0); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } public class RestoreNature : IRuneCommand { public string Name => "Terraform Restore Nature"; public string IconName => "UIFlat_Icon_flower"; public float CommandCost => 0f; public float RepeatDelay => 0f; public float MinShamanismLevel => 0f; public void Execute(Transform playerTransform, int actionID) { TerraformOperationGeneral terraformOperationGeneral = new TerraformOperationGeneral((TerraformingToolOperation)3, offsetAhead: 0f, width: 0f, height: 0f, blend: 7f, terrainType: (TerrainType)0); StaticCoreHelpers.coroutineHelper.StartCoroutineHelper(terraformOperationGeneral.Execute()); } } } public static class ItemSpawnerTools { public static void SpawnItemsForward(Transform playerTransform, Vector3 startPos, IEnumerable<string> itemNames, float spaceBetweenItems = 1f, int quantity = 1) { //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_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: 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_0021: 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_002b: 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_0032: 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) Vector3 forward = playerTransform.forward; Vector3 normalized = ((Vector3)(ref forward)).normalized; int num = 0; foreach (string itemName in itemNames) { Vector3 pos = startPos + normalized * ((float)num * spaceBetweenItems); SpawnFromItemInfoSO(itemName, pos, Quaternion.identity, quantity); num++; } } public static void SpawnToInventoryWithLimit(string name, int quantity, Vector3 spawnPos, Quaternion spawnRot, int? qtyLimit = null, Character character = null, Villager villager = null) { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Expected O, but got Unknown //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) ItemCollection val = null; if ((Object)(object)character == (Object)null && (Object)(object)villager == (Object)null) { character = Globals.Character; } if ((Object)(object)character != (Object)null) { PlayerInteractionAgent component = ((Component)character).GetComponent<PlayerInteractionAgent>(); if ((Object)(object)component == (Object)null) { Plugin.Log.LogInfo((object)"[InventorySpawnLimit] ERROR: No PlayerInteractionAgent found on character"); return; } val = component.GetInventory(); } if (val == null && (Object)(object)villager != (Object)null) { InventoryComponent inventory = ((Character)villager).Inventory; if ((Object)(object)inventory != (Object)null) { val = inventory.GetItemCollection(); } } if (val == null) { Plugin.Log.LogInfo((object)"[InventorySpawnLimit] ERROR: No valid inventory found."); return; } ItemInfo valueOrDefault = Globals.GameObjectLists.ItemInfoSO.GetValueOrDefault(name); bool flag = default(bool); if ((Object)(object)valueOrDefault == (Object)null) { ManualLogSource log = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(53, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("[InventorySpawnLimit] ERROR: No ItemInfo found for '"); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("'"); } log.LogInfo(val2); return; } int num = ((valueOrDefault.stackSize <= 0) ? 1 : valueOrDefault.stackSize); int num2 = 0; IReadOnlyList<ItemContainer> containers = val.GetContainers(); int num3 = 0; while (true) { ItemContainer val3; try { val3 = containers[num3]; } catch { break; } List<Item> val4 = new List<Item>(); val3.GetItemsToList(val4); Enumerator<Item> enumerator = val4.GetEnumerator(); while (enumerator.MoveNext()) { Item current = enumerator.Current; if ((Object)(object)current.info == (Object)(object)valueOrDefault) { num2 += current.count; } } num3++; } int num4 = (qtyLimit.HasValue ? Math.Max(0, qtyLimit.Value - num2) : quantity); if (num4 <= 0) { return; } int num5 = Math.Min(quantity, num4); int num6 = 0; while (num5 > 0) { int num7 = Math.Min(num, num5); Item val5 = valueOrDefault.CreateItem(); ItemEventContext val6 = (ItemEventContext)0; ItemContainer freeContainer = val.GetFreeContainer(valueOrDefault, false); if (freeContainer == null) { ManualLogSource log2 = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(55, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("[InventorySpawnLimit] WARNING: No free container for '"); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("'"); } log2.LogInfo(val2); break; } if (num > 1) { freeContainer.AddItem(val5, num7, -1, val6); } else { freeContainer.AddItem(val5, 1, -1, val6); } num6 += num7; num5 -= num7; freeContainer.OnItemCountChanged?.Invoke(val5); } } public static void SpawnAndUseItem(string itemName, Vector3 spawnPos, Quaternion spawnRot) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown ItemInfo valueOrDefault = Globals.GameObjectLists.ItemInfoSO.GetValueOrDefault(itemName); bool flag = default(bool); if ((Object)(object)valueOrDefault == (Object)null) { ManualLogSource log = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(49, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnAndUseItem] ERROR: No ItemInfo found for '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(itemName); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log.LogInfo(val); return; } Item val2 = valueOrDefault.CreateItem(); if (val2 == null) { ManualLogSource log2 = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(49, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnAndUseItem] ERROR: Failed to create item '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(itemName); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log2.LogInfo(val); } else { val2.Use(((Component)Globals.Character).gameObject); } } public static void SpawnToInventoryOrGround(string name, int quantity, Vector3 spawnPos, Quaternion spawnRot) { //IL_01e4: 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_02ec: Expected O, but got Unknown //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_023d: 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_0258: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Expected O, but got Unknown //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown Character character = Globals.Character; if ((Object)(object)character == (Object)null) { Plugin.Log.LogInfo((object)"[SpawnToInventoryOrGround] ERROR: Character is null"); return; } PlayerInteractionAgent component = ((Component)character).GetComponent<PlayerInteractionAgent>(); if ((Object)(object)component == (Object)null) { Plugin.Log.LogInfo((object)"[SpawnToInventoryOrGround] ERROR: No PlayerInteractionAgent found"); return; } ItemCollection inventory = component.GetInventory(); if (inventory == null) { Plugin.Log.LogInfo((object)"[SpawnToInventoryOrGround] ERROR: No ItemCollection found"); return; } ItemInfo valueOrDefault = Globals.GameObjectLists.ItemInfoSO.GetValueOrDefault(name); bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val; if ((Object)(object)valueOrDefault == (Object)null) { ManualLogSource log = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(58, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnToInventoryOrGround] ERROR: No ItemInfo found for '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log.LogInfo(val); return; } int num = ((valueOrDefault.stackSize <= 0) ? 1 : valueOrDefault.stackSize); int num2 = quantity; int num3 = 0; IReadOnlyList<ItemContainer> containers = inventory.GetContainers(); int num4 = 0; while (true) { ItemContainer val2; try { val2 = containers[num4]; } catch { break; } List<Item> val3 = new List<Item>(); val2.GetItemsToList(val3); for (int i = 0; i < val3.Count; i++) { Item val4 = val3[i]; if ((Object)(object)val4.info == (Object)(object)valueOrDefault && val4.count < num) { int num5 = Math.Min(num - val4.count, num2); val4.count += num5; num2 -= num5; num3 += num5; ManualLogSource log2 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(54, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnToInventoryOrGround] Merged "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num5); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" into existing stack"); } log2.LogInfo(val); if (num2 <= 0) { break; } } val2.OnItemCountChanged?.Invoke(val4); } if (num2 <= 0) { break; } num4++; } while (num2 > 0) { int num6 = Math.Min(num2, num); Item val5 = valueOrDefault.CreateItem(); ItemEventContext val6 = (ItemEventContext)0; ItemContainer freeContainer = inventory.GetFreeContainer(valueOrDefault, false); if (freeContainer == null || freeContainer.IsFull(true)) { ManualLogSource log3 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(72, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnToInventoryOrGround] WARNING: No space for '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("' — spawning to ground"); } log3.LogInfo(val); SpawnStack(name, num6, spawnPos, spawnRot); num2 -= num6; continue; } freeContainer.AddItem(val5, num6, -1, val6); ManualLogSource log4 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(48, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnToInventoryOrGround] Added new stack: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num6); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("x '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log4.LogInfo(val); num3 += num6; freeContainer.OnItemCountChanged?.Invoke(val5); num2 -= num6; } ManualLogSource log5 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(75, 3, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpawnToInventoryOrGround] FINISHED: Requested "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(quantity); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(", added "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num3); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(", spawned "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(quantity - num3); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" to ground"); } log5.LogInfo(val); } public static void SpawnFromItemInfoSO(string internalName, Vector3 pos, Quaternion rot, int quantity = 1) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0074: 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) Dictionary<string, ItemInfo> itemInfoSO = Globals.GameObjectLists.ItemInfoSO; if (itemInfoSO == null || !itemInfoSO.ContainsKey(internalName)) { return; } ItemInfo val = itemInfoSO[internalName]; if ((Object)(object)val == (Object)null || (Object)(object)val.spawnObject == (Object)null) { ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(58, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("[ItemSpawnerTools] ERROR: ItemInfo '"); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<string>(internalName); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("' has no valid prefab."); } log.LogInfo(val2); } else { for (int i = 0; i < quantity; i++) { Object.Instantiate<GameObject>(val.spawnObject, pos, rot); } } } public static GameObject SpawnStack(string name, int quantity, Vector3 pos, Quaternion rot) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown SpawnableItem byName = SpawnableItemRegistry.GetByName(name); bool flag = default(bool); if (byName == null || (Object)(object)byName.Prefab == (Object)null) { ManualLogSource log = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(41, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[ItemSpawnerTools] ERROR: Invalid item '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log.LogInfo(val); return null; } ItemInfo valueOrDefault = Globals.GameObjectLists.ItemInfoSO.GetValueOrDefault(name); if ((Object)(object)valueOrDefault == (Object)null) { ManualLogSource log2 = Plugin.Log; BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(50, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[ItemSpawnerTools] ERROR: No ItemInfo found for '"); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("'"); } log2.LogInfo(val); return null; } ItemObjectSpawnContext val2 = (ItemObjectSpawnContext)1; Vector3 one = Vector3.one; Transform val3 = null; bool flag2 = true; return valueOrDefault.SpawnObject(ref val2, ref quantity, ref pos, ref rot, ref one, val3, flag2); } } public class RuneUIMenuManager : MonoBehaviour { public GameObject earthMenu; public GameObject airMenu; public GameObject fireMenu; public GameObject waterMenu; public void ShowMenu(RunePowerType activeRune) { earthMenu.SetActive(activeRune == RunePowerType.Earth); airMenu.SetActive(activeRune == RunePowerType.Air); fireMenu.SetActive(activeRune == RunePowerType.Fire); waterMenu.SetActive(activeRune == RunePowerType.Water); } } public class SpellProjectile : MonoBehaviour { private Vector3 target; private float speed = 10f; private Action onImpact; internal void Launch(Vector3 targetPosition, Action onImpact) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: 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_001e: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) target = targetPosition; this.onImpact = onImpact; ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(35, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[SpellProjectile] Launching toward "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<Vector3>(targetPosition); } log.LogInfo(val); } private void Update() { //IL_0006: 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_0055: 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) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if (Vector3.Distance(((Component)this).transform.position, target) < 0.1f) { Plugin.Log.LogInfo((object)"[SpellProjectile] Reached target, triggering impact."); onImpact?.Invoke(); Object.Destroy((Object)(object)((Component)this).gameObject); } else { ((Component)this).transform.position = Vector3.MoveTowards(((Component)this).transform.position, target, speed * Time.deltaTime); } } } public class FireRefuelSpell : BaseSpellCommand { public override string Name => "Refuel Nearby Fire"; public override RunePowerType RuneType => RunePowerType.Fire; public override float PowerCost => 5f; protected override void OnCast(Transform caster) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) List<FireStructure> lowFuelFireStructures = FireStarter.GetLowFuelFireStructures(caster, new HashSet<FireStructure>()); if (lowFuelFireStructures.Count == 0) { Debug.Log(Object.op_Implicit("[Spell] No low-fuel fires nearby.")); return; } FireStructure val = lowFuelFireStructures[0]; GameObject effect = PrefabManager.GetEffect("Item_Magic_ArtifactFire"); if ((Object)(object)effect == (Object)null) { Debug.LogWarning(Object.op_Implicit("[Spell] RefuelDelivery effect prefab not found.")); return; } GameObject obj = Object.Instantiate<GameObject>(effect, caster.position, Quaternion.identity); SpellEffectContext context = new SpellEffectContext { Caster = caster, Target = ((Component)val).transform, TargetData = val, OnComplete = delegate { Debug.Log(Object.op_Implicit("[Spell] Fire refuel complete.")); } }; obj.AddComponent<RefuelDeliveryEffect>().Initialize(context); } } [HarmonyPatch] public static class CreativeModePatches { [HarmonyPatch(typeof(ProficiencyPanel), "SetExpMultiplier")] public class ProficiencyPanelPatch { [HarmonyPrefix] public static bool Prefix(object expMultiplier) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown if (!isCreativeEnabled) { return false; } Property val = (Property)((expMultiplier is Property) ? expMultiplier : null); if (val != null) { float num = val.GetValue(); val.SetValue(100f); ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val2 = new BepInExInfoLogInterpolatedStringHandler(39, 3, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("[Player Panel] Forced attr "); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<int>(val.id); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" from "); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<float>(num); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral(" to "); ((BepInExLogInterpolatedStringHandler)val2).AppendFormatted<float>(val.GetValue()); ((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("x."); } log.LogInfo(val2); } return true; } } [HarmonyPatch(typeof(Villager), "_OnProficiencyLevelChanged")] public class VillagerProficiencyPatch { [HarmonyPrefix] public static bool Prefix(ref int id, ref float value) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown if (!isCreativeEnabled) { return false; } float num = value; value = 100f; ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(43, 3, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[Villager] Proficiency id="); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(id); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(", original="); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<float>(num); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(", new="); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<float>(value); } log.LogInfo(val); if (id == CharacterConstants.c_ShamanicProf_Attr) { ManualLogSource log2 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(40, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[Villager] Shamanism detected. Value: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<float>(value); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("."); } log2.LogInfo(val); } return true; } } private static bool isCreativeEnabled => PluginSettingsManager.EOTS_CreativeEnabled.Value; [HarmonyPostfix] [HarmonyPatch(typeof(NodeTemplate), "Configure")] private static void Configure_Postfix(NodeTemplate __instance) { if (isCreativeEnabled && !((Object)(object)__instance == (Object)null)) { __instance.blueprintConditionsRules = new List<BlueprintConditionsRule>(); } } [HarmonyPostfix] [HarmonyPatch(typeof(NodeTemplate), "FillManifest")] private static void FillManifest_Postfix(NodeTemplate __instance, ref ItemManifest manifest) { if (isCreativeEnabled && !((Object)(object)__instance == (Object)null)) { manifest.Clear(); } } [HarmonyPostfix] [HarmonyPatch(typeof(ItemManifestContainer), "GetManifest")] private static void GetManifest_Postfix(ItemManifestContainer __instance, ref ItemManifest __result) { if (isCreativeEnabled) { ItemCollection inventory = ((ItemContainer)__instance)._inventory; FarmCrop val = ((inventory != null) ? inventory.Owner.GetComponentInParent<FarmCrop>() : null); if (!((Object)(object)val != (Object)null) || !((Object)((Component)val).gameObject).name.Contains("_Crop")) { __result.Clear(); } } } [HarmonyPostfix] [HarmonyPatch(typeof(PlayerBuilder), "get_BuildPlacement")] private static void GetBuildPlacement_Postfix(PlayerBuilder __instance, ref Placement __result) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 if (isCreativeEnabled && !((Object)(object)__instance == (Object)null) && __result != null && (int)__instance.CurrentState == 1) { __result.Validity = (PlacementValidity)0; } } [HarmonyPostfix] [HarmonyPatch(typeof(PlayerBuilder), "set_BuildPlacement")] private static void SetBuildPlacement_Postfix(PlayerBuilder __instance, Placement value) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 if (isCreativeEnabled && !((Object)(object)__instance == (Object)null) && value != null && (int)__instance.CurrentState == 1) { value.Validity = (PlacementValidity)0; } } [HarmonyPostfix] [HarmonyPatch(typeof(DynamicDimensionsPlacementTool), "_ValidateFootprint")] [HarmonyPatch(new Type[] { typeof(LayerMask) })] private static void ValidateFootprint_Postfix(ref bool __result) { if (isCreativeEnabled) { __result = true; } } } [BepInPlugin("EchoesOfTheSeer", "Echoes of the Seer", "1.0.0")] public class Plugin : BasePlugin { internal static ManualLogSource Log; public override void Load() { Log = ((BasePlugin)this).Log; HarmonyFileLog.Enabled = true; Globals.Settings_ShowGodMode = false; Globals.Settings_ShowCreateMode = false; Globals.Settings_ShowDevelopmentMode = false; Globals.XMLExportsEnabled = false; try { InjectHelperClasses(); } catch (Exception ex) { Log.LogError((object)("InjectHelperClasses failed: " + ex)); } try { SettingsMenuStuff(); } catch (Exception ex2) { Log.LogError((object)("SettingsMenuStuff failed: " + ex2)); } try { ApplyHarmonyPatches(); } catch (Exception ex3) { Log.LogError((object)("ApplyHarmonyPatches failed: " + ex3)); } try { RunTheOtherStuff(); } catch (Exception ex4) { Log.LogError((object)("RunTheOtherStuff failed: " + ex4)); } if (PluginSettingsManager.EOTS_DevelopmentFeatures.Value) { try { InitializeDevelopmentOnlyStuff(); } catch (Exception ex5) { Log.LogError((object)("InitializeDevelopmentOnlyStuff failed: " + ex5)); } } } private static void InjectHelperClasses() { ClassInjector.RegisterTypeInIl2Cpp<CoroutineHelper>(); ClassInjector.RegisterTypeInIl2Cpp<EOTS_InputManager>(); ClassInjector.RegisterTypeInIl2Cpp<EOTS_StatusEffectsManager>(); ClassInjector.RegisterTypeInIl2Cpp<SceneWatcher>(); ClassInjector.RegisterTypeInIl2Cpp<RunePowerManager>(); ClassInjector.RegisterTypeInIl2Cpp<RunePowerIndicator>(); ClassInjector.RegisterTypeInIl2Cpp<RunePowerToggleManager>(); ClassInjector.RegisterTypeInIl2Cpp<NumpadHUDManager>(); ClassInjector.RegisterTypeInIl2Cpp<IgniteTornadoEffect>(); ClassInjector.RegisterTypeInIl2Cpp<RefuelDeliveryEffect>(); ClassInjector.RegisterTypeInIl2Cpp<SpellProjectile>(); } private void ApplyHarmonyPatches() { TryPatch(typeof(CharacterPatch)); TryPatch(typeof(HudPatch)); TryPatch(typeof(MainMenuPatch)); TryPatch(typeof(PraystationPatch)); TryPatch(typeof(SettingsMenuPatchV2)); TryPatch(typeof(WeatherSystemPatch)); if (PluginSettingsManager.EOTS_CreativeEnabled.Value) { TryPatch(typeof(CreativeModePatches)); } } private void TryPatch(Type patchType) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown try { Harmony.CreateAndPatchAll(patchType, (string)null); } catch (Exception ex) { ManualLogSource log = Log; bool flag = default(bool); BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(18, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to patch "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(patchType.Name); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(": "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<Exception>(ex); } log.LogError(val); } } private void SettingsMenuStuff() { PluginSettingsManager.Initialize(((BasePlugin)this).Config); StaticCoreHelpers.OnSettingsMenu = (Action<Transform>)Delegate.Combine(StaticCoreHelpers.OnSettingsMenu, new Action<Transform>(MainSettingsBuilder.Build)); } private void RunTheOtherStuff() { try { RunePowerConfig.Init(((BasePlugin)this).Config); } catch (Exception ex) { Log.LogError((object)("RunePowerConfig.Init failed: " + ex)); } try { StaticCoreHelpers.RefreshResourceInfos(); } catch (Exception ex2) { Log.LogError((object)("RefreshResourceInfos failed: " + ex2)); } try { ItemSpawnerResourceLoader.LoadAllResources(); } catch (Exception ex3) { Log.LogError((object)("ItemSpawnerResourceLoader.LoadAllResources failed: " + ex3)); } try { SpawnableItemRegistry.RegisterAll(); } catch (Exception ex4) { Log.LogError((object)("SpawnableItemRegistry.RegisterAll failed: " + ex4)); } try { RuneCommandRegistry.AssignSpellsToKeyPad(); } catch (Exception ex5) { Log.LogError((object)("RuneCommandRegistry.AssignSpellsToKeyPad failed: " + ex5)); } try { PrefabManager.Initialize(); } catch (Exception ex6) { Log.LogError((object)("PrefabManager.Initialize failed: " + ex6)); } try { ItemInfoManager.Initialize(); } catch (Exception ex7) { Log.LogError((object)("ItemInfoManager.Initialize failed: " + ex7)); } } private static void InitializeDevelopmentOnlyStuff() { if (Globals.XMLExportsEnabled) { ItemSpawnerHelpers.ExportEverything(); StatusEffectsHelper.ExportAllStatusEffectsToXml(); } Harmony.CreateAndPatchAll(typeof(BuildMenuPatch), (string)null); } } namespace eots.bepinex.mod { public static class MyPluginInfo { public const string PLUGIN_GUID = "EchoesOfTheSeer"; public const string PLUGIN_NAME = "Echoes of the Seer"; public const string PLUGIN_VERSION = "1.0.0"; } } namespace eots.bepinex.mod.Tools { public static class UIInspector { public static void InspectAndExportMenuComponentsXML(Transform root, bool exportToXml = true) { //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown if ((Object)(object)root == (Object)null) { Plugin.Log.LogInfo((object)"[UIInspector] Root transform is null."); } else if (exportToXml) { XElement xElement = new XElement("UIRoot"); xElement.Add(new XComment("Key:")); xElement.Add(new XComment("N = Name")); xElement.Add(new XComment("RT = RectTransform present")); xElement.Add(new XComment("Ap = AnchoredPos")); xElement.Add(new XComment("Sd = SizeDelta")); xElement.Add(new XComment("Amn = AnchorMin")); xElement.Add(new XComment("Amx = AnchorMax")); xElement.Add(new XComment("Pv = Pivot")); xElement.Add(new XComment("C = Component")); ExportRecursive(root, xElement); string text = Path.Combine(Globals.XMLExportDirectory, ((Object)root).name + "_UIExport.xml"); xElement.Save(text); ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(46, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[UIInspector] Export complete. File saved to: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(text); } log.LogInfo(val); } else { InspectRecursive(root, ""); } } private static void InspectRecursive(Transform current, string indent) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Expected O, but got Unknown string text = indent + ((Object)current).name; ManualLogSource log = Plugin.Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(26, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("[UIInspector] GameObject: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(text); } log.LogInfo(val); foreach (Component component in ((Component)current).GetComponents<Component>()) { if (!((Object)(object)component == (Object)null)) { ManualLogSource log2 = Plugin.Log; val = new BepInExInfoLogInterpolatedStringHandler(16, 1, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" └─ Component: "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(((object)component).GetType().Name); } log2.LogInfo(val); } } for (int i = 0; i < current.childCount; i++) { InspectRecursive(current.GetChild(i), indent + " "); } } private static void ExportRecursive(Transform current, XElement parentElement) { //IL_005f: 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_009f: 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_00df: Unknown result type (might be due to invalid IL or missing references) XElement xElement = new XElement("GO", new XAttribute("N", ((Object)current).name)); RectTransform component = ((Component)current).GetComponent<RectTransform>(); if ((Object)(object)component != (Object)null) { xElement.Add(new XAttribute("RT", true)); xElement.Add(new XAttribute("Ap", component.anchoredPosition)); xElement.Add(new XAttribute("Sd", component.sizeDelta)); xElement.Add(new XAttribute("Amn", component.anchorMin)); xElement.Add(new XAttribute("Amx", component.anchorMax)); xElement.Add(new XAttribute("Pv", component.pivot)); } foreach (Component component2 in ((Component)current).GetComponents<Component>()) { if (!((Object)(object)component2 == (Object)null)) { xElement.Add(new XElement("C", ((object)component2).GetType().Name)); } } parentElement.Add(xElement); for (int i = 0; i < current.childCount; i++) { ExportRecursive(current.GetChild(i), xElement); } } public static Transform FindDeepChild(Transform parent, string name) { for (int i = 0; i < parent.childCount; i++) { Transform child = parent.GetChild(i); if (((Object)child).name == name) { return child; } Transform val = FindDeepChild(child, name); if ((Object)(object)val != (Object)null) { return val; } } return null; } } } namespace eots.bepinex.mod.UI { public class CustomTabButtonCategory : TabButtonCategory { public Action OnSelected; public override void _OnSelect() { Plugin.Log.LogInfo((object)"_OnSelect"); OnSelected?.Invoke(); } public override void OnSelect(BaseEventData eventData) { Plugin.Log.LogInfo((object)"OnSelect"); } } public static class UIHelpers { public static Toggle CreateToggle(string name, string text, bool startValue, Transform parent, Vector2 size, Vector2 anchorPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, UnityAction<bool> callback = null, Color bgColor = default(Color)) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001c: 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_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0037: 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) //IL_0047: 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_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Expected O, but got Unknown //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: 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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Expected O, but got Unknown //IL_0118: 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_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name); val.transform.SetParent(parent, false); RectTransform val2 = val.AddComponent<RectTransform>(); ((Transform)val2).localPosition = Vector3.zero; val2.sizeDelta = size; val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.pivot = pivot; val2.anchoredPosition = anchorPosition; Rect rect = val2.rect; Vector2 size2 = ((Rect)(ref rect)).size; Toggle val3 = val.AddComponent<Toggle>(); GameObject val4 = new GameObject("Toggle"); val4.transform.SetParent(val.transform, false); RectTransform obj = val4.AddComponent<RectTransform>(); obj.anchorMin = new Vector2(0f, 0.5f); obj.anchorMax = new Vector2(0f, 0.5f); obj.pivot = new Vector2(0f, 0.5f); obj.sizeDelta = new Vector2(size2.x / 4f, size2.y); GameObject val5 = new GameObject("Background"); val5.transform.SetParent(val4.transform, false); RectTransform obj2 = val5.AddComponent<RectTransform>(); obj2.sizeDelta = new Vector2(16f, 16f); obj2.anchorMin = new Vector2(0.5f, 0.5f); obj2.anchorMax = new Vector2(0.5f, 0.5f); obj2.pivot = new Vector2(0.5f, 0.5f); obj2.anchoredPosition = new Vector2(0f, 0f); Image val6 = val5.AddComponent<Image>(); ((Graphic)val6).color = Color.white; GameObject val7 = new GameObject("Checkmark"); val7.transform.SetParent(val5.transform, false); RectTransform obj3 = val7.AddComponent<RectTransform>(); obj3.sizeDelta = new Vector2(13f, 13f); obj3.anchorMin = new Vector2(0.5f, 0.5f); obj3.anchorMax = new Vector2(0.5f, 0.5f); obj3.pivot = new Vector2(0.5f, 0.5f); obj3.anchoredPosition = new Vector2(0f, 0f); Image val8 = val7.AddComponent<Image>(); ((Graphic)val8).color = Color.green; ((Selectable)val3).targetGraphic = (Graphic)(object)val6; val3.graphic = (Graphic)(object)val8; val3.isOn = startValue; GameObject val9 = new GameObject("text"); RectTransform obj4 = val9.AddComponent<RectTransform>(); ((Transform)obj4).SetParent((Transform)(object)val2, false); obj4.anchorMin = new Vector2(0f, 0f); obj4.anchorMax = new Vector2(1f, 1f); obj4.offsetMin = new Vector2(size2.x / 4f, 0f); obj4.offsetMax = new Vector2(0f, 0f); TextMeshProUGUI obj5 = val9.AddComponent<TextMeshProUGUI>(); ((TMP_Text)obj5).text = text; ((TMP_Text)obj5).fontSize = val2.sizeDelta.y / 2f; ((TMP_Text)obj5).alignment = (TextAlignmentOptions)513; if ((Delegate)(object)callback != (Delegate)null) { ((UnityEvent<bool>)(object)val3.onValueChanged).AddListener(callback); } return val3; } public static Slider AddSlider(string text, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Color color, float minSliderValue, float maxSliderValue, float stepSize, float initialValue, UnityAction<float> callback) { //IL_000e: 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_0034: 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_0044: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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_0081: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_014d: 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_0179: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: 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_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0295: 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_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: 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_02fb: Unknown result type (might be due to invalid IL or missing references) float num = size.y / 3f; RectTransform val = new GameObject("SliderContainer").AddComponent<RectTransform>(); ((Transform)val).SetParent(parent, false); val.anchorMin = anchorMin; val.anchorMax = anchorMax; val.anchoredPosition = anchoredPosition; val.pivot = pivot; val.sizeDelta = size; ((TMP_Text)AddTextMeshPro(text, num, (Transform)(object)val, new Vector2(size.x, num), new Vector2(0f, 0f), new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(0.5f, 1f))).alignment = (TextAlignmentOptions)514; TextMeshProUGUI valueText = AddTextMeshPro("1.0", num, (Transform)(object)val, new Vector2(size.x, num), new Vector2(0f, (0f - size.y) / 3f), new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(0.5f, 1f)); ((TMP_Text)valueText).alignment = (TextAlignmentOptions)514; GameObject val2 = new GameObject("Slider"); RectTransform val3 = val2.AddComponent<RectTransform>(); ((Transform)val3).SetParent((Transform)(object)val, false); val3.anchorMin = new Vector2(0f, 0f); val3.anchorMax = new Vector2(1f, 0f); val3.anchoredPosition = new Vector2(0f, 0f); val3.pivot = new Vector2(0.5f, 0f); val3.sizeDelta = new Vector2(-5f, num / 2f); ((Graphic)val2.AddComponent<Image>()).color = color; Slider slider = val2.AddComponent<Slider>(); slider.minValue = minSliderValue; slider.maxValue = maxSliderValue; slider.wholeNumbers = false; slider.value = initialValue; RectTransform val4 = new GameObject("fill").AddComponent<RectTransform>(); RectTransform val5 = new GameObject("bar").AddComponent<RectTransform>(); ((Transform)val4).SetParent((Transform)(object)val3, false); ((Transform)val5).SetParent((Transform)(object)val3, false); Vector2 val6 = default(Vector2); ((Vector2)(ref val6))..ctor(0f, 0f); val5.anchoredPosition = val6; val4.anchoredPosition = val6; ((Vector2)(ref val6))..ctor(0.5f, 0.5f); val5.anchorMin = val6; val4.anchorMin = val6; ((Vector2)(ref val6))..ctor(0.5f, 0.5f); val5.anchorMax = val6; val4.anchorMax = val6; ((Vector2)(ref val6))..ctor(0.5f, 0.5f); val5.pivot = val6; val4.pivot = val6; val5.sizeDelta = new Vector2(val3.sizeDelta.y + 2f, val3.sizeDelta.y + 2f); ((Graphic)((Component)val5).gameObject.AddComponent<Image>()).color = Color.white; slider.fillRect = val4; slider.handleRect = val5; UnityAction<float> val7 = UnityAction<float>.op_Implicit((Action<float>)delegate(float value) { float num2 = value / stepSize * stepSize; num2 = Mathf.Round(num2 * 10f) / 10f; slider.value = num2; ((TMP_Text)valueText).text = value.ToString("F1"); }); callback = ((!((Delegate)(object)callback == (Delegate)null)) ? (callback + val7) : val7); ((UnityEvent<float>)(object)slider.onValueChanged).AddListener(callback); ((UnityEvent<float>)(object)slider.onValueChanged)?.Invoke(slider.value); return slider; } public static TMP_Dropdown AddDropDown(string name, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Color color, List<string> values, UnityAction<int> callback) { //IL_0005: 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_001a: 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_0028: 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_0038: 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) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_00d4: 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_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Expected O, but got Unknown GameObject val = new GameObject("DropDown"); RectTransform val2 = val.AddComponent<RectTransform>(); ((Transform)val2).SetParent(parent, false); val2.sizeDelta = size; val2.anchoredPosition = anchoredPosition; val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.pivot = pivot; Image val3 = val.AddComponent<Image>(); ((Graphic)val3).color = Color.green; TMP_Dropdown val4 = val.AddComponent<TMP_Dropdown>(); ((Selectable)val4).targetGraphic = (Graphic)(object)val3; GameObject val5 = new GameObject("arrow"); RectTransform obj = val5.AddComponent<RectTransform>(); ((Transform)obj).SetParent((Transform)(object)val2, false); obj.anchorMin = new Vector2(1f, 0f); obj.anchorMax = new Vector2(1f, 1f); obj.pivot = new Vector2(1f, 0.5f); obj.anchoredPosition = new Vector2(-10f, 0f); obj.sizeDelta = new Vector2(24f, 24f); Image obj2 = val5.AddComponent<Image>(); obj2.sprite = SpriteHelpers.GetSprite(ESprite.DropDown); ((Graphic)obj2).color = Constants.colorRed; ScrollRect val6 = AddScrollView((Transform)(object)val2, new Vector2(0f, 150f), Vector2.zero, new Vector2(0f, 0f), new Vector2(1f, 0f), new Vector2(0.5f, 1f), isVertical: true, 1f); TextMeshProUGUI captionText = AddTextMeshPro("Options", 16f, (Transform)(object)val2, new Vector2(0f, 10f), Vector2.zero, Vector2.zero, Vector2.one, new Vector2(0.5f, 0.5f)); Toggle val7 = CreateToggle("toggle", "OptionA", startValue: false, (Transform)(object)val6.content, new Vector2(0f, 20f), new Vector2(0.5f, 0.5f), Vector2.zero, Vector2.one, new Vector2(0.5f, 0.5f), null, Constants.colorBlue); val4.template = ((Component)val6).gameObject.GetComponent<RectTransform>(); val4.captionText = (TMP_Text)(object)captionText; ((Graphic)val4.captionText).color = Color.green; val4.itemText = (TMP_Text)(object)((Component)val7).GetComponentInChildren<TextMeshProUGUI>(); List<OptionData> val8 = new List<OptionData>(); foreach (string value in values) { val8.Add(new OptionData(value)); } val4.AddOptions(val8); if ((Delegate)(object)callback != (Delegate)null) { ((UnityEvent<int>)(object)val4.onValueChanged).AddListener(callback); } return val4; } public static Button AddButton(string text, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Color color, UnityAction callback) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_0070: 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_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_0098: 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) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Button"); val.transform.SetParent(parent, false); RectTransform obj = val.AddComponent<RectTransform>(); ((Graphic)val.AddComponent<Image>()).color = color; Button val2 = val.AddComponent<Button>(); obj.sizeDelta = size; ((Transform)obj).localPosition = Vector3.zero; obj.anchorMin = anchorMin; obj.anchorMax = anchorMax; obj.pivot = pivot; obj.anchoredPosition = anchoredPosition; Rect rect = obj.rect; Vector2 size2 = ((Rect)(ref rect)).size; AddTextMeshPro(text, size2.y / 2f, val.transform, Vector2.zero, Vector2.zero, new Vector2(0f, 0f), new Vector2(1f, 1f), new Vector2(0.5f, 0.5f)); if ((Delegate)(object)callback != (Delegate)null) { ((UnityEvent)val2.onClick).AddListener(callback); } return val2; } public static Button AddButton(string text, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Color color, Sprite backGroundImage, UnityAction callback) { //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_0004: 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_0008: 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) Button obj = AddButton(text, parent, size, anchoredPosition, anchorMin, anchorMax, pivot, color, callback); ((Component)obj).GetComponent<Image>().sprite = backGroundImage; return obj; } public static void AddUnityInputField(Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001f: 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_002d: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0080: 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) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: 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_00e1: 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_0101: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("MyInputField"); val.transform.SetParent(parent, false); RectTransform obj = val.AddComponent<RectTransform>(); obj.sizeDelta = size; obj.anchorMin = anchorMin; obj.anchorMax = anchorMax; obj.pivot = pivot; obj.anchoredPosition = anchoredPosition; ((Graphic)val.AddComponent<Image>()).color = Color.white; InputField obj2 = val.AddComponent<InputField>(); GameObject val2 = new GameObject("Placeholder"); RectTransform obj3 = val2.AddComponent<RectTransform>(); ((Transform)obj3).SetParent(val.transform, false); obj3.anchorMin = new Vector2(0f, 0f); obj3.anchorMax = new Vector2(1f, 1f); obj3.offsetMin = Vector2.zero; obj3.offsetMax = Vector2.zero; Text val3 = val2.AddComponent<Text>(); val3.text = "Enter text..."; ((Graphic)val3).color = Color.gray; val3.supportRichText = false; GameObject val4 = new GameObject("Text"); val4.AddComponent<RectTransform>(); val4.transform.SetParent(val.transform, false); Text val5 = val4.AddComponent<Text>(); ((Graphic)val5).color = Color.black; val5.supportRichText = false; obj2.placeholder = (Graphic)(object)val3; obj2.textComponent = val5; } public static TMP_InputField AddInputField(Transform parent, string placeHolderText, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, bool disableESC = false, UnityAction<string> OnTextChangedCallback = null, UnityAction<string> onSelectedCallback = null, UnityAction<string> onDeSelectCallback = null) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001f: 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_002e: 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_003d: 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_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_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00e8: 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_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0156: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("InputField"); val.transform.SetParent(parent, false); RectTransform obj = val.AddComponent<RectTransform>(); obj.sizeDelta = size; obj.anchorMin = anchorMin; obj.anchorMax = anchorMax; obj.pivot = pivot; obj.anchoredPosition = anchoredPosition; Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = Color.white; TMP_InputField val3 = ((!disableESC) ? val.AddComponent<TMP_InputField>() : val.AddComponent<TMP_InputField>()); ((Selectable)val3).targetGraphic = (Graphic)(object)val2; val3.readOnly = false; ColorBlock colors = ((Selectable)val3).colors; ((ColorBlock)(ref colors)).selectedColor = new Color(0.8f, 1f, 0.8f, 1f); ((Selectable)val3).colors = colors; GameObject val4 = new GameObject("Text Area"); val4.transform.SetParent(val.transform, false); RectTransform val5 = val4.AddComponent<RectTransform>(); val4.AddComponent<RectMask2D>().padding = new Vector4(-8f, -8f, -5f, -5f); val5.sizeDelta = Vector2.zero; val5.anchorMin = new Vector2(0f, 0f); val5.anchorMax = new Vector2(1f, 1f); val5.pivot = new Vector2(0.5f, 0.5f); val5.anchoredPosition = Vector2.zero; GameObject val6 = new GameObject("Placeholder"); val6.transform.SetParent(val4.transform, false); RectTransform obj2 = val6.AddComponent<RectTransform>(); obj2.sizeDelta = Vector2.zero; obj2.anchorMin = new Vector2(0f, 0f); obj2.anchorMax = new Vector2(1f, 1f); obj2.pivot = new Vector2(0.5f, 0.5f); obj2.anchoredPosition = Vector2.zero; TextMeshProUGUI val7 = val6.AddComponent<TextMeshProUGUI>(); ((TMP_Text)val7).text = placeHolderText; ((TMP_Text)val7).fontSize = 14f; ((Graphic)val7).color = new Color(0.5f, 0.5f, 0.5f, 1f); ((TMP_Text)val7).alignment = (TextAlignmentOptions)514; GameObject val8 = new GameObject("Text"); val8.transform.SetParent(val4.transform, false); RectTransform obj3 = val8.AddComponent<RectTransform>(); obj3.sizeDelta = Vector2.zero; obj3.anchorMin = new Vector2(0f, 0f); obj3.anchorMax = new Vector2(1f, 1f); obj3.pivot = new Vector2(0.5f, 0.5f); obj3.anchoredPosition = Vector2.zero; TextMeshProUGUI val9 = val8.AddComponent<TextMeshProUGUI>(); ((TMP_Text)val9).fontSize = 14f; ((Graphic)val9).color = Color.black; ((TMP_Text)val9).alignment = (TextAlignmentOptions)514; val3.textViewport = val5; val3.textComponent = (TMP_Text)(object)val9; val3.placeholder = (Graphic)(object)val7; if ((Delegate)(object)OnTextChangedCallback != (Delegate)null) { ((UnityEvent<string>)(object)val3.onValueChanged).AddListener(OnTextChangedCallback); } if ((Delegate)(object)onSelectedCallback != (Delegate)null) { ((UnityEvent<string>)(object)val3.onSelect).AddListener(onSelectedCallback); } if ((Delegate)(object)onDeSelectCallback != (Delegate)null) { ((UnityEvent<string>)(object)val3.onDeselect).AddListener(onDeSelectCallback); } return val3; } public static RectTransform AddPanel(string name, Transform parent, Vector2 size, Color color, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot) { //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_0013: 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_0026: 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_0036: 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_0046: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name); val.transform.SetParent(parent, false); RectTransform val2 = val.AddComponent<RectTransform>(); ((Graphic)val.AddComponent<Image>()).color = color; val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.anchoredPosition = anchoredPosition; val2.pivot = pivot; val2.sizeDelta = size; return val2; } public static RectTransform AddVerticalPanel(string name, Transform parent, Vector2 size, Color color, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, float spacing = 0f) { //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_0013: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0068: 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_0078: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name); val.transform.SetParent(parent, false); RectTransform val2 = val.AddComponent<RectTransform>(); Image val3 = val.AddComponent<Image>(); VerticalLayoutGroup obj = val.AddComponent<VerticalLayoutGroup>(); ((LayoutGroup)obj).childAlignment = (TextAnchor)4; ((HorizontalOrVerticalLayoutGroup)obj).childForceExpandHeight = false; ((HorizontalOrVerticalLayoutGroup)obj).childForceExpandWidth = true; ((HorizontalOrVerticalLayoutGroup)obj).childControlHeight = false; ((HorizontalOrVerticalLayoutGroup)obj).childControlWidth = false; ((HorizontalOrVerticalLayoutGroup)obj).spacing = spacing; ((Graphic)val3).color = color; val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.anchoredPosition = anchoredPosition; val2.pivot = pivot; val2.sizeDelta = size; return val2; } public static TextMeshProUGUI AddTextMeshPro(string text, float fontSize, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot) { //IL_0005: 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_0012: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: 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) GameObject val = new GameObject("MyText"); RectTransform val2 = val.AddComponent<RectTransform>(); val2.sizeDelta = size; TextMeshProUGUI val3 = val.AddComponent<TextMeshProUGUI>(); ((TMP_Text)val3).text = text; ((TMP_Text)val3).fontSize = fontSize; ((TMP_Text)val3).alignment = (TextAlignmentOptions)514; val.transform.SetParent(parent, false); val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.pivot = pivot; val2.anchoredPosition = anchoredPosition; return val3; } public static ScrollRect AddScrollView(Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, bool isVertical = false, float spacing = 0f) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001a: 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_0029: 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_0037: 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_0059: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: 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_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_00e1: 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_0115: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("ScrollView"); RectTransform obj = val.AddComponent<RectTransform>(); ((Transform)obj).SetParent(parent, false); obj.anchorMin = anchorMin; obj.anchorMax = anchorMax; obj.pivot = pivot; obj.sizeDelta = size; obj.anchoredPosition = anchoredPosition; ScrollRect obj2 = val.AddComponent<ScrollRect>(); obj2.scrollSensitivity = 25f; GameObject val2 = new GameObject("Mask"); val2.transform.SetParent(val.transform, false); RectTransform val3 = val2.AddComponent<RectTransform>(); val3.anchorMax = new Vector2(1f, 1f); val3.anchorMin = new Vector2(0f, 0f); val3.sizeDelta = Vector2.zero; ((Graphic)val2.AddComponent<Image>()).color = Constants.colorBackGround; val2.AddComponent<Mask>(); GameObject val4 = new GameObject("content"); val4.transform.SetParent(val2.transform, false); val4.transform.localPosition = Vector3.zero; RectTransform val5 = val4.AddComponent<RectTransform>(); val5.anchorMax = new Vector2(1f, 1f); val5.anchorMin = new Vector2(0f, 0f); val5.pivot = new Vector2(0.5f, 1f); val5.offsetMin = Vector2.zero; val5.offsetMax = Vector2.zero; val3.sizeDelta = Vector2.zero; if (isVertical) { VerticalLayoutGroup obj3 = val4.AddComponent<VerticalLayoutGroup>(); ((HorizontalOrVerticalLayoutGroup)obj3).childForceExpandHeight = false; ((HorizontalOrVerticalLayoutGroup)obj3).childControlHeight = false; ((HorizontalOrVerticalLayoutGroup)obj3).childForceExpandWidth = true; ((HorizontalOrVerticalLayoutGroup)obj3).spacing = spacing; ContentSizeFitter obj4 = val4.AddComponent<ContentSizeFitter>(); obj4.verticalFit = (FitMode)2; obj4.horizontalFit = (FitMode)0; } else { HorizontalLayoutGroup obj5 = val4.AddComponent<HorizontalLayoutGroup>(); ((HorizontalOrVerticalLayoutGroup)obj5).childForceExpandHeight = true; ((HorizontalOrVerticalLayoutGroup)obj5).childForceExpandWidth = true; ((HorizontalOrVerticalLayoutGroup)obj5).childControlHeight = false; ((HorizontalOrVerticalLayoutGroup)obj5).childControlWidth = false; ((HorizontalOrVerticalLayoutGroup)obj5).spacing = spacing; ContentSizeFitter obj6 = val4.AddComponent<ContentSizeFitter>(); obj6.verticalFit = (FitMode)0; obj6.horizontalFit = (FitMode)2; } obj2.content = val5; obj2.horizontal = !isVertical; obj2.vertical = isVertical; obj2.viewport = val3; obj2.movementType = (MovementType)2; return obj2; } public static ScrollRect AddScrollViewGrid(Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, bool isVertical = false, float spacing = 0f, float childHeight = 100f, float childWidth = 100f) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: 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_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: 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_00bd: 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_00d8: 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_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_013a: 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_0152: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: 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) GameObject val = new GameObject("ScrollView"); RectTransform val2 = val.AddComponent<RectTransform>(); ((Transform)val2).SetParent(parent, false); val2.anchorMin = anchorMin; val2.anchorMax = anchorMax; val2.pivot = pivot; val2.sizeDelta = size + new Vector2(spacing, spacing); val2.anchoredPosition = anchoredPosition; ScrollRect obj = val.AddComponent<ScrollRect>(); obj.scrollSensitivity = 25f; GameObject val3 = new GameObject("Mask"); val3.transform.SetParent(val.transform, false); RectTransform val4 = val3.AddComponent<RectTransform>(); val4.anchorMax = new Vector2(1f, 1f); val4.anchorMin = new Vector2(0f, 0f); val4.sizeDelta = Vector2.zero; ((Graphic)val3.AddComponent<Image>()).color = Constants.colorBackGround; val3.AddComponent<Mask>(); GameObject val5 = new GameObject("content"); val5.transform.SetParent(val3.transform, false); val5.transform.localPosition = Vector3.zero; RectTransform val6 = val5.AddComponent<RectTransform>(); val6.anchorMax = new Vector2(1f, 1f); val6.anchorMin = new Vector2(0f, 0f); val6.pivot = new Vector2(0.5f, 1f); val6.offsetMin = Vector2.zero; val6.offsetMax = Vector2.zero; val4.sizeDelta = Vector2.zero; GridLayoutGroup val7 = val5.gameObject.AddComponent<GridLayoutGroup>(); val7.spacing = new Vector2(spacing, spacing); val7.cellSize = new Vector2(childHeight, childWidth); Rect rect = val2.rect; int constraintCount = (int)Math.Floor(((Rect)(ref rect)).width / childWidth); rect = val2.rect; int constraintCount2 = (int)Math.Floor(((Rect)(ref rect)).height / childHeight); if (isVertical) { val7.constraint = (Constraint)1; val7.constraintCount = constraintCount; } else { val7.constraint = (Constraint)2; val7.constraintCount = constraintCount2; } ContentSizeFitter obj2 = val5.AddComponent<ContentSizeFitter>(); obj2.horizontalFit = (FitMode)2; obj2.verticalFit = (FitMode)2; obj.content = val6; obj.horizontal = !isVertical; obj.vertical = isVertical; obj.viewport = val4; obj.movementType = (MovementType)2; return obj; } public static RectTransform AddGrid(Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, bool isVertical = false, float spacing = 0f, float childHeight = 100f, float childWidth = 100f) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001a: 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_0029: 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_0038: 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_0059: 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_0069: 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_0083: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("GridView"); RectTransform obj = val.AddComponent<RectTransform>(); ((Transform)obj).SetParent(parent, false); obj.anchorMin = anchorMin; obj.anchorMax = anchorMax; obj.pivot = pivot; obj.sizeDelta = size; obj.anchoredPosition = anchoredPosition; GridLayoutGroup val2 = val.AddComponent<GridLayoutGroup>(); val2.spacing = new Vector2(spacing, spacing); val2.cellSize = new Vector2(childHeight, childWidth); Rect rect = obj.rect; int constraintCount = (int)Math.Floor(((Rect)(ref rect)).width / childWidth); rect = obj.rect; int constraintCount2 = (int)Math.Floor(((Rect)(ref rect)).height / childHeight); if (isVertical) { val2.constraint = (Constraint)1; val2.constraintCount = constraintCount; } else { val2.constraint = (Constraint)2; val2.constraintCount = constraintCount2; } ContentSizeFitter obj2 = val.AddComponent<ContentSizeFitter>(); obj2.horizontalFit = (FitMode)2; obj2.verticalFit = (FitMode)2; return obj; } public static TMP_Dropdown CreateDropdown(string name, Transform parent, Vector2 size, Vector2 anchoredPosition, Vector2 anchorMin, Vector2 anchorMax, Vector2 pivot, Color backgroundColor, List<string> values, UnityAction<int> callback) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0025: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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_0051: 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_0070: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: 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