diff --git a/src/main/java/com/github/hydos/ginger/engine/api/GingerRegister.java b/src/main/java/com/github/hydos/ginger/engine/api/GingerRegister.java new file mode 100644 index 0000000..eb84d37 --- /dev/null +++ b/src/main/java/com/github/hydos/ginger/engine/api/GingerRegister.java @@ -0,0 +1,66 @@ +package com.github.hydos.ginger.engine.api; + +import java.util.*; + +import com.github.hydos.ginger.engine.api.game.Game; +import com.github.hydos.ginger.engine.elements.buttons.TextureButton; +import com.github.hydos.ginger.engine.font.GUIText; + +/** + * Used if a game wants to access engine variables safely + */ +public class GingerRegister { + + private static GingerRegister INSTANCE; + + public List texts; + public List guiButtons; + + public Game game; + + public GingerRegister() { + INSTANCE = this; + } + + public void registerText(GUIText guiText) { + if(texts == null) texts = new ArrayList(); + texts.add(guiText); + } + + public GUIText retrieveText(String string) { + GUIText lastText = null; + for(GUIText text: texts) { + lastText = text; + if(string.equalsIgnoreCase(string)) { + return text; + } + } + return null; + } + + public void removeText(GUIText text) { + texts.remove(text); + } + + public void registerButton(TextureButton button) { + if(guiButtons == null) guiButtons = new ArrayList(); + guiButtons.add(button); + } + + public TextureButton retrieveButton(String string) { + for(TextureButton button: guiButtons) { + if(button.resourceLocation == string) { + return button; + } + } + return null; + } + + public static GingerRegister getInstance() { + return INSTANCE; + } + + public void registerGame(Game game) {this.game = game;} + + +} \ No newline at end of file diff --git a/src/main/java/com/github/hydos/ginger/engine/elements/buttons/TextureButton.java b/src/main/java/com/github/hydos/ginger/engine/elements/buttons/TextureButton.java index c84097f..9371ff9 100644 --- a/src/main/java/com/github/hydos/ginger/engine/elements/buttons/TextureButton.java +++ b/src/main/java/com/github/hydos/ginger/engine/elements/buttons/TextureButton.java @@ -19,7 +19,10 @@ public class TextureButton{ private boolean isHovering = false; + public String resourceLocation; + public TextureButton(String texture, Vector2f position, Vector2f scale) { + resourceLocation = texture; guiTexture = new GuiTexture(Loader.loadTextureDirectly(texture), position, scale); }