From 375f026a415bf6eb57f6638c9d223b13029a0b61 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sun, 11 Oct 2015 14:28:28 +0200 Subject: [PATCH] Add Loadable, called when a GUI should load things --- .../gui/container/AbstractGuiOverlay.java | 1 + .../gui/container/AbstractGuiScreen.java | 1 + .../minecraft/gui/function/Loadable.java | 27 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/main/java/de/johni0702/minecraft/gui/function/Loadable.java diff --git a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiOverlay.java b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiOverlay.java index 946ff6a3..6aef5114 100644 --- a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiOverlay.java +++ b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiOverlay.java @@ -62,6 +62,7 @@ public abstract class AbstractGuiOverlay> extend public void setVisible(boolean visible) { if (this.visible != visible) { if (visible) { + forEach(Loadable.class).load(); MinecraftForge.EVENT_BUS.register(eventHandler); } else { forEach(Closeable.class).close(); diff --git a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiScreen.java b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiScreen.java index b560a699..01899d91 100644 --- a/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiScreen.java +++ b/src/main/java/de/johni0702/minecraft/gui/container/AbstractGuiScreen.java @@ -221,6 +221,7 @@ public abstract class AbstractGuiScreen> extends } screenSize = new Dimension(width, height); renderer = new MinecraftGuiRenderer(new ScaledResolution(mc, mc.displayWidth, mc.displayHeight)); + forEach(Loadable.class).load(); } public T getWrapper() { diff --git a/src/main/java/de/johni0702/minecraft/gui/function/Loadable.java b/src/main/java/de/johni0702/minecraft/gui/function/Loadable.java new file mode 100644 index 00000000..febf8d97 --- /dev/null +++ b/src/main/java/de/johni0702/minecraft/gui/function/Loadable.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2015 johni0702 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package de.johni0702.minecraft.gui.function; + +public interface Loadable { + void load(); +}