aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2024-07-31 19:50:56 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-12-12 18:19:33 +0100
commitbafda22d7d7d5370f6dfaf7676890c7b689a4cb3 (patch)
treea6cd4dd12044d3c382db80740940545dfbc7bed2 /src/main/java
parent7f6efd9cc9c23cfaef3ab8b529000f25ae28a66b (diff)
downloadSkyblocker-bafda22d7d7d5370f6dfaf7676890c7b689a4cb3.tar.gz
Skyblocker-bafda22d7d7d5370f6dfaf7676890c7b689a4cb3.tar.bz2
Skyblocker-bafda22d7d7d5370f6dfaf7676890c7b689a4cb3.zip
Commit Message
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/PlayerListHudMixin.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHud.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudConfigScreen.java30
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java18
10 files changed, 31 insertions, 85 deletions
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.<Float>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.<Boolean>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.<UIAndVisualsConfig.NameSorting>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<IntIntMutablePair> 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<HudWidget> 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 -> {