From bafda22d7d7d5370f6dfaf7676890c7b689a4cb3 Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:50:56 +0200 Subject: Commit Message --- .../config/categories/FarmingCategory.java | 1 - .../config/categories/MiningCategory.java | 3 ++- .../config/categories/UIAndVisualsCategory.java | 20 --------------- .../de/hysky/skyblocker/mixins/InGameHudMixin.java | 20 +++++++++++++++ .../skyblocker/mixins/PlayerListHudMixin.java | 3 --- .../skyblock/dwarven/CrystalsHudWidget.java | 16 +++--------- .../skyblocker/skyblock/garden/FarmingHud.java | 3 ++- .../skyblock/garden/FarmingHudConfigScreen.java | 30 ---------------------- .../skyblock/tabhud/config/PreviewTab.java | 2 ++ .../tabhud/screenbuilder/ScreenMaster.java | 18 +------------ 10 files changed, 31 insertions(+), 85 deletions(-) delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java (limited to 'src/main/java/de') diff --git a/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java index c540502c..4f91252c 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java @@ -2,7 +2,6 @@ package de.hysky.skyblocker.config.categories; import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; -import de.hysky.skyblocker.skyblock.garden.FarmingHudConfigScreen; import de.hysky.skyblocker.skyblock.garden.FarmingHudWidget; import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; import de.hysky.skyblocker.utils.Location; diff --git a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java index f53fb562..36ecd60e 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.config.categories; import de.hysky.skyblocker.config.ConfigUtils; import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.configs.MiningConfig; +import de.hysky.skyblocker.skyblock.dwarven.CrystalsHudWidget; import dev.isxander.yacl3.api.*; import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; @@ -149,7 +150,7 @@ public class MiningCategory { .option(ButtonOption.createBuilder() .name(Text.translatable("skyblocker.config.mining.crystalsHud.screen")) .text(Text.translatable("text.skyblocker.open")) - .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.CRYSTAL_HOLLOWS, "hud_crystals", screen))) + .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.CRYSTAL_HOLLOWS, CrystalsHudWidget.INSTANCE.getInternalID(), screen))) .build()) .option(Option.createBuilder() .name(Text.translatable("skyblocker.config.mining.crystalsHud.mapScaling")) diff --git a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java index 97bf40a1..7a7c63bc 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java @@ -6,7 +6,6 @@ import de.hysky.skyblocker.skyblock.fancybars.StatusBarsConfigScreen; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenBuilder; import de.hysky.skyblocker.skyblock.waypoint.WaypointsScreen; import de.hysky.skyblocker.utils.render.title.TitleContainerConfigScreen; -import de.hysky.skyblocker.config.configs.UIAndVisualsConfig; import de.hysky.skyblocker.utils.waypoint.Waypoint; import dev.isxander.yacl3.api.ConfigCategory; import dev.isxander.yacl3.api.*; @@ -210,25 +209,6 @@ public class UIAndVisualsCategory { .controller(ConfigUtils::createEnumCyclingListController) .build() ) - // TODO Decide what to do with these options - .option(Option.createBuilder() - .name(Text.translatable("skyblocker.config.uiAndVisuals.tabHud.plainPlayerNames")) - .description(OptionDescription.of(Text.translatable("skyblocker.config.uiAndVisuals.tabHud.plainPlayerNames.@Tooltip"))) - .binding(defaults.uiAndVisuals.tabHud.plainPlayerNames, - () -> config.uiAndVisuals.tabHud.plainPlayerNames, - newValue -> config.uiAndVisuals.tabHud.plainPlayerNames = newValue) - .controller(ConfigUtils::createBooleanController) - .available(false) - .build()) - .option(Option.createBuilder() - .name(Text.translatable("skyblocker.config.uiAndVisuals.tabHud.nameSorting")) - .description(OptionDescription.of(Text.translatable("skyblocker.config.uiAndVisuals.tabHud.nameSorting.@Tooltip"))) - .binding(defaults.uiAndVisuals.tabHud.nameSorting, - () -> config.uiAndVisuals.tabHud.nameSorting, - newValue -> config.uiAndVisuals.tabHud.nameSorting = newValue) - .controller(ConfigUtils::createEnumCyclingListController) - .available(false) - .build()) .build()) // Fancy Auction House diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java index 46e91c9c..be859ce8 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java @@ -11,6 +11,8 @@ import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; import de.hysky.skyblocker.skyblock.item.ItemCooldowns; import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; +import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenMaster; import de.hysky.skyblocker.utils.Utils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -19,6 +21,9 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.LayeredDrawer; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.RenderTickCounter; +import net.minecraft.client.util.Window; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; @@ -156,4 +161,19 @@ public abstract class InGameHudMixin { private void skyblocker$afterDrawersInitialized(CallbackInfo ci) { this.layeredDrawer.addLayer(HudRenderEvents.LAST.invoker()::onRender); } + + @Inject(method = "renderPlayerList", at = @At("HEAD")) + private void skyblocker$renderHud(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) { + if (!Utils.isOnSkyblock()) return; + MinecraftClient client = MinecraftClient.getInstance(); + + if (client.currentScreen instanceof WidgetsConfigurationScreen) return; + Window window = client.getWindow(); + float scale = SkyblockerConfigManager.get().uiAndVisuals.tabHud.tabHudScale / 100f; + MatrixStack matrices = context.getMatrices(); + matrices.push(); + matrices.scale(scale, scale, 1.F); + ScreenMaster.render(context, (int) (window.getScaledWidth() / scale), (int) (window.getScaledHeight() / scale)); + matrices.pop(); + } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/PlayerListHudMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PlayerListHudMixin.java index 044c7d2c..8779737c 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/PlayerListHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/PlayerListHudMixin.java @@ -13,7 +13,6 @@ import net.minecraft.client.gui.hud.PlayerListHud; import net.minecraft.text.Text; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -23,8 +22,6 @@ import com.llamalad7.mixinextras.sugar.Local; @Environment(EnvType.CLIENT) @Mixin(PlayerListHud.class) public class PlayerListHudMixin { - @Shadow - private Text footer; @Inject(at = @At("HEAD"), method = "render", cancellable = true) public void skyblocker$renderTabHud(CallbackInfo info, @Local(argsOnly = true) DrawContext context, @Local(argsOnly = true) int w) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java index 450b017d..602b7fcf 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java @@ -4,7 +4,6 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget; import de.hysky.skyblocker.utils.Location; -import de.hysky.skyblocker.utils.Utils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderLayer; @@ -25,8 +24,6 @@ public class CrystalsHudWidget extends HudWidget { public static final CrystalsHudWidget INSTANCE = new CrystalsHudWidget(); - public static boolean visible = false; - public CrystalsHudWidget() { super("hud_crystals"); } @@ -66,18 +63,13 @@ public class CrystalsHudWidget extends HudWidget { return location.equals(Location.CRYSTAL_HOLLOWS) && SkyblockerConfigManager.get().mining.crystalsHud.enabled; } - /** - * Works out if the crystals map should be rendered and sets {@link CrystalsHudWidget#visible} accordingly. - * - */ public void update() { - if (CLIENT.player == null || CLIENT.getNetworkHandler() == null || !SkyblockerConfigManager.get().mining.crystalsHud.enabled) { - visible = false; - return; - } + if (CLIENT.player == null || CLIENT.getNetworkHandler() == null || !SkyblockerConfigManager.get().mining.crystalsHud.enabled) return; + //get if the player is in the crystals - visible = Utils.isInCrystalHollows(); + float scale = SkyblockerConfigManager.get().mining.crystalsHud.mapScaling; + w = h = (int) (62 * scale); } @Override 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 648c4f2a..fcb7e9d5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java @@ -4,6 +4,7 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.events.HudRenderEvents; +import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; @@ -86,7 +87,7 @@ 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))))))); + .executes(Scheduler.queueOpenScreenCommand(() -> new WidgetsConfigurationScreen(Location.GARDEN, "hud_garden", null))))))); } private static boolean tryGetCounter(ItemStack stack, CounterType counterType) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java deleted file mode 100644 index 47059ec0..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java +++ /dev/null @@ -1,30 +0,0 @@ -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.HudWidget; -import it.unimi.dsi.fastutil.ints.IntIntMutablePair; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -import java.util.List; - -public class FarmingHudConfigScreen extends HudConfigScreen { - public FarmingHudConfigScreen(Screen parent) { - super(Text.literal("Farming HUD Config"), parent, FarmingHudWidget.INSTANCE); - } - - @SuppressWarnings("SuspiciousNameCombination") - @Override - protected List getConfigPos(SkyblockerConfig config) { - return List.of( - IntIntMutablePair.of(config.farming.garden.farmingHud.x, config.farming.garden.farmingHud.y) - ); - } - - @Override - protected void savePos(SkyblockerConfig configManager, List widgets) { - configManager.farming.garden.farmingHud.x = widgets.getFirst().getX(); - configManager.farming.garden.farmingHud.y = widgets.getFirst().getY(); - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java index 34400e26..b5dea53c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java @@ -117,6 +117,8 @@ public class PreviewTab implements Tab { scoreboard.getOrCreateScore(createHolder(Text.literal("this should be")), placeHolderObjective).setScore(-8); scoreboard.getOrCreateScore(createHolder(Text.literal("enough lines bye")), placeHolderObjective).setScore(-9); scoreboard.getOrCreateScore(createHolder(Text.literal("NEVER GONNA GIVE Y-")), placeHolderObjective).setScore(-10); + + ScreenMaster.getScreenBuilder(getCurrentLocation()).positionWidgets(client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight()); } private ScoreHolder createHolder(Text name) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java index 021e3ebc..06207554 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java @@ -8,11 +8,9 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.events.HudRenderEvents; import de.hysky.skyblocker.events.SkyblockEvents; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.skyblock.tabhud.TabHud; -import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen; import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PositionRule; import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; import de.hysky.skyblocker.skyblock.tabhud.widget.DungeonPlayerWidget; @@ -23,8 +21,6 @@ import de.hysky.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.util.Window; -import net.minecraft.client.util.math.MatrixStack; import org.slf4j.Logger; import java.io.BufferedReader; @@ -64,6 +60,7 @@ public class ScreenMaster { /** * Top level render method. * Calls the appropriate ScreenBuilder with the screen's dimensions + * Called in PlayerListHudMixin */ public static void render(DrawContext context, int w, int h) { MinecraftClient client = MinecraftClient.getInstance(); @@ -158,19 +155,6 @@ public class ScreenMaster { public static void init() { SkyblockEvents.LOCATION_CHANGE.register(location -> ScreenBuilder.positionsNeedsUpdating = true); - HudRenderEvents.BEFORE_CHAT.register((context, tickDelta) -> { - if (!Utils.isOnSkyblock()) return; - MinecraftClient client = MinecraftClient.getInstance(); - if (client.currentScreen instanceof WidgetsConfigurationScreen) return; - Window window = client.getWindow(); - float scale = SkyblockerConfigManager.get().uiAndVisuals.tabHud.tabHudScale / 100f; - MatrixStack matrices = context.getMatrices(); - matrices.push(); - matrices.scale(scale, scale, 1.F); - render(context, (int) (window.getScaledWidth() / scale), (int) (window.getScaledHeight() / scale)); - matrices.pop(); - }); - ClientLifecycleEvents.CLIENT_STARTED.register(client -> { try { ClassPath.from(TabHudWidget.class.getClassLoader()).getTopLevelClasses("de.hysky.skyblocker.skyblock.tabhud.widget").iterator().forEachRemaining(classInfo -> { -- cgit