Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of HudRevizualized v0.5.0
ValheimHudRevizualized.dll
Decompiled 2 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using TMPro; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("0.0.0.0")] namespace ValheimHudRevizualized; public static class HotkeyBarPatch { private static readonly FieldInfo ElementsField = AccessTools.Field(typeof(HotkeyBar), "m_elements"); private static readonly FieldInfo SelectedField = AccessTools.Field(typeof(HotkeyBar), "m_selected"); private static int _selectedSlot; private static bool _pendingEquip; private static int _pendingSlot; public static int GetSelectedSlot() { return _selectedSlot; } internal static void ResetState() { _selectedSlot = 0; _pendingEquip = false; _pendingSlot = 0; } [HarmonyPatch(typeof(HotkeyBar), "Update")] [HarmonyPostfix] private static void HotkeyBar_Update_Postfix(HotkeyBar __instance) { if (SelectedField == null || ElementsField == null) { return; } Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null || ((Character)localPlayer).IsDead()) { return; } int num = (int)SelectedField.GetValue(__instance); if (num >= 0) { _selectedSlot = num; } for (int i = 0; i < 8; i++) { if (Input.GetKeyDown((KeyCode)(49 + i))) { _selectedSlot = i; SelectedField.SetValue(__instance, i); break; } } if (_pendingEquip && !Input.GetMouseButton(1)) { _pendingEquip = false; localPlayer.UseHotbarItem(_pendingSlot + 1); } if (!Input.GetMouseButton(1)) { return; } float axis = Input.GetAxis("Mouse ScrollWheel"); if (axis != 0f && ElementsField.GetValue(__instance) is IList list && list.Count != 0) { int count = list.Count; if (axis > 0f) { _selectedSlot = (_selectedSlot - 1 + count) % count; } else { _selectedSlot = (_selectedSlot + 1) % count; } SelectedField.SetValue(__instance, _selectedSlot); _pendingEquip = true; _pendingSlot = _selectedSlot; } } [HarmonyPatch(typeof(ZInput), "GetMouseScrollWheel")] [HarmonyPrefix] private static bool ZInput_GetMouseScrollWheel_Prefix(ref float __result) { if (!Input.GetMouseButton(1)) { return true; } Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null || ((Character)localPlayer).IsDead()) { return true; } __result = 0f; return false; } [HarmonyPatch(typeof(HotkeyBar), "UpdateIcons")] [HarmonyPostfix] private static void HotkeyBar_UpdateIcons_Postfix(HotkeyBar __instance) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) RectTransform component = ((Component)__instance).GetComponent<RectTransform>(); if ((Object)(object)component != (Object)null) { ((Transform)component).localPosition = new Vector3(10000f, 0f, 0f); } } } public static class HudPatch { [HarmonyPatch(typeof(Hud), "Awake")] [HarmonyPostfix] private static void Hud_Awake_Postfix() { CustomHotbar.Destroy(); HotkeyBarPatch.ResetState(); } [HarmonyPatch(typeof(Hud), "Update")] [HarmonyPostfix] private static void Hud_Update_Postfix(Hud __instance) { if (!CustomHotbar.IsBuilt) { CustomHotbar.Build(((Component)__instance).transform); } CustomHotbar.UpdateSlots(); CustomHotbar.UpdateBars(); CustomHotbar.UpdateGuardianPower(); CustomHotbar.HideVanillaHud(__instance); } } [BepInPlugin("com.shadow.hudrevizualized", "Valheim HUD Revizualized", "0.5.0")] public class Plugin : BaseUnityPlugin { public const string PluginGUID = "com.shadow.hudrevizualized"; public const string PluginName = "Valheim HUD Revizualized"; public const string PluginVersion = "0.5.0"; private Harmony _harmony; private void Awake() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown _harmony = new Harmony("com.shadow.hudrevizualized"); _harmony.PatchAll(typeof(HotkeyBarPatch)); _harmony.PatchAll(typeof(HudPatch)); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Valheim HUD Revizualized v0.5.0 loaded."); } private void OnDestroy() { Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } } } public static class CustomHotbar { private const int SlotCount = 8; private const int LeftGroupCount = 4; private const float SlotSize = 64f; private const float SlotSpacing = 8f; private const float GpGap = 140f; private const float BottomMargin = 45f; private const float HudScale = 0.65f; private const float BarHeight = 22f; private const float BarSlotGap = 5f; private const float GpIconSize = 128f; private static readonly float GroupWidth = 280f; private static readonly float HalfGap = 70f; private static GameObject _hudRoot; private static bool _built; private static Image[] _slotIcons; private static GameObject[] _slotSelections; private static TextMeshProUGUI[] _slotStackTexts; private static Image[] _slotDurabilityBars; private static ResourceBarElement _healthBar; private static ResourceBarElement _staminaBar; private static ResourceBarElement _eitrBar; private static ResourceBarElement _adrenalineBar; private static GameObject _gpRoot; private static Image _gpIconImage; private static Image _gpCooldownOverlay; private static TextMeshProUGUI _gpCooldownText; private static RectTransform _vanillaHotkeyBarRT; private static readonly Vector3 OffScreen = new Vector3(10000f, 0f, 0f); private static Transform[] _extraFoodElements; private static bool _foodFieldsResolved; public static bool IsBuilt => _built; public static void Build(Transform hudParent) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_022f: 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_0267: 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_0286: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) if (!_built) { Canvas componentInParent = ((Component)hudParent).GetComponentInParent<Canvas>(); Transform val = (((Object)(object)componentInParent != (Object)null) ? ((Component)componentInParent).transform : hudParent); _hudRoot = new GameObject("HudRevizualized_Root", new Type[1] { typeof(RectTransform) }); _hudRoot.transform.SetParent(val, false); RectTransform component = _hudRoot.GetComponent<RectTransform>(); component.anchorMin = new Vector2(0.5f, 0f); component.anchorMax = new Vector2(0.5f, 0f); component.pivot = new Vector2(0.5f, 0f); component.anchoredPosition = new Vector2(0f, 45f); component.sizeDelta = Vector2.zero; ((Transform)component).localScale = new Vector3(0.65f, 0.65f, 1f); CanvasGroup val2 = _hudRoot.AddComponent<CanvasGroup>(); val2.alpha = 0.8f; val2.interactable = false; val2.blocksRaycasts = false; ResourceBarElement.GameFont = FindGameFont(); _slotIcons = (Image[])(object)new Image[8]; _slotSelections = (GameObject[])(object)new GameObject[8]; _slotStackTexts = (TextMeshProUGUI[])(object)new TextMeshProUGUI[8]; _slotDurabilityBars = (Image[])(object)new Image[8]; float num = 0f - (HalfGap + GroupWidth) + 32f; float num2 = HalfGap + 32f; float num3 = 32f; for (int i = 0; i < 8; i++) { float num4 = ((i < 4) ? (num + (float)i * 72f) : (num2 + (float)(i - 4) * 72f)); BuildSlot(i, new Vector2(num4, num3)); } float num5 = 0f - (HalfGap + GroupWidth / 2f); float num6 = HalfGap + GroupWidth / 2f; float num7 = 80f; float num8 = -16f; Vector2 size = default(Vector2); ((Vector2)(ref size))..ctor(GroupWidth, 22f); _healthBar = new ResourceBarElement(_hudRoot.transform, "HealthBar", size, new Vector2(num5, num7), new Color(0.85f, 0.15f, 0.15f, 1f), new Color(0.85f, 0.15f, 0.15f, 0.35f), isHorizontal: true); _staminaBar = new ResourceBarElement(_hudRoot.transform, "StaminaBar", size, new Vector2(num6, num7), new Color(0.5f, 0.43f, 0f, 1f), new Color(0.5f, 0.43f, 0f, 0.35f), isHorizontal: true); _eitrBar = new ResourceBarElement(_hudRoot.transform, "EitrBar", size, new Vector2(num5, num8), new Color(0.15f, 0.8f, 0.35f, 1f), new Color(0.15f, 0.8f, 0.35f, 0.35f), isHorizontal: true); _adrenalineBar = new ResourceBarElement(_hudRoot.transform, "AdrenalineBar", size, new Vector2(num6, num8), new Color(0.6f, 0.28f, 0f, 1f), new Color(0.6f, 0.28f, 0f, 0.35f), isHorizontal: true); LiftBarText(_healthBar.TextRectTransform, num5, num7, GroupWidth); LiftBarText(_staminaBar.TextRectTransform, num6, num7, GroupWidth); LiftBarText(_eitrBar.TextRectTransform, num5, num8, GroupWidth); LiftBarText(_adrenalineBar.TextRectTransform, num6, num8, GroupWidth); BuildGuardianIcon(num3); _built = true; } } private static void BuildSlot(int index, Vector2 center) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_005c: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: 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_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Expected O, but got Unknown //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: 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_02af: 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_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Expected O, but got Unknown //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Expected O, but got Unknown //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Expected O, but got Unknown //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject($"Slot_{index}", new Type[1] { typeof(RectTransform) }); val.transform.SetParent(_hudRoot.transform, false); RectTransform component = val.GetComponent<RectTransform>(); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(0.5f, 0.5f); component.pivot = val2; Vector2 anchorMin = (component.anchorMax = val2); component.anchorMin = anchorMin; component.sizeDelta = new Vector2(64f, 64f); component.anchoredPosition = center; GameObject val4 = new GameObject("Selection", new Type[2] { typeof(RectTransform), typeof(Image) }); val4.transform.SetParent(val.transform, false); RectTransform component2 = val4.GetComponent<RectTransform>(); component2.anchorMin = Vector2.zero; component2.anchorMax = Vector2.one; component2.offsetMin = new Vector2(-3f, -3f); component2.offsetMax = new Vector2(3f, 3f); Image component3 = val4.GetComponent<Image>(); component3.sprite = ResourceBarElement.WhiteSprite; component3.type = (Type)0; ((Graphic)component3).color = new Color(1f, 0.85f, 0.2f, 0.7f); ((Graphic)component3).raycastTarget = false; val4.SetActive(false); _slotSelections[index] = val4; GameObject val5 = new GameObject("SlotBG", new Type[2] { typeof(RectTransform), typeof(Image) }); val5.transform.SetParent(val.transform, false); RectTransform component4 = val5.GetComponent<RectTransform>(); component4.anchorMin = Vector2.zero; component4.anchorMax = Vector2.one; anchorMin = (component4.offsetMax = Vector2.zero); component4.offsetMin = anchorMin; Image component5 = val5.GetComponent<Image>(); component5.sprite = ResourceBarElement.WhiteSprite; component5.type = (Type)0; ((Graphic)component5).color = new Color(0.15f, 0.15f, 0.15f, 0.9f); ((Graphic)component5).raycastTarget = false; GameObject val6 = new GameObject("ItemIcon", new Type[2] { typeof(RectTransform), typeof(Image) }); val6.transform.SetParent(val.transform, false); RectTransform component6 = val6.GetComponent<RectTransform>(); ((Vector2)(ref val2))..ctor(0.5f, 0.5f); component6.pivot = val2; anchorMin = (component6.anchorMax = val2); component6.anchorMin = anchorMin; component6.sizeDelta = new Vector2(56f, 56f); component6.anchoredPosition = Vector2.zero; Image component7 = val6.GetComponent<Image>(); component7.preserveAspect = true; ((Graphic)component7).raycastTarget = false; ((Behaviour)component7).enabled = false; _slotIcons[index] = component7; GameObject val8 = new GameObject("DurabilityBar", new Type[2] { typeof(RectTransform), typeof(Image) }); val8.transform.SetParent(val.transform, false); RectTransform component8 = val8.GetComponent<RectTransform>(); component8.anchorMin = new Vector2(0f, 0f); component8.anchorMax = new Vector2(1f, 0f); component8.pivot = new Vector2(0f, 0f); component8.offsetMin = new Vector2(2f, 2f); component8.offsetMax = new Vector2(-2f, 5f); Image component9 = val8.GetComponent<Image>(); component9.sprite = ResourceBarElement.WhiteSprite; component9.type = (Type)3; component9.fillMethod = (FillMethod)0; component9.fillOrigin = 0; ((Graphic)component9).raycastTarget = false; component9.fillAmount = 1f; val8.SetActive(false); _slotDurabilityBars[index] = component9; GameObject val9 = new GameObject("StackText", new Type[1] { typeof(RectTransform) }); val9.transform.SetParent(val.transform, false); RectTransform component10 = val9.GetComponent<RectTransform>(); component10.anchorMin = new Vector2(1f, 0f); component10.anchorMax = new Vector2(1f, 0f); component10.pivot = new Vector2(1f, 0f); component10.sizeDelta = new Vector2(64f, 16f); component10.anchoredPosition = new Vector2(-2f, 2f); TextMeshProUGUI val10 = val9.AddComponent<TextMeshProUGUI>(); if ((Object)(object)ResourceBarElement.GameFont != (Object)null) { ((TMP_Text)val10).font = ResourceBarElement.GameFont; } ((TMP_Text)val10).fontSize = 11f; ((TMP_Text)val10).alignment = (TextAlignmentOptions)1028; ((Graphic)val10).color = Color.white; ((Graphic)val10).raycastTarget = false; _slotStackTexts[index] = val10; GameObject val11 = new GameObject("BindingText", new Type[1] { typeof(RectTransform) }); val11.transform.SetParent(val.transform, false); RectTransform component11 = val11.GetComponent<RectTransform>(); component11.anchorMin = new Vector2(0f, 1f); component11.anchorMax = new Vector2(0f, 1f); component11.pivot = new Vector2(0f, 1f); component11.sizeDelta = new Vector2(20f, 14f); component11.anchoredPosition = new Vector2(2f, -2f); TextMeshProUGUI val12 = val11.AddComponent<TextMeshProUGUI>(); if ((Object)(object)ResourceBarElement.GameFont != (Object)null) { ((TMP_Text)val12).font = ResourceBarElement.GameFont; } ((TMP_Text)val12).fontSize = 9f; ((TMP_Text)val12).alignment = (TextAlignmentOptions)257; ((Graphic)val12).color = new Color(1f, 1f, 1f, 0.5f); ((Graphic)val12).raycastTarget = false; ((TMP_Text)val12).text = (index + 1).ToString(); } private static void BuildGuardianIcon(float centerY) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_0063: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0093: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Expected O, but got Unknown //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03ec: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) float num = 132f; _gpRoot = new GameObject("GPRoot", new Type[1] { typeof(RectTransform) }); _gpRoot.transform.SetParent(_hudRoot.transform, false); RectTransform component = _gpRoot.GetComponent<RectTransform>(); Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component.pivot = val; Vector2 anchorMin = (component.anchorMax = val); component.anchorMin = anchorMin; component.sizeDelta = new Vector2(num, num); component.anchoredPosition = new Vector2(0f, centerY); GameObject val3 = new GameObject("GPIconBG", new Type[2] { typeof(RectTransform), typeof(Image) }); val3.transform.SetParent(_gpRoot.transform, false); RectTransform component2 = val3.GetComponent<RectTransform>(); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component2.pivot = val; anchorMin = (component2.anchorMax = val); component2.anchorMin = anchorMin; component2.sizeDelta = new Vector2(num, num); component2.anchoredPosition = Vector2.zero; Image component3 = val3.GetComponent<Image>(); component3.sprite = ResourceBarElement.WhiteSprite; component3.type = (Type)0; ((Graphic)component3).color = new Color(0.15f, 0.15f, 0.15f, 0.9f); ((Graphic)component3).raycastTarget = false; GameObject val5 = new GameObject("GPIcon", new Type[2] { typeof(RectTransform), typeof(Image) }); val5.transform.SetParent(_gpRoot.transform, false); RectTransform component4 = val5.GetComponent<RectTransform>(); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component4.pivot = val; anchorMin = (component4.anchorMax = val); component4.anchorMin = anchorMin; component4.sizeDelta = new Vector2(128f, 128f); component4.anchoredPosition = Vector2.zero; _gpIconImage = val5.GetComponent<Image>(); _gpIconImage.preserveAspect = true; ((Graphic)_gpIconImage).raycastTarget = false; GameObject val7 = new GameObject("GPCooldown", new Type[2] { typeof(RectTransform), typeof(Image) }); val7.transform.SetParent(_gpRoot.transform, false); RectTransform component5 = val7.GetComponent<RectTransform>(); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component5.pivot = val; anchorMin = (component5.anchorMax = val); component5.anchorMin = anchorMin; component5.sizeDelta = new Vector2(128f, 128f); component5.anchoredPosition = Vector2.zero; _gpCooldownOverlay = val7.GetComponent<Image>(); _gpCooldownOverlay.sprite = ResourceBarElement.WhiteSprite; _gpCooldownOverlay.type = (Type)3; _gpCooldownOverlay.fillMethod = (FillMethod)4; _gpCooldownOverlay.fillOrigin = 2; _gpCooldownOverlay.fillClockwise = true; ((Graphic)_gpCooldownOverlay).color = new Color(0f, 0f, 0f, 0.65f); _gpCooldownOverlay.fillAmount = 0f; ((Graphic)_gpCooldownOverlay).raycastTarget = false; GameObject val9 = new GameObject("GPCooldownText", new Type[1] { typeof(RectTransform) }); val9.transform.SetParent(_gpRoot.transform, false); RectTransform component6 = val9.GetComponent<RectTransform>(); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component6.pivot = val; anchorMin = (component6.anchorMax = val); component6.anchorMin = anchorMin; component6.sizeDelta = new Vector2(148f, 18f); component6.anchoredPosition = new Vector2(0f, -75f); _gpCooldownText = val9.AddComponent<TextMeshProUGUI>(); if ((Object)(object)ResourceBarElement.GameFont != (Object)null) { ((TMP_Text)_gpCooldownText).font = ResourceBarElement.GameFont; } ((TMP_Text)_gpCooldownText).fontSize = 11f; ((TMP_Text)_gpCooldownText).alignment = (TextAlignmentOptions)514; ((Graphic)_gpCooldownText).color = Color.white; ((Graphic)_gpCooldownText).raycastTarget = false; } public static void UpdateSlots() { //IL_0132: Unknown result type (might be due to invalid IL or missing references) if (!_built) { return; } Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null || ((Character)localPlayer).IsDead()) { SetAllVisible(visible: false); return; } SetAllVisible(visible: true); Inventory inventory = ((Humanoid)localPlayer).GetInventory(); if (inventory == null) { return; } int selectedSlot = HotkeyBarPatch.GetSelectedSlot(); for (int i = 0; i < 8; i++) { ItemData itemAt = inventory.GetItemAt(i, 0); if (itemAt != null) { _slotIcons[i].sprite = itemAt.GetIcon(); ((Behaviour)_slotIcons[i]).enabled = true; ((TMP_Text)_slotStackTexts[i]).text = ((itemAt.m_shared.m_maxStackSize > 1) ? itemAt.m_stack.ToString() : ""); if (itemAt.m_shared.m_useDurability && itemAt.m_shared.m_maxDurability > 0f) { float num = itemAt.m_durability / itemAt.m_shared.m_maxDurability; _slotDurabilityBars[i].fillAmount = num; ((Graphic)_slotDurabilityBars[i]).color = DurabilityColor(num); ((Component)_slotDurabilityBars[i]).gameObject.SetActive(true); } else { ((Component)_slotDurabilityBars[i]).gameObject.SetActive(false); } } else { ((Behaviour)_slotIcons[i]).enabled = false; ((TMP_Text)_slotStackTexts[i]).text = ""; ((Component)_slotDurabilityBars[i]).gameObject.SetActive(false); } bool active = itemAt != null && ((Humanoid)localPlayer).IsItemEquiped(itemAt); _slotSelections[i].SetActive(active); } } public static void UpdateBars() { if (_built) { Player localPlayer = Player.m_localPlayer; if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead()) { float deltaTime = Time.deltaTime; _healthBar.UpdateValue(((Character)localPlayer).GetHealth(), ((Character)localPlayer).GetMaxHealth(), deltaTime); _staminaBar.UpdateValue(localPlayer.GetStamina(), ((Character)localPlayer).GetMaxStamina(), deltaTime); _eitrBar.UpdateValue(localPlayer.GetEitr(), ((Character)localPlayer).GetMaxEitr(), deltaTime); _adrenalineBar.UpdateValue(localPlayer.GetAdrenaline(), ((Character)localPlayer).GetMaxAdrenaline(), deltaTime); } } } public static void UpdateGuardianPower() { //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) if (!_built || (Object)(object)_gpIconImage == (Object)null) { return; } Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null || ((Character)localPlayer).IsDead()) { return; } StatusEffect val = default(StatusEffect); float num = default(float); localPlayer.GetGuardianPowerHUD(ref val, ref num); if ((Object)(object)val != (Object)null) { ((Component)_gpIconImage).gameObject.SetActive(true); _gpIconImage.sprite = val.m_icon; ((Graphic)_gpIconImage).color = (Color)((num <= 0f) ? Color.white : new Color(1f, 1f, 1f, 0.5f)); ((Component)_gpCooldownText).gameObject.SetActive(true); if (num > 0f) { ((Component)_gpCooldownOverlay).gameObject.SetActive(true); _gpCooldownOverlay.fillAmount = Mathf.Clamp01(num); ((TMP_Text)_gpCooldownText).text = StatusEffect.GetTimeString(num, false, false); ((Graphic)_gpCooldownText).color = Color.white; } else { ((Component)_gpCooldownOverlay).gameObject.SetActive(false); ((TMP_Text)_gpCooldownText).text = "Ready"; ((Graphic)_gpCooldownText).color = new Color(0.4f, 1f, 0.4f, 1f); } } else { _gpIconImage.sprite = null; ((Graphic)_gpIconImage).color = new Color(0.2f, 0.2f, 0.2f, 0.5f); ((Component)_gpCooldownOverlay).gameObject.SetActive(false); ((Component)_gpCooldownText).gameObject.SetActive(false); } } public static void HideVanillaHud(Hud hud) { //IL_0017: 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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)hud.m_healthBarRoot != (Object)null) { ((Transform)hud.m_healthBarRoot).localPosition = OffScreen; } if ((Object)(object)hud.m_staminaBar2Root != (Object)null) { ((Transform)hud.m_staminaBar2Root).localPosition = OffScreen; } if ((Object)(object)hud.m_eitrBarRoot != (Object)null) { ((Transform)hud.m_eitrBarRoot).localPosition = OffScreen; } if ((Object)(object)hud.m_adrenalineBarRoot != (Object)null) { ((Transform)hud.m_adrenalineBarRoot).localPosition = OffScreen; } if ((Object)(object)hud.m_gpRoot != (Object)null) { ((Transform)hud.m_gpRoot).localPosition = OffScreen; } if ((Object)(object)hud.m_foodBarRoot != (Object)null) { ((Transform)hud.m_foodBarRoot).localPosition = OffScreen; } if ((Object)(object)_vanillaHotkeyBarRT == (Object)null) { HotkeyBar componentInChildren = ((Component)hud).GetComponentInChildren<HotkeyBar>(); if ((Object)(object)componentInChildren != (Object)null) { _vanillaHotkeyBarRT = ((Component)componentInChildren).GetComponent<RectTransform>(); } } if ((Object)(object)_vanillaHotkeyBarRT != (Object)null) { ((Transform)_vanillaHotkeyBarRT).localPosition = OffScreen; } ResolveExtraFoodElements(hud); if (_extraFoodElements == null) { return; } Transform[] extraFoodElements = _extraFoodElements; foreach (Transform val in extraFoodElements) { if ((Object)(object)val != (Object)null) { val.localPosition = OffScreen; } } } private static void ResolveExtraFoodElements(Hud hud) { if (_foodFieldsResolved) { return; } _foodFieldsResolved = true; List<Transform> list = new List<Transform>(); Transform[] componentsInChildren = ((Component)hud).GetComponentsInChildren<Transform>(true); foreach (Transform val in componentsInChildren) { if (!((Object)(object)val == (Object)(object)((Component)hud).transform) && (!((Object)(object)_hudRoot != (Object)null) || !val.IsChildOf(_hudRoot.transform))) { string name = ((Object)((Component)val).gameObject).name; if (name.IndexOf("food", StringComparison.OrdinalIgnoreCase) >= 0 || name.IndexOf("health", StringComparison.OrdinalIgnoreCase) >= 0) { list.Add(val); } } } _extraFoodElements = ((list.Count > 0) ? list.ToArray() : null); } public static void Destroy() { if ((Object)(object)_hudRoot != (Object)null) { Object.Destroy((Object)(object)_hudRoot); } ResourceBarElement.GameFont = null; _hudRoot = null; _slotIcons = null; _slotSelections = null; _slotStackTexts = null; _slotDurabilityBars = null; _healthBar = null; _staminaBar = null; _eitrBar = null; _adrenalineBar = null; _gpRoot = null; _gpIconImage = null; _gpCooldownOverlay = null; _gpCooldownText = null; _vanillaHotkeyBarRT = null; _extraFoodElements = null; _foodFieldsResolved = false; _built = false; } private static TMP_FontAsset FindGameFont() { TextMeshProUGUI[] array = Object.FindObjectsByType<TextMeshProUGUI>((FindObjectsSortMode)0); foreach (TextMeshProUGUI val in array) { if ((Object)(object)((TMP_Text)val).font != (Object)null) { return ((TMP_Text)val).font; } } return null; } private static void LiftBarText(RectTransform textRT, float cx, float cy, float barWidth) { //IL_0027: 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_002f: 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_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) ((Transform)textRT).SetParent(_hudRoot.transform, false); Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(0.5f, 0.5f); textRT.pivot = val; Vector2 anchorMin = (textRT.anchorMax = val); textRT.anchorMin = anchorMin; textRT.anchoredPosition = new Vector2(cx, cy); textRT.sizeDelta = new Vector2(barWidth - 4f, 26f); } private static Color DurabilityColor(float pct) { //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_008d: 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_0021: 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_004c: 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_0095: Unknown result type (might be due to invalid IL or missing references) if (pct > 0.5f) { return Color.Lerp(new Color(1f, 0.9f, 0.1f, 1f), new Color(0.2f, 0.9f, 0.2f, 1f), (pct - 0.5f) * 2f); } return Color.Lerp(new Color(0.9f, 0.15f, 0.1f, 1f), new Color(1f, 0.9f, 0.1f, 1f), pct * 2f); } private static void SetAllVisible(bool visible) { if ((Object)(object)_hudRoot != (Object)null) { _hudRoot.SetActive(visible); } } } public class ResourceBarElement { private const float FastBarSpeed = 8f; private const float SlowDecaySpeed = 1.5f; private const float SlowGainSpeed = 6f; private const float FillInset = 2f; private readonly bool _isHorizontal; private readonly GameObject _root; private readonly RectTransform _rootRT; private readonly RectTransform _bgRT; private readonly Image _slowBarImage; private readonly Image _fastBarImage; private readonly TextMeshProUGUI _valueText; private readonly GameObject _textRoot; private float _currentFast; private float _currentSlow; private float _targetValue; private static Sprite _whiteSprite; private static Sprite _gradientSprite; public static TMP_FontAsset GameFont { get; set; } public static Sprite WhiteSprite { get { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_whiteSprite == (Object)null) { Texture2D val = new Texture2D(4, 4); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { val.SetPixel(i, j, Color.white); } } val.Apply(); _whiteSprite = Sprite.Create(val, new Rect(0f, 0f, 4f, 4f), new Vector2(0.5f, 0.5f)); } return _whiteSprite; } } public static Sprite GradientSprite { get { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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) if ((Object)(object)_gradientSprite == (Object)null) { Texture2D val = new Texture2D(4, 32, (TextureFormat)4, false); ((Texture)val).filterMode = (FilterMode)1; ((Texture)val).wrapMode = (TextureWrapMode)1; Color val2 = default(Color); for (int i = 0; i < 32; i++) { float num = (float)i / 31f; float num2 = Mathf.Lerp(0.4f, 1f, num); ((Color)(ref val2))..ctor(num2, num2, num2, 1f); for (int j = 0; j < 4; j++) { val.SetPixel(j, i, val2); } } val.Apply(); _gradientSprite = Sprite.Create(val, new Rect(0f, 0f, 4f, 32f), new Vector2(0.5f, 0.5f)); } return _gradientSprite; } } public RectTransform TextRectTransform => _textRoot.GetComponent<RectTransform>(); public ResourceBarElement(Transform parent, string name, Vector2 size, Vector2 position, Color fastColor, Color slowColor, bool isHorizontal = false) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0076: 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_0080: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014a: 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_0160: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0283: 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_0309: Unknown result type (might be due to invalid IL or missing references) _isHorizontal = isHorizontal; _root = new GameObject(name, new Type[1] { typeof(RectTransform) }); _root.transform.SetParent(parent, false); _rootRT = _root.GetComponent<RectTransform>(); RectTransform rootRT = _rootRT; RectTransform rootRT2 = _rootRT; RectTransform rootRT3 = _rootRT; Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(0.5f, 0.5f); rootRT3.pivot = val; rootRT.anchorMin = (rootRT2.anchorMax = val); _rootRT.sizeDelta = size; _root.transform.localPosition = new Vector3(position.x, position.y, 0f); GameObject val3 = new GameObject(name + "_BG", new Type[2] { typeof(RectTransform), typeof(Image) }); val3.transform.SetParent(_root.transform, false); _bgRT = val3.GetComponent<RectTransform>(); RectTransform bgRT = _bgRT; RectTransform bgRT2 = _bgRT; RectTransform bgRT3 = _bgRT; ((Vector2)(ref val))..ctor(0.5f, 0.5f); bgRT3.pivot = val; bgRT.anchorMin = (bgRT2.anchorMax = val); _bgRT.anchoredPosition = Vector2.zero; SetBgSize(size); Image component = val3.GetComponent<Image>(); component.sprite = WhiteSprite; component.type = (Type)0; ((Graphic)component).color = new Color(0.1f, 0.1f, 0.1f, 1f); ((Graphic)component).raycastTarget = false; Vector2 size2 = FillSize(size); _slowBarImage = CreateFilledImage(_root.transform, name + "_Slow", size2, slowColor, isHorizontal); _fastBarImage = CreateFilledImage(_root.transform, name + "_Fast", size2, fastColor, isHorizontal); _textRoot = new GameObject(name + "_Text", new Type[1] { typeof(RectTransform) }); _textRoot.transform.SetParent(_root.transform, false); RectTransform component2 = _textRoot.GetComponent<RectTransform>(); ((Vector2)(ref val))..ctor(0.5f, 0.5f); component2.pivot = val; component2.anchorMin = (component2.anchorMax = val); _valueText = _textRoot.AddComponent<TextMeshProUGUI>(); if ((Object)(object)GameFont != (Object)null) { ((TMP_Text)_valueText).font = GameFont; } ((TMP_Text)_valueText).alignment = (TextAlignmentOptions)514; ((Graphic)_valueText).color = Color.white; ((TMP_Text)_valueText).enableAutoSizing = false; ((TMP_Text)_valueText).overflowMode = (TextOverflowModes)0; ((Graphic)_valueText).raycastTarget = false; PositionText(component2, size); } public void UpdateValue(float current, float max, float deltaTime) { _targetValue = ((max > 0f) ? Mathf.Clamp01(current / max) : 0f); _currentFast = Mathf.MoveTowards(_currentFast, _targetValue, deltaTime * 8f); if (_targetValue < _currentSlow) { _currentSlow = Mathf.MoveTowards(_currentSlow, _targetValue, deltaTime * 1.5f); } else { _currentSlow = Mathf.MoveTowards(_currentSlow, _targetValue, deltaTime * 6f); } _fastBarImage.fillAmount = _currentFast; _slowBarImage.fillAmount = _currentSlow; ((TMP_Text)_valueText).text = $"{Mathf.CeilToInt(current)}/{Mathf.CeilToInt(max)}"; } private Vector2 FillSize(Vector2 size) { //IL_0000: 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_0018: Unknown result type (might be due to invalid IL or missing references) return new Vector2(size.x - 4f, size.y - 4f); } private void SetBgSize(Vector2 size) { //IL_0034: 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_0040: 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_0012: 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) if (_isHorizontal) { _bgRT.sizeDelta = size; ((Transform)_bgRT).localRotation = Quaternion.identity; } else { _bgRT.sizeDelta = new Vector2(size.y, size.x); ((Transform)_bgRT).localRotation = Quaternion.Euler(0f, 0f, 90f); } } private void PositionText(RectTransform textRT, Vector2 size) { //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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) if (_isHorizontal) { textRT.sizeDelta = new Vector2(size.x - 4f, size.y + 4f); textRT.anchoredPosition = Vector2.zero; ((TMP_Text)_valueText).fontSize = 12f; ((TMP_Text)_valueText).fontStyle = (FontStyles)1; } else { textRT.sizeDelta = new Vector2(60f, 16f); textRT.anchoredPosition = new Vector2(0f, 0f - (size.y * 0.5f + 10f)); ((TMP_Text)_valueText).fontSize = 11f; ((TMP_Text)_valueText).fontStyle = (FontStyles)0; } } private static Image CreateFilledImage(Transform parent, string name, Vector2 size, Color color, bool isHorizontal) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_0051: 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_005b: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name, new Type[2] { typeof(RectTransform), typeof(Image) }); val.transform.SetParent(parent, false); RectTransform component = val.GetComponent<RectTransform>(); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(0.5f, 0.5f); component.pivot = val2; Vector2 anchorMin = (component.anchorMax = val2); component.anchorMin = anchorMin; component.sizeDelta = size; component.anchoredPosition = Vector2.zero; Image component2 = val.GetComponent<Image>(); component2.sprite = GradientSprite; component2.type = (Type)3; ((Graphic)component2).color = color; ((Graphic)component2).raycastTarget = false; if (isHorizontal) { component2.fillMethod = (FillMethod)0; component2.fillOrigin = 0; } else { component2.fillMethod = (FillMethod)1; component2.fillOrigin = 0; } component2.fillAmount = 0f; return component2; } }