From 3ec2f2ad7f18e85fb0ca6857ddeed8ed7c19af06 Mon Sep 17 00:00:00 2001 From: acikek Date: Wed, 8 Feb 2023 10:18:06 -0800 Subject: [PATCH] wtf --- .../scripts/commands/GuiCommand.java | 23 +++++------- .../ClientizenContainerRegistry.java | 1 + .../{ => gui}/GuiScriptContainer.java | 2 +- .../containers/gui/GuiScriptScreen.java | 35 +++++++++++++++++++ 4 files changed, 46 insertions(+), 15 deletions(-) rename src/main/java/com/denizenscript/clientizen/scripts/containers/{ => gui}/GuiScriptContainer.java (88%) create mode 100644 src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptScreen.java diff --git a/src/main/java/com/denizenscript/clientizen/scripts/commands/GuiCommand.java b/src/main/java/com/denizenscript/clientizen/scripts/commands/GuiCommand.java index 136acc8d..3cbe295a 100644 --- a/src/main/java/com/denizenscript/clientizen/scripts/commands/GuiCommand.java +++ b/src/main/java/com/denizenscript/clientizen/scripts/commands/GuiCommand.java @@ -1,12 +1,15 @@ package com.denizenscript.clientizen.scripts.commands; -import com.denizenscript.clientizen.scripts.containers.GuiScriptContainer; +import com.denizenscript.clientizen.debuggui.ClientizenDebugGUI; +import com.denizenscript.clientizen.debuggui.ClientizenDebugScreen; +import com.denizenscript.clientizen.scripts.containers.gui.GuiScriptContainer; import com.denizenscript.denizencore.objects.core.ScriptTag; import com.denizenscript.denizencore.scripts.ScriptEntry; import com.denizenscript.denizencore.scripts.commands.AbstractCommand; import com.denizenscript.denizencore.scripts.commands.Holdable; import com.denizenscript.denizencore.scripts.commands.generator.ArgLinear; import com.denizenscript.denizencore.scripts.commands.generator.ArgName; +import net.minecraft.client.MinecraftClient; public class GuiCommand extends AbstractCommand implements Holdable { @@ -17,20 +20,12 @@ public GuiCommand() { autoCompile(); } - public static void autoExecute(ScriptEntry scriptEntry, - @ArgLinear @ArgName("script") ScriptTag script) { + public static void autoExecute(ScriptEntry scriptEntry, + @ArgLinear @ArgName("script") ScriptTag script) { if (script.getContainer() instanceof GuiScriptContainer gui) { - /*SpruceScreen screen = new SpruceScreen(Text.literal("Test GUI screen")) { - - @Override - protected void init() { - super.init(); - addDrawableChild(new SpruceButtonWidget(Position.center(width, height), 150, 20, Text.literal(gui.buttonName), btn -> { - client.player.sendMessage(Text.literal("hello"), false); - })); - } - }; - screen.init(MinecraftClient.getInstance(), 500, 500);*/ + //MinecraftClient.getInstance().setScreen(new GuiScriptScreen(new GuiScriptScreen.Gui(gui))); + MinecraftClient.getInstance().setScreen(new ClientizenDebugScreen(new ClientizenDebugGUI())); + System.out.println(MinecraftClient.getInstance().currentScreen); // shows debug screen! } } } diff --git a/src/main/java/com/denizenscript/clientizen/scripts/containers/ClientizenContainerRegistry.java b/src/main/java/com/denizenscript/clientizen/scripts/containers/ClientizenContainerRegistry.java index 0060a021..22fd2967 100644 --- a/src/main/java/com/denizenscript/clientizen/scripts/containers/ClientizenContainerRegistry.java +++ b/src/main/java/com/denizenscript/clientizen/scripts/containers/ClientizenContainerRegistry.java @@ -1,5 +1,6 @@ package com.denizenscript.clientizen.scripts.containers; +import com.denizenscript.clientizen.scripts.containers.gui.GuiScriptContainer; import com.denizenscript.denizencore.scripts.ScriptRegistry; public class ClientizenContainerRegistry { diff --git a/src/main/java/com/denizenscript/clientizen/scripts/containers/GuiScriptContainer.java b/src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptContainer.java similarity index 88% rename from src/main/java/com/denizenscript/clientizen/scripts/containers/GuiScriptContainer.java rename to src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptContainer.java index 623c8bd1..9e654d87 100644 --- a/src/main/java/com/denizenscript/clientizen/scripts/containers/GuiScriptContainer.java +++ b/src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptContainer.java @@ -1,4 +1,4 @@ -package com.denizenscript.clientizen.scripts.containers; +package com.denizenscript.clientizen.scripts.containers.gui; import com.denizenscript.denizencore.scripts.containers.ScriptContainer; import com.denizenscript.denizencore.utilities.YamlConfiguration; diff --git a/src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptScreen.java b/src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptScreen.java new file mode 100644 index 00000000..23dc64f7 --- /dev/null +++ b/src/main/java/com/denizenscript/clientizen/scripts/containers/gui/GuiScriptScreen.java @@ -0,0 +1,35 @@ +package com.denizenscript.clientizen.scripts.containers.gui; + +import io.github.cottonmc.cotton.gui.GuiDescription; +import io.github.cottonmc.cotton.gui.client.CottonClientScreen; +import io.github.cottonmc.cotton.gui.client.LightweightGuiDescription; +import io.github.cottonmc.cotton.gui.widget.WButton; +import io.github.cottonmc.cotton.gui.widget.WGridPanel; +import io.github.cottonmc.cotton.gui.widget.data.Insets; +import net.minecraft.client.MinecraftClient; +import net.minecraft.text.Text; + +public class GuiScriptScreen extends CottonClientScreen { + + public GuiScriptScreen(GuiDescription description) { + super(description); + } + + public static class Gui extends LightweightGuiDescription { + + public Gui(GuiScriptContainer gui) { + System.out.println("I am creating the screen"); + WGridPanel root = new WGridPanel(); + setRootPanel(root); + root.setSize(256, 240); + root.setInsets(Insets.ROOT_PANEL); + + WButton button = new WButton(Text.literal(gui.buttonName)).setOnClick(() -> { + MinecraftClient.getInstance().player.sendMessage(Text.literal("hello :)")); + }); + root.add(button, 0, 3, 4, 1); + + root.validate(this); + } + } +}