From 64604aff988cd520fdde1b261a1c6114172c59e2 Mon Sep 17 00:00:00 2001 From: ang-xd Date: Tue, 15 Apr 2025 18:05:20 -0400 Subject: [PATCH 1/2] Fix bug if you change hideonui --- .../Modifiers/ModifierDisplay/ModifierDisplayComponent.cs | 6 ++++++ MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs index d94c783..d7b0eef 100644 --- a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs +++ b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs @@ -96,6 +96,12 @@ public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr) _children.gameObject.SetActive(false); } + internal void DestroyComponent(ModifierUiComponent component) + { + _modifiers.Remove(component.Modifier!); + component.gameObject.DestroyImmediate(); + } + [HideFromIl2Cpp] internal static ModifierDisplayComponent CreateDisplay() { diff --git a/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs b/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs index cd8ca79..a17dcc3 100644 --- a/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs +++ b/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs @@ -43,6 +43,12 @@ public class ModifierUiComponent(nint ptr) : MonoBehaviour(ptr) { if (Modifier == null || ModifierDisplayComponent.Instance == null || !ModifierDisplayComponent.Instance.IsOpen) return; + if (Modifier.HideOnUi || Modifier.GetDescription() == string.Empty) + { + ModifierDisplayComponent.Instance.DestroyComponent(this); + return; + } + nameText.text = Modifier.ModifierName; desc.text = Modifier.GetDescription(); modBg.gameObject.SetActive(true); From bdc9fa28acc57ef6904a8fc93aa559fc81995a5c Mon Sep 17 00:00:00 2001 From: ang-xd Date: Tue, 15 Apr 2025 18:20:24 -0400 Subject: [PATCH 2/2] oops --- .../ModifierDisplay/ModifierDisplayComponent.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs index d7b0eef..9a82835 100644 --- a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs +++ b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs @@ -96,10 +96,20 @@ public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr) _children.gameObject.SetActive(false); } + /// + /// Use this to refresh the modifiers UI. Useful if you hide modifiers uis based on options. + /// + public void RefreshModifiers() + { + UpdateModifiersList([.. PlayerControl.LocalPlayer.GetModifierComponent().ActiveModifiers]); + } + internal void DestroyComponent(ModifierUiComponent component) { _modifiers.Remove(component.Modifier!); component.gameObject.DestroyImmediate(); + + RefreshModifiers(); } [HideFromIl2Cpp]