aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav
diff options
context:
space:
mode:
authorKonaeAkira <longtruong2411@gmail.com>2022-01-28 16:01:18 +0100
committerKonaeAkira <longtruong2411@gmail.com>2022-01-28 16:01:18 +0100
commit4d8e146384a6d7f11b3126ffc8e43451e993c506 (patch)
tree9f2f578b458cf2627d1b38406a621d4b42d7df6e /src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav
parent1b1d968d3d4248d9b7b943ab46656b3cc0a6e0c9 (diff)
downloadSkyblocker-4d8e146384a6d7f11b3126ffc8e43451e993c506.tar.gz
Skyblocker-4d8e146384a6d7f11b3126ffc8e43451e993c506.tar.bz2
Skyblocker-4d8e146384a6d7f11b3126ffc8e43451e993c506.zip
Merge upstream
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java86
2 files changed, 121 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
new file mode 100644
index 00000000..b86e6e32
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java
@@ -0,0 +1,35 @@
+package me.xmrvizzy.skyblocker.skyblock.quicknav;
+
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.nbt.StringNbtReader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class QuickNav {
+ public static List<QuickNavButton> init(String title, int left_x, int right_x, int top_y, int bottom_y) {
+ List<QuickNavButton> buttons = new ArrayList<>();
+
+ buttons.add(new QuickNavButton(left_x + 29 * 0, top_y, QuickNavButton.Type.TOP, title.contains("Your Skills"), "/skills", new ItemStack(Items.DIAMOND_SWORD)));
+ buttons.add(new QuickNavButton(left_x + 29 * 1, top_y, QuickNavButton.Type.TOP, title.contains("Collection"), "/collection", new ItemStack(Items.PAINTING)));
+
+ buttons.add(new QuickNavButton(right_x - 29 * 1, bottom_y, QuickNavButton.Type.BOTTOM, title.contains("Craft Item"), "/craft", new ItemStack(Items.CRAFTING_TABLE)));
+ buttons.add(new QuickNavButton(right_x - 29 * 2, bottom_y, QuickNavButton.Type.BOTTOM, title.contains("Anvil"), "/anvil", new ItemStack(Items.ANVIL)));
+ buttons.add(new QuickNavButton(right_x - 29 * 3, bottom_y, QuickNavButton.Type.BOTTOM, title.contains("Enchant Item"), "/etable", new ItemStack(Items.ENCHANTING_TABLE)));
+
+ buttons.add(new QuickNavButton(left_x + 29 * 0, bottom_y, QuickNavButton.Type.BOTTOM, false, "/warp hub", new ItemStack(Items.COMPASS)));
+ buttons.add(new QuickNavButton(left_x + 29 * 1, bottom_y, QuickNavButton.Type.BOTTOM, false, "/warp dungeon_hub", new ItemStack(Items.WITHER_SKELETON_SKULL)));
+
+ buttons.add(new QuickNavButton(right_x - 29 * 1, top_y, QuickNavButton.Type.TOP, title.contains("Storage"), "/storage", new ItemStack(Items.ENDER_CHEST)));
+ try {
+ buttons.add(new QuickNavButton(right_x - 29 * 2, top_y, QuickNavButton.Type.TOP, title.contains("Wardrobe"), "/wardrobe", ItemStack.fromNbt(StringNbtReader.parse("{id:\"minecraft:leather_chestplate\", Count:1, tag:{display:{color:8991416}}}"))));
+ } catch (CommandSyntaxException e) {
+ e.printStackTrace();
+ }
+ buttons.add(new QuickNavButton(right_x - 29 * 3, top_y, QuickNavButton.Type.TOP, title.contains("Pets"), "/pets", new ItemStack(Items.BONE)));
+
+ return buttons;
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java
new file mode 100644
index 00000000..8e79b08e
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java
@@ -0,0 +1,86 @@
+package me.xmrvizzy.skyblocker.skyblock.quicknav;
+
+import com.mojang.blaze3d.systems.RenderSystem;
+import net.fabricmc.api.EnvType;
+import net.fabricmc.api.Environment;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
+import net.minecraft.client.gui.widget.ClickableWidget;
+import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.item.ItemStack;
+import net.minecraft.text.LiteralText;
+import net.minecraft.util.Identifier;
+
+@Environment(value=EnvType.CLIENT)
+public class QuickNavButton extends ClickableWidget {
+ private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
+ private static final Identifier BUTTON_TEXTURE = new Identifier("textures/gui/container/creative_inventory/tabs.png");
+
+ @Override
+ public void appendNarrations(NarrationMessageBuilder builder) {
+
+ }
+
+ public enum Type {
+ TOP,
+ BOTTOM,
+ }
+
+ private final Type type;
+ private boolean toggled;
+ private int u;
+ private int v;
+ private final String command;
+ private final ItemStack icon;
+
+ public QuickNavButton(int x, int y, Type type, boolean toggled, String command, ItemStack icon) {
+ super(x, y, 28, 32, LiteralText.EMPTY);
+ this.type = type;
+ if (type == Type.BOTTOM) {
+ this.u = 28;
+ this.v = 64;
+ } else {
+ this.u = 28;
+ this.v = 0;
+ }
+ this.toggled = toggled;
+ if (toggled) this.v += 32;
+ this.command = command;
+ this.icon = icon;
+ }
+
+ @Override
+ public void onClick(double mouseX, double mouseY) {
+ if (!this.toggled) {
+ this.toggled = true;
+ this.v += 32;
+ CLIENT.player.sendChatMessage(command);
+ }
+ }
+
+ @Override
+ public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) {
+ RenderSystem.setShaderTexture(0, BUTTON_TEXTURE);
+ RenderSystem.disableDepthTest();
+ // render button background
+ if (!this.toggled) {
+ if (this.type == Type.BOTTOM)
+ this.drawTexture(matrices, this.x, this.y + 4, this.u, this.v + 4, this.width, this.height - 4);
+ else
+ this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height - 4);
+ } else this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height);
+ // render button icon
+ if (!this.toggled) {
+ if (this.type == Type.BOTTOM)
+ CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6);
+ else
+ CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9);
+ } else {
+ if (this.type == Type.BOTTOM)
+ CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9);
+ else
+ CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6);
+ }
+ RenderSystem.enableDepthTest();
+ }
+}