aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-06 16:46:24 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-06 16:46:24 -0400
commitdd9aa31e71c82b7804d62dd5a1bb1cd2de93f6ba (patch)
tree3ad4f37ce9f6bd1089427550592c97961c89c3c3
parentb3623837bda701610868552005a25a5e5c148b8f (diff)
downloadSkyblocker-dd9aa31e71c82b7804d62dd5a1bb1cd2de93f6ba.tar.gz
Skyblocker-dd9aa31e71c82b7804d62dd5a1bb1cd2de93f6ba.tar.bz2
Skyblocker-dd9aa31e71c82b7804d62dd5a1bb1cd2de93f6ba.zip
Info Screen
-rw-r--r--src/main/java/de/hysky/skyblocker/InfoScreen.java77
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java1
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json6
-rw-r--r--src/main/resources/fabric.mod.json3
4 files changed, 86 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/InfoScreen.java b/src/main/java/de/hysky/skyblocker/InfoScreen.java
new file mode 100644
index 00000000..fd2baca9
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/InfoScreen.java
@@ -0,0 +1,77 @@
+package de.hysky.skyblocker;
+
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.scheduler.Scheduler;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.client.gui.screen.ConfirmLinkScreen;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.widget.ButtonWidget;
+import net.minecraft.client.gui.widget.GridWidget;
+import net.minecraft.client.gui.widget.TextWidget;
+import net.minecraft.client.gui.widget.ThreePartsLayoutWidget;
+import net.minecraft.screen.ScreenTexts;
+import net.minecraft.text.Text;
+
+public class InfoScreen extends Screen {
+ private static final int SPACING = 8;
+ private static final int BUTTON_WIDTH = 210;
+ private static final int HALF_BUTTON_WIDTH = 101; //Same as (210 - 8) / 2
+ private static final Text TITLE = Text.literal("Skyblocker " + SkyblockerMod.VERSION);
+ private static final Text CONFIGURATION_TEXT = Text.translatable("text.skyblocker.config");
+ private static final Text SOURCE_TEXT = Text.translatable("text.skyblocker.source");
+ private static final Text REPORT_BUGS_TEXT = Text.translatable("menu.reportBugs");
+ private static final Text WEBSITE_TEXT = Text.translatable("text.skyblocker.website");
+ private static final Text TRANSLATE_TEXT = Text.translatable("text.skyblocker.translate");
+ private static final Text MODRINTH_TEXT = Text.translatable("text.skyblocker.modrinth");
+ private static final Text DISCORD_TEXT = Text.translatable("text.skyblocker.discord");
+ private final ThreePartsLayoutWidget layout = new ThreePartsLayoutWidget(this);
+
+ private InfoScreen() {
+ super(TITLE);
+ }
+
+ public static void initClass() {
+ ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
+ dispatcher.register(ClientCommandManager.literal(SkyblockerMod.NAMESPACE)
+ .executes(Scheduler.queueOpenScreenCommand(InfoScreen::new)));
+ });
+ }
+
+ @Override
+ protected void init() {
+ this.layout.addHeader(new TextWidget(this.getTitle(), this.textRenderer));
+
+ GridWidget gridWidget = this.layout.addBody(new GridWidget()).setSpacing(SPACING);
+ gridWidget.getMainPositioner().alignHorizontalCenter();
+ GridWidget.Adder adder = gridWidget.createAdder(2);
+
+ adder.add(ButtonWidget.builder(CONFIGURATION_TEXT, button -> this.openConfig()).width(BUTTON_WIDTH).build(), 2);
+ adder.add(ButtonWidget.builder(SOURCE_TEXT, ConfirmLinkScreen.opening(this, "https://github.com/SkyblockerMod/Skyblocker")).width(HALF_BUTTON_WIDTH).build());
+ adder.add(ButtonWidget.builder(REPORT_BUGS_TEXT, ConfirmLinkScreen.opening(this, "https://github.com/SkyblockerMod/Skyblocker/issues")).width(HALF_BUTTON_WIDTH).build());
+ adder.add(ButtonWidget.builder(WEBSITE_TEXT, ConfirmLinkScreen.opening(this, "https://hysky.de/")).width(HALF_BUTTON_WIDTH).build());
+ adder.add(ButtonWidget.builder(TRANSLATE_TEXT, ConfirmLinkScreen.opening(this, "https://translate.hysky.de/")).width(HALF_BUTTON_WIDTH).build());
+ adder.add(ButtonWidget.builder(MODRINTH_TEXT, ConfirmLinkScreen.opening(this, "https://modrinth.com/mod/skyblocker-liap")).width(HALF_BUTTON_WIDTH).build());
+ adder.add(ButtonWidget.builder(DISCORD_TEXT, ConfirmLinkScreen.opening(this, "https://discord.gg/aNNJHQykck")).width(HALF_BUTTON_WIDTH).build());
+
+ this.layout.addFooter(ButtonWidget.builder(ScreenTexts.DONE, button -> this.close()).build());
+ this.layout.refreshPositions();
+ this.layout.forEachChild(this::addDrawableChild);
+ }
+
+ @Override
+ protected void initTabNavigation() {
+ this.layout.refreshPositions();
+ }
+
+ private void openConfig() {
+ this.client.setScreen(SkyblockerConfigManager.createGUI(this));
+ }
+
+ @Override
+ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
+ this.renderBackground(context, mouseX, mouseY, delta);
+ super.render(context, mouseX, mouseY, delta);
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index 75918fa9..11fda0c6 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -98,6 +98,7 @@ public class SkyblockerMod implements ClientModInitializer {
ClientTickEvents.END_CLIENT_TICK.register(this::tick);
Utils.init();
SkyblockerConfigManager.init();
+ InfoScreen.initClass();
Tips.init();
NEURepoManager.init();
ImageRepoLoader.init();
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 84409b9f..78598266 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -11,6 +11,12 @@
"text.skyblocker.quit_config": "Changes Not Saved",
"text.skyblocker.quit_config_sure": "Are you sure you want to quit editing the config? Changes will not be saved!",
"text.skyblocker.quit_discard": "Quit & Discard Changes",
+ "text.skyblocker.config": "Open Config...",
+ "text.skyblocker.source": "Source",
+ "text.skyblocker.website": "Website",
+ "text.skyblocker.translate": "Translate",
+ "text.skyblocker.modrinth": "Modrinth",
+ "text.skyblocker.discord": "Discord",
"text.autoconfig.skyblocker.title": "Skyblocker Settings",
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 3f365b90..a18707da 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -48,7 +48,8 @@
"modmenu": {
"links": {
"modmenu.discord": "https://discord.com/invite/aNNJHQykck",
- "modmenu.modrinth": "https://modrinth.com/mod/skyblocker-liap"
+ "modmenu.modrinth": "https://modrinth.com/mod/skyblocker-liap",
+ "text.skyblocker.translate": "https://translate.hysky.de"
}
}
}