diff --git a/MLEM.Ui/Elements/Element.cs b/MLEM.Ui/Elements/Element.cs index e74d17f..eb89f39 100644 --- a/MLEM.Ui/Elements/Element.cs +++ b/MLEM.Ui/Elements/Element.cs @@ -50,6 +50,7 @@ namespace MLEM.Ui.Elements { public UiSystem System { get; private set; } public Element Parent { get; private set; } + public bool IsHidden; private readonly List children = new List(); private Rectangle area; @@ -221,13 +222,17 @@ namespace MLEM.Ui.Elements { } public virtual void Draw(GameTime time, SpriteBatch batch, Color color) { - foreach (var child in this.children) - child.Draw(time, batch, color); + foreach (var child in this.children) { + if (!child.IsHidden) + child.Draw(time, batch, color); + } } public virtual void DrawUnbound(GameTime time, SpriteBatch batch, Color color, BlendState blendState = null, SamplerState samplerState = null) { - foreach (var child in this.children) - child.DrawUnbound(time, batch, color, blendState, samplerState); + foreach (var child in this.children) { + if (!child.IsHidden) + child.DrawUnbound(time, batch, color, blendState, samplerState); + } } public void SetUiSystem(UiSystem system) { diff --git a/MLEM.Ui/UiSystem.cs b/MLEM.Ui/UiSystem.cs index 1294a0b..d2104fa 100644 --- a/MLEM.Ui/UiSystem.cs +++ b/MLEM.Ui/UiSystem.cs @@ -41,12 +41,16 @@ namespace MLEM.Ui { var col = color ?? Color.White; batch.Begin(SpriteSortMode.Deferred, blendState, samplerState, transformMatrix: Matrix.CreateScale(this.GlobalScale)); - foreach (var root in this.rootElements) - root.Element.Draw(time, batch, col); + foreach (var root in this.rootElements) { + if (!root.Element.IsHidden) + root.Element.Draw(time, batch, col); + } batch.End(); - foreach (var root in this.rootElements) - root.Element.DrawUnbound(time, batch, col, blendState, samplerState); + foreach (var root in this.rootElements) { + if (!root.Element.IsHidden) + root.Element.DrawUnbound(time, batch, col, blendState, samplerState); + } } public void Add(string name, Element root) {