aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2024-07-01 18:34:06 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-12-12 18:19:05 +0100
commitce246cfa2b15be67e10fbaf68970e5615a30dfe8 (patch)
treec8f6dcd06a454bf5ec106e970dd23bb2e5c8e195 /src/main/java/de
parent2e9a54f81e9839fd48eb0b77b700313f915bb711 (diff)
downloadSkyblocker-ce246cfa2b15be67e10fbaf68970e5615a30dfe8.tar.gz
Skyblocker-ce246cfa2b15be67e10fbaf68970e5615a30dfe8.tar.bz2
Skyblocker-ce246cfa2b15be67e10fbaf68970e5615a30dfe8.zip
clean up, dungeons config and other little things
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/SkyblockerMod.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java45
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java)77
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java215
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java56
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/end/EndHudWidget.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/TabHud.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/DungeonsTabPlaceholder.java109
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java87
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsConfigurationScreen.java35
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsOrderingTab.java30
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/entries/EditableEntry.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/entries/WidgetsListEntry.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenBuilder.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/screenbuilder/ScreenMaster.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/util/PlayerListMgr.java41
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java32
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComponentBasedWidget.java200
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ComposterWidget.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/CookieWidget.java52
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDeathWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonDownedWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EffectWidget.java38
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/EmptyWidget.java20
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/ErrorWidget.java37
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/HudWidget.java207
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/JacobsContestWidget.java26
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/TabHudWidget.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudCommsWidget.java77
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/hud/HudPowderWidget.java138
38 files changed, 650 insertions, 978 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
index d673aca4..fd6a2eaa 100644
--- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
+++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java
@@ -68,8 +68,8 @@ public class SkyblockerMod implements ClientModInitializer {
Scheduler.INSTANCE.scheduleCyclic(Utils::update, 20);
Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 200);
Scheduler.INSTANCE.scheduleCyclic(BackpackPreview::tick, 50);
- Scheduler.INSTANCE.scheduleCyclic(DwarvenHud::update, 40);
- Scheduler.INSTANCE.scheduleCyclic(CrystalsHud::update, 40);
+ //Scheduler.INSTANCE.scheduleCyclic(DwarvenHud::update, 40);
+ //Scheduler.INSTANCE.scheduleCyclic(CrystalsHudWidget::update, 40);
Scheduler.INSTANCE.scheduleCyclic(PlayerListMgr::updateList, 20);
}
diff --git a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
index 2e4b8977..ac1d8966 100644
--- a/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
+++ b/src/main/java/de/hysky/skyblocker/config/HudConfigScreen.java
@@ -56,13 +56,13 @@ public abstract class HudConfigScreen extends Screen {
}
/**
- * Renders the widgets using the default {@link HudWidget#render(DrawContext, boolean)} method. Override to change the behavior.
+ * Renders the widgets using the default {@link HudWidget#render(DrawContext)} method. Override to change the behavior.
* @param context the context to render in
* @param widgets the widgets to render
*/
protected void renderWidget(DrawContext context, List<HudWidget> widgets) {
for (HudWidget widget : widgets) {
- widget.render(context, SkyblockerConfigManager.get().uiAndVisuals.tabHud.enableHudBackground);
+ widget.render(context);
}
}
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 90b36c72..c540502c 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/FarmingCategory.java
@@ -3,6 +3,9 @@ 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;
import dev.isxander.yacl3.api.ButtonOption;
import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
@@ -30,7 +33,7 @@ public class FarmingCategory {
.option(ButtonOption.createBuilder()
.name(Text.translatable("skyblocker.config.farming.garden.farmingHud"))
.text(Text.translatable("text.skyblocker.open"))
- .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new FarmingHudConfigScreen(screen)))
+ .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.GARDEN, FarmingHudWidget.INSTANCE.getInternalID(), screen)))
.build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.farming.garden.dicerTitlePrevent"))
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 364e9b07..f53fb562 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/MiningCategory.java
@@ -3,10 +3,11 @@ 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.CrystalsHudConfigScreen;
-import de.hysky.skyblocker.skyblock.dwarven.DwarvenHudConfigScreen;
import dev.isxander.yacl3.api.*;
import dev.isxander.yacl3.api.controller.ColorControllerBuilder;
+import de.hysky.skyblocker.skyblock.tabhud.config.WidgetsConfigurationScreen;
+import de.hysky.skyblocker.utils.Location;
+import dev.isxander.yacl3.api.*;
import dev.isxander.yacl3.api.controller.FloatFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
import net.minecraft.client.MinecraftClient;
@@ -57,15 +58,18 @@ public class MiningCategory {
.build())
//Dwarven HUD
+ // TODO remove
.group(OptionGroup.createBuilder()
.name(Text.translatable("skyblocker.config.mining.dwarvenHud"))
.collapsed(false)
+ .option(LabelOption.create(Text.literal("Use the hypixel widget.")))
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.mining.dwarvenHud.enabledCommissions"))
.binding(defaults.mining.dwarvenHud.enabledCommissions,
() -> config.mining.dwarvenHud.enabledCommissions,
newValue -> config.mining.dwarvenHud.enabledCommissions = newValue)
.controller(ConfigUtils::createBooleanController)
+ .available(false)
.build())
.option(Option.<Boolean>createBuilder()
.name(Text.translatable("skyblocker.config.mining.dwarvenHud.enabledPowder"))
@@ -73,6 +77,7 @@ public class MiningCategory {
() -> config.mining.dwarvenHud.enabledPowder,
newValue -> config.mining.dwarvenHud.enabledPowder = newValue)
.controller(ConfigUtils::createBooleanController)
+ .available(false)
.build())
.option(Option.<MiningConfig.DwarvenHudStyle>createBuilder()
.name(Text.translatable("skyblocker.config.mining.dwarvenHud.style"))
@@ -83,11 +88,13 @@ public class MiningCategory {
() -> config.mining.dwarvenHud.style,
newValue -> config.mining.dwarvenHud.style = newValue)
.controller(ConfigUtils::createEnumCyclingListController)
+ .available(false)
.build())
.option(ButtonOption.createBuilder()
.name(Text.translatable("skyblocker.config.mining.dwarvenHud.screen"))
.text(Text.translatable("text.skyblocker.open"))
- .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new DwarvenHudConfigScreen(screen)))
+ .action((screen, opt) -> screen.tick())
+ .available(false)
.build())
.build())
@@ -142,7 +149,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 CrystalsHudConfigScreen(screen)))
+ .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.CRYSTAL_HOLLOWS, "hud_crystals", 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/OtherLocationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
index c670c898..d8e87697 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/OtherLocationsCategory.java
@@ -130,7 +130,7 @@ public class OtherLocationsCategory {
.option(ButtonOption.createBuilder()
.name(Text.translatable("skyblocker.config.otherLocations.end.screen"))
.text(Text.translatable("text.skyblocker.open")) // Reusing again lol
- .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.THE_END, EndHudWidget.INSTANCE.getInternalID())))
+ .action((screen, opt) -> MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.THE_END, EndHudWidget.INSTANCE.getInternalID(), screen)))
.build())
.option(ButtonOption.createBuilder()
.name(Text.translatable("skyblocker.config.otherLocations.end.resetName"))
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 4e890316..d4f39346 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java
@@ -194,12 +194,22 @@ public class UIAndVisualsCategory {
.controller(ConfigUtils::createBooleanController)
.build())
.option(Option.<Boolean>createBuilder()
+ .name(Text.literal("Effects from footer"))
+ .description(OptionDescription.of(Text.literal("If on, will fetch current effects from the tab footer if the hypixel Effects widget is disabled")))
+ .controller(ConfigUtils::createBooleanController)
+ .binding(defaults.uiAndVisuals.tabHud.effectsFromFooter,
+ () -> config.uiAndVisuals.tabHud.effectsFromFooter,
+ newValue -> config.uiAndVisuals.tabHud.effectsFromFooter = newValue)
+ .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"))
@@ -208,6 +218,7 @@ public class UIAndVisualsCategory {
() -> config.uiAndVisuals.tabHud.nameSorting,
newValue -> config.uiAndVisuals.tabHud.nameSorting = newValue)
.controller(ConfigUtils::createEnumCyclingListController)
+ .available(false)
.build())
.build())
@@ -439,7 +450,7 @@ public class UIAndVisualsCategory {
.binding(defaults.uiAndVisuals.compactDamage.precision,
() -> config.uiAndVisuals.compactDamage.precision,
newValue -> config.uiAndVisuals.compactDamage.precision = newValue)
- .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1,3).step(1))
+ .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(1, 3).step(1))
.build())
.option(Option.<Color>createBuilder()
.name(Text.translatable("skyblocker.config.uiAndVisuals.compactDamage.normalDamageColor"))
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java
index 755fb46e..2982804b 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/UIAndVisualsConfig.java
@@ -162,6 +162,9 @@ public class UIAndVisualsConfig {
public boolean enableHudBackground = true;
@SerialEntry
+ public boolean effectsFromFooter = false;
+
+ @SerialEntry
public boolean plainPlayerNames = false;
@SerialEntry
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java
deleted file mode 100644
index 1858b214..00000000
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.hysky.skyblocker.skyblock.dwarven;
-
-import de.hysky.skyblocker.config.HudConfigScreen;
-import de.hysky.skyblocker.config.SkyblockerConfig;
-import de.hysky.skyblocker.skyblock.tabhud.widget.EmptyWidget;
-import de.hysky.skyblocker.skyblock.tabhud.widget.HudWidget;
-import it.unimi.dsi.fastutil.ints.IntIntMutablePair;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.render.RenderLayer;
-import net.minecraft.text.Text;
-
-import java.util.List;
-
-public class CrystalsHudConfigScreen extends HudConfigScreen {
- private static final EmptyWidget WIDGET = new EmptyWidget();
-
- protected CrystalsHudConfigScreen() {
- this(null);
- }
-
- public CrystalsHudConfigScreen(Screen parent) {
- super(Text.of("Crystals HUD Config"), parent, WIDGET);
- WIDGET.setDimensions(CrystalsHud.getDimensionsForConfig());
- }
-
- @SuppressWarnings("SuspiciousNameCombination")
- @Override
- protected List<IntIntMutablePair> getConfigPos(SkyblockerConfig config) {
- return List.of(IntIntMutablePair.of(config.mining.crystalsHud.x, config.mining.crystalsHud.y));
- }
-
- @Override
- protected void renderWidget(DrawContext context, List<HudWidget> widgets) {
- int size = CrystalsHud.getDimensionsForConfig();
- WIDGET.setDimensions(size);
- context.drawTexture(RenderLayer::getGuiTextured, CrystalsHud.MAP_TEXTURE, WIDGET.getX(), WIDGET.getY(), 0, 0, size, size, size, size);
- }
-
- @Override
- protected void savePos(SkyblockerConfig configManager, List<HudWidget> widgets) {
- configManager.mining.crystalsHud.x = widgets.getFirst().getX();
- configManager.mining.crystalsHud.y = widgets.getFirst().getY();
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java
index 8689df83..a47ce135 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudWidget.java
@@ -4,6 +4,8 @@ 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.widget.HudWidget;
+import de.hysky.skyblocker.utils.Location;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
@@ -20,23 +22,28 @@ import org.joml.Vector2ic;
import java.util.List;
import java.util.Map;
-public class CrystalsHud {
+public class CrystalsHudWidget extends HudWidget {
private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
protected static final Identifier MAP_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/crystals_map.png");
private static final Identifier MAP_ICON = Identifier.ofVanilla("textures/map/decorations/player.png");
private static final List<String> SMALL_LOCATIONS = List.of("Fairy Grotto", "King Yolkar", "Corleone", "Odawa", "Key Guardian", "Unknown");
+ public static final CrystalsHudWidget INSTANCE = new CrystalsHudWidget();
public static boolean visible = false;
+ public CrystalsHudWidget() {
+ super("hud_crystals");
+ }
+
@Init
public static void init() {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
+ /*ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
.then(ClientCommandManager.literal("hud")
.then(ClientCommandManager.literal("crystals")
- .executes(Scheduler.queueOpenScreenCommand(CrystalsHudConfigScreen::new))))));
+ .executes(Scheduler.queueOpenScreenCommand(CrystalsHudConfigScreen::new))))));*/
- HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> {
+ /*HudRenderEvents.AFTER_MAIN_HUD.register((context, tickCounter) -> {
if (!SkyblockerConfigManager.get().mining.crystalsHud.enabled
|| CLIENT.player == null
|| !visible) {
@@ -44,7 +51,7 @@ public class CrystalsHud {
}
render(context, SkyblockerConfigManager.get().mining.crystalsHud.x,
SkyblockerConfigManager.get().mining.crystalsHud.y);
- });
+ });*/
}
protected static int getDimensionsForConfig() {
@@ -53,21 +60,76 @@ public class CrystalsHud {
/**
- * Renders the map to the players UI. renders the background image ({@link CrystalsHud#MAP_TEXTURE}) of the map then if enabled special locations on the map. then finally the player to the map.
+ * Renders the map to the players UI. renders the background image ({@link CrystalsHudWidget#MAP_TEXTURE}) of the map then if enabled special locations on the map. then finally the player to the map.
*
* @param context DrawContext to draw map to
* @param hudX Top left X coordinate of the map
* @param hudY Top left Y coordinate of the map
*/
private static void render(DrawContext context, int hudX, int hudY) {
+
+ }
+
+ /**
+ * Converts an X and Z coordinate in the crystal hollow to an X and Y coordinate on the map.
+ *
+ * @param x the world X coordinate
+ * @param z the world Z coordinate
+ * @return a vector representing the x and y values
+ */
+ protected static Vector2ic transformLocation(double x, double z) {
+ //converts an x and z to a location on the map
+ int transformedX = (int) ((x - 202) / 621 * 62);
+ int transformedY = (int) ((z - 202) / 621 * 62);
+ transformedX = Math.clamp(transformedX, 0, 62);
+ transformedY = Math.clamp(transformedY, 0, 62);
+
+ return new Vector2i(transformedX, transformedY);
+ }
+
+ /**
+ * Converts yaw to the cardinal directions that a player marker can be rotated towards on a map.
+ * The rotations of a marker follow this order: N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW.
+ * <br><br>
+ * Based off code from {@link net.minecraft.client.render.MapRenderer}
+ */
+ private static float yaw2Cardinal(float yaw) {
+ yaw += 180; //flip direction
+ byte clipped = (byte) ((yaw + (yaw < 0.0 ? -8.0 : 8.0)) * 16.0 / 360.0);
+
+ return (clipped * 360f) / 16f;
+ }
+
+ @Override
+ public boolean shouldRender(Location location) {
+ 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;
+ }
+
+ //get if the player is in the crystals
+ visible = Utils.isInCrystalHollows();
+ }
+
+ @Override
+ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
float scale = SkyblockerConfigManager.get().mining.crystalsHud.mapScaling;
//make sure the map renders infront of some stuff - improve this in the future with better layering (1.20.5?)
//and set position and scale
MatrixStack matrices = context.getMatrices();
matrices.push();
- matrices.translate(hudX, hudY, 0f);
+ matrices.translate(x, y, 0f);
matrices.scale(scale, scale, 0f);
+ w = h = (int) (62 * scale);
//draw map texture
context.drawTexture(RenderLayer::getGuiTextured, MAP_TEXTURE, 0, 0, 0, 0, 62, 62, 62, 62);
@@ -90,6 +152,7 @@ public class CrystalsHud {
//draw player on map
if (CLIENT.player == null || CLIENT.getNetworkHandler() == null) {
+ matrices.pop();
return;
}
//get player location
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
index 6d0a13c2..e69de29b 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -1,215 +0,0 @@
-package de.hysky.skyblocker.skyblock.dwarven;
-
-import de.hysky.skyblocker.annotations.Init;
-import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.config.configs.MiningConfig;
-import de.hysky.skyblocker.events.HudRenderEvents;
-import de.hysky.skyblocker.mixins.accessors.PlayerListHudAccessor;
-import de.hysky.skyblocker.skyblock.tabhud.util.Colors;
-import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
-import de.hysky.skyblocker.skyblock.tabhud.widget.hud.HudPowderWidget;
-import de.hysky.skyblocker.utils.Utils;
-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.MinecraftClient;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.network.PlayerListEntry;
-import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Stream;
-
-public class DwarvenHud {
-
- private static final MinecraftClient CLIENT = MinecraftClient.getInstance();
- private static List<Commission> commissionList = new ArrayList<>();
-
- public static String mithrilPowder = "0";
- public static String gemStonePowder = "0";
- public static String glac