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);