From 477d26414d4f23c8b16aaa975fd78d4cd7f46c2c Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 14 Mar 2024 20:20:40 -0400 Subject: Refactor Farming Hud --- .../hysky/skyblocker/config/HudConfigScreen.java | 1 - .../skyblocker/skyblock/garden/FarmingHud.java | 12 +++- .../skyblock/garden/FarmingHudConfigScreen.java | 3 +- .../skyblock/garden/FarmingHudWidget.java | 67 ++++++++++++++++++++++ .../tabhud/widget/hud/HudFarmingWidget.java | 65 --------------------- 5 files changed, 77 insertions(+), 71 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudFarmingWidget.java (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java index 6884af83..07109b46 100644 --- a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java @@ -52,7 +52,6 @@ public abstract class HudConfigScreen extends Screen { @Override public final void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); - renderBackground(context, mouseX, mouseY, delta); renderWidget(context, widgets); context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java index dba282c1..ab504d6d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java @@ -1,14 +1,16 @@ package de.hysky.skyblocker.skyblock.garden; +import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudFarmingWidget; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.scheduler.Scheduler; import it.unimi.dsi.fastutil.floats.FloatLongPair; import it.unimi.dsi.fastutil.ints.IntLongPair; import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue; import it.unimi.dsi.fastutil.longs.LongPriorityQueue; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.fabricmc.fabric.api.event.client.player.ClientPlayerBlockBreakEvents; @@ -26,6 +28,8 @@ import java.util.Queue; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; + public class FarmingHud { private static final Logger LOGGER = LoggerFactory.getLogger(FarmingHud.class); public static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(Locale.US); @@ -62,8 +66,8 @@ public class FarmingHud { } } - HudFarmingWidget.INSTANCE.update(); - HudFarmingWidget.INSTANCE.render(context, SkyblockerConfigManager.get().general.tabHud.enableHudBackground); + FarmingHudWidget.INSTANCE.update(); + FarmingHudWidget.INSTANCE.render(context, SkyblockerConfigManager.get().general.tabHud.enableHudBackground); } }); ClientPlayerBlockBreakEvents.AFTER.register((world, player, pos, state) -> { @@ -84,6 +88,8 @@ public class FarmingHud { } } }); + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(literal(SkyblockerMod.NAMESPACE).then(literal("hud").then(literal("farming") + .executes(Scheduler.queueOpenScreenCommand(() -> new FarmingHudConfigScreen(null))))))); } private static boolean shouldRender() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java index 51c1c69e..5384d47a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java @@ -3,7 +3,6 @@ package de.hysky.skyblocker.skyblock.garden; import de.hysky.skyblocker.config.HudConfigScreen; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.skyblock.tabhud.widget.Widget; -import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudFarmingWidget; import it.unimi.dsi.fastutil.ints.IntIntMutablePair; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; @@ -12,7 +11,7 @@ import java.util.List; public class FarmingHudConfigScreen extends HudConfigScreen { public FarmingHudConfigScreen(Screen parent) { - super(Text.literal("Farming HUD Config"), parent, HudFarmingWidget.INSTANCE); + super(Text.literal("Farming HUD Config"), parent, FarmingHudWidget.INSTANCE); } @SuppressWarnings("SuspiciousNameCombination") diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java new file mode 100644 index 00000000..6ddb0e05 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java @@ -0,0 +1,67 @@ +package de.hysky.skyblocker.skyblock.garden; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.tabhud.util.Ico; +import de.hysky.skyblocker.skyblock.tabhud.widget.Widget; +import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; +import de.hysky.skyblocker.skyblock.tabhud.widget.component.ProgressComponent; +import de.hysky.skyblocker.utils.ItemUtils; +import net.minecraft.client.MinecraftClient; +import net.minecraft.item.ItemStack; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import net.minecraft.util.math.MathHelper; + +import java.util.Map; + +public class FarmingHudWidget extends Widget { + private static final MutableText TITLE = Text.literal("Farming").formatted(Formatting.YELLOW, Formatting.BOLD); + private static final Map FARMING_TOOLS = Map.ofEntries( + Map.entry("THEORETICAL_HOE_WHEAT_1", Ico.WHEAT), + Map.entry("THEORETICAL_HOE_WHEAT_2", Ico.WHEAT), + Map.entry("THEORETICAL_HOE_WHEAT_3", Ico.WHEAT), + Map.entry("THEORETICAL_HOE_CARROT_1", Ico.CARROT), + Map.entry("THEORETICAL_HOE_CARROT_2", Ico.CARROT), + Map.entry("THEORETICAL_HOE_CARROT_3", Ico.CARROT), + Map.entry("THEORETICAL_HOE_POTATO_1", Ico.POTATO), + Map.entry("THEORETICAL_HOE_POTATO_2", Ico.POTATO), + Map.entry("THEORETICAL_HOE_POTATO_3", Ico.POTATO), + Map.entry("THEORETICAL_HOE_CANE_1", Ico.SUGAR_CANE), + Map.entry("THEORETICAL_HOE_CANE_2", Ico.SUGAR_CANE), + Map.entry("THEORETICAL_HOE_CANE_3", Ico.SUGAR_CANE), + Map.entry("THEORETICAL_HOE_WARTs_1", Ico.NETHER_WART), + Map.entry("THEORETICAL_HOE_WARTs_2", Ico.NETHER_WART), + Map.entry("THEORETICAL_HOE_WARTs_3", Ico.NETHER_WART), + Map.entry("FUNGI_CUTTER", Ico.MUSHROOM), + Map.entry("CACTUS_KNIFE", Ico.CACTUS), + Map.entry("MELON_DICER", Ico.MELON), + Map.entry("PUMPKIN_DICER", Ico.PUMPKIN), + Map.entry("COCO_CHOPPER", Ico.COCOA_BEANS) + ); + public static final FarmingHudWidget INSTANCE = new FarmingHudWidget(); + private final MinecraftClient client = MinecraftClient.getInstance(); + + public FarmingHudWidget() { + super(TITLE, Formatting.YELLOW.getColorValue()); + setX(SkyblockerConfigManager.get().locations.garden.farmingHud.x); + setY(SkyblockerConfigManager.get().locations.garden.farmingHud.y); + update(); + } + + @SuppressWarnings("DataFlowIssue") + @Override + public void updateContent() { + ItemStack icon = FARMING_TOOLS.getOrDefault(ItemUtils.getItemId(client.player.getMainHandStack()), Ico.HOE); + addSimpleIcoText(icon, "Counter: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format(FarmingHud.counter())); + addSimpleIcoText(icon, "Crops/min: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format((int) FarmingHud.cropsPerMinute() / 100 * 100)); + addSimpleIcoText(icon, "Blocks/s: ", Formatting.YELLOW, Integer.toString(FarmingHud.blockBreaks())); + addComponent(new ProgressComponent(Ico.LANTERN, Text.literal("Farming Level: "), FarmingHud.farmingXpPercentProgress(), Formatting.GOLD.getColorValue())); + addSimpleIcoText(Ico.LIME_DYE, "Farming XP/h: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format((int) FarmingHud.farmingXpPerHour())); + + double yaw = client.getCameraEntity().getYaw(); + double pitch = client.getCameraEntity().getPitch(); + addComponent(new PlainTextComponent(Text.literal("Yaw: " + String.format("%.3f", MathHelper.wrapDegrees(yaw))).formatted(Formatting.YELLOW))); + addComponent(new PlainTextComponent(Text.literal("Pitch: " + String.format("%.3f", MathHelper.wrapDegrees(pitch))).formatted(Formatting.YELLOW))); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudFarmingWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudFarmingWidget.java deleted file mode 100644 index 645bef96..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudFarmingWidget.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.hysky.skyblocker.skyblock.tabhud.widget.hud; - -import de.hysky.skyblocker.skyblock.garden.FarmingHud; -import de.hysky.skyblocker.skyblock.tabhud.util.Ico; -import de.hysky.skyblocker.skyblock.tabhud.widget.Widget; -import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; -import de.hysky.skyblocker.skyblock.tabhud.widget.component.ProgressComponent; -import de.hysky.skyblocker.utils.ItemUtils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.item.ItemStack; -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.MathHelper; - -import java.util.Map; - -public class HudFarmingWidget extends Widget { - private static final MutableText TITLE = Text.literal("Farming").formatted(Formatting.YELLOW, Formatting.BOLD); - private static final Map FARMING_TOOLS = Map.ofEntries( - Map.entry("THEORETICAL_HOE_WHEAT_1", Ico.WHEAT), - Map.entry("THEORETICAL_HOE_WHEAT_2", Ico.WHEAT), - Map.entry("THEORETICAL_HOE_WHEAT_3", Ico.WHEAT), - Map.entry("THEORETICAL_HOE_CARROT_1", Ico.CARROT), - Map.entry("THEORETICAL_HOE_CARROT_2", Ico.CARROT), - Map.entry("THEORETICAL_HOE_CARROT_3", Ico.CARROT), - Map.entry("THEORETICAL_HOE_POTATO_1", Ico.POTATO), - Map.entry("THEORETICAL_HOE_POTATO_2", Ico.POTATO), - Map.entry("THEORETICAL_HOE_POTATO_3", Ico.POTATO), - Map.entry("THEORETICAL_HOE_CANE_1", Ico.SUGAR_CANE), - Map.entry("THEORETICAL_HOE_CANE_2", Ico.SUGAR_CANE), - Map.entry("THEORETICAL_HOE_CANE_3", Ico.SUGAR_CANE), - Map.entry("THEORETICAL_HOE_WARTs_1", Ico.NETHER_WART), - Map.entry("THEORETICAL_HOE_WARTs_2", Ico.NETHER_WART), - Map.entry("THEORETICAL_HOE_WARTs_3", Ico.NETHER_WART), - Map.entry("FUNGI_CUTTER", Ico.MUSHROOM), - Map.entry("CACTUS_KNIFE", Ico.CACTUS), - Map.entry("MELON_DICER", Ico.MELON), - Map.entry("PUMPKIN_DICER", Ico.PUMPKIN), - Map.entry("COCO_CHOPPER", Ico.COCOA_BEANS) - ); - public static final HudFarmingWidget INSTANCE = new HudFarmingWidget(); - private final MinecraftClient client = MinecraftClient.getInstance(); - - public HudFarmingWidget() { - super(TITLE, Formatting.YELLOW.getColorValue()); - update(); - } - - @SuppressWarnings("DataFlowIssue") - @Override - public void updateContent() { - ItemStack icon = FARMING_TOOLS.getOrDefault(ItemUtils.getItemId(client.player.getMainHandStack()), Ico.HOE); - addSimpleIcoText(icon, "Counter: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format(FarmingHud.counter())); - addSimpleIcoText(icon, "Crops/min: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format((int) FarmingHud.cropsPerMinute() / 100 * 100)); - addSimpleIcoText(icon, "Blocks/s: ", Formatting.YELLOW, Integer.toString(FarmingHud.blockBreaks())); - addComponent(new ProgressComponent(Ico.LANTERN, Text.literal("Farming Level: "), FarmingHud.farmingXpPercentProgress(), Formatting.GOLD.getColorValue())); - addSimpleIcoText(Ico.LIME_DYE, "Farming XP/h: ", Formatting.YELLOW, FarmingHud.NUMBER_FORMAT.format((int) FarmingHud.farmingXpPerHour())); - - double yaw = client.getCameraEntity().getYaw(); - double pitch = client.getCameraEntity().getPitch(); - addComponent(new PlainTextComponent(Text.literal("Yaw: " + String.format("%.3f", MathHelper.wrapDegrees(yaw))).formatted(Formatting.YELLOW))); - addComponent(new PlainTextComponent(Text.literal("Pitch: " + String.format("%.3f", MathHelper.wrapDegrees(pitch))).formatted(Formatting.YELLOW))); - } -} -- cgit