From fc4dc8635514cca554417ecf60ce350a4c2b03ce Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sun, 4 Oct 2015 21:15:06 +0200 Subject: [PATCH] Add status indicators Allow removal of elements from gui containers --- .../replaymod/replay/gui/overlay/GuiReplayOverlay.java | 10 ++++++++++ .../minecraft/gui/container/AbstractGuiContainer.java | 8 ++++++++ .../minecraft/gui/container/GuiContainer.java | 1 + 3 files changed, 19 insertions(+) diff --git a/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java b/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java index a6bfaddf..11e58749 100644 --- a/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java +++ b/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java @@ -40,6 +40,13 @@ public class GuiReplayOverlay extends AbstractGuiOverlay { } }.setSize(Integer.MAX_VALUE, 20); + /** + * This is not used by the replay module itself but may be used by other modules/extras to show + * when they're active. + */ + public final GuiPanel statusIndicatorPanel = new GuiPanel(this).setSize(100, 20) + .setLayout(new HorizontalLayout(HorizontalLayout.Alignment.RIGHT).setSpacing(5)); + public GuiReplayOverlay(final ReplayHandler replayHandler) { this.replayHandler = replayHandler; @@ -49,6 +56,9 @@ public class GuiReplayOverlay extends AbstractGuiOverlay { protected void layout(GuiReplayOverlay container, int width, int height) { pos(topPanel, 10, 10); size(topPanel, width - 20, 20); + + pos(statusIndicatorPanel, width / 2, height - 25); + width(statusIndicatorPanel, width / 2 - 5); } }); diff --git a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiContainer.java b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiContainer.java index d37705de..566152ae 100644 --- a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiContainer.java +++ b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiContainer.java @@ -107,6 +107,14 @@ public abstract class AbstractGuiContainer> return getThis(); } + @Override + public T removeElement(GuiElement element) { + if (elements.remove(element) != null) { + layedOutElements.remove(element); + } + return getThis(); + } + @Override public void draw(GuiRenderer renderer, ReadableDimension size, RenderInfo renderInfo) { try { diff --git a/src/main/java/de/johni0702/minecraft/gui/container/GuiContainer.java b/src/main/java/de/johni0702/minecraft/gui/container/GuiContainer.java index dca68f8f..bfd846ec 100644 --- a/src/main/java/de/johni0702/minecraft/gui/container/GuiContainer.java +++ b/src/main/java/de/johni0702/minecraft/gui/container/GuiContainer.java @@ -39,5 +39,6 @@ public interface GuiContainer> extends ComposedGuiElem Map getElements(); T addElements(LayoutData layoutData, GuiElement...elements); + T removeElement(GuiElement element); }