diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-03-09 16:56:14 -0500 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-03-09 16:56:14 -0500 |
commit | 4a43b965bb0b105eb5c614932f965449e930f56b (patch) | |
tree | b2a03f646b9dde4e62ae5e0b8a56a77e781ee911 /src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java | |
parent | ef2ceee11a07b2861aca28aa73f87a1932a640d2 (diff) | |
download | Skyblocker-4a43b965bb0b105eb5c614932f965449e930f56b.tar.gz Skyblocker-4a43b965bb0b105eb5c614932f965449e930f56b.tar.bz2 Skyblocker-4a43b965bb0b105eb5c614932f965449e930f56b.zip |
Refactor Hud Config Screens and fix dragging
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java | 65 |
1 files changed, 20 insertions, 45 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java index b4e423e9..15e605b9 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHudConfigScreen.java @@ -1,69 +1,44 @@ package de.hysky.skyblocker.skyblock.dwarven; -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.render.RenderHelper; -import it.unimi.dsi.fastutil.ints.IntIntPair; +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.Widget; +import it.unimi.dsi.fastutil.ints.IntIntMutablePair; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; -import java.awt.*; +import java.util.List; -public class CrystalsHudConfigScreen extends Screen { - - private int hudX = SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.x; - private int hudY = SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.y; - private final Screen parent; +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")); - this.parent = parent; - } - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - super.render(context, mouseX, mouseY, delta); - renderBackground(context, mouseX, mouseY, delta); - renderHUDMap(context, hudX, hudY); - context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB()); + super(Text.of("Crystals HUD Config"), parent, WIDGET); + WIDGET.setDimensions(CrystalsHud.getDimensionsForConfig()); } + @SuppressWarnings("SuspiciousNameCombination") @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - IntIntPair dims = CrystalsHud.getDimensionsForConfig(); - if (RenderHelper.pointIsInArea(mouseX, mouseY, hudX, hudY, hudX + dims.leftInt(), hudY + dims.rightInt()) && button == 0) { - hudX = (int) Math.max(Math.min(mouseX - (double) dims.leftInt() / 2, this.width - dims.leftInt()), 0); - hudY = (int) Math.max(Math.min(mouseY - (double) dims.rightInt() / 2, this.height - dims.rightInt()), 0); - } - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + protected List<IntIntMutablePair> getConfigPos(SkyblockerConfig config) { + return List.of(IntIntMutablePair.of(config.locations.dwarvenMines.crystalsHud.x, config.locations.dwarvenMines.crystalsHud.y)); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 1) { - IntIntPair dims = CrystalsHud.getDimensionsForConfig(); - hudX = this.width / 2 - dims.leftInt(); - hudY = this.height / 2 - dims.rightInt(); - } - return super.mouseClicked(mouseX, mouseY, button); + protected void renderWidget(DrawContext context, List<Widget> widgets) { + int size = CrystalsHud.getDimensionsForConfig(); + WIDGET.setDimensions(size); + context.drawTexture(CrystalsHud.MAP_TEXTURE, WIDGET.getX(), WIDGET.getY(), 0, 0, size, size, size, size); } - private void renderHUDMap(DrawContext context, int x, int y) { - float scaling = SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.mapScaling; - int size = (int) (62 * scaling); - context.drawTexture(CrystalsHud.MAP_TEXTURE, x, y, 0, 0, size, size, size, size); - } - @Override - public void close() { - SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.x = hudX; - SkyblockerConfigManager.get().locations.dwarvenMines.crystalsHud.y = hudY; - SkyblockerConfigManager.save(); - - client.setScreen(parent); + protected void savePos(SkyblockerConfig configManager, List<Widget> widgets) { + configManager.locations.dwarvenMines.crystalsHud.x = widgets.get(0).getX(); + configManager.locations.dwarvenMines.crystalsHud.y = widgets.get(0).getY(); } } |