aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock
diff options
context:
space:
mode:
authormsg-programs <msgdoesstuff@gmail.com>2023-08-06 15:46:54 +0200
committermsg-programs <msgdoesstuff@gmail.com>2023-08-06 15:46:54 +0200
commit11c921b7fa882d26a1ac8640fae121f43727984a (patch)
treefd46208bea4b3c784e885777492b53c05c7a1f23 /src/main/java/me/xmrvizzy/skyblocker/skyblock
parentf8c6e9454cc1354714bf46f7763ff7faf7669ddf (diff)
parent8353ab29d85a5827fda151ab2b042419f6420bcb (diff)
downloadSkyblocker-11c921b7fa882d26a1ac8640fae121f43727984a.tar.gz
Skyblocker-11c921b7fa882d26a1ac8640fae121f43727984a.tar.bz2
Skyblocker-11c921b7fa882d26a1ac8640fae121f43727984a.zip
Merge branch 'master' of https://github.com/SkyblockerMod/Skyblocker into json-tabhud
# Conflicts: # src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java # src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java # src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/screens/main/GardenScreen.java # src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerLocator.java Pull upstream changes
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/TeleportOverlay.java112
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/CroesusHelper.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java40
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java28
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java18
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java68
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java418
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java32
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/HealingMelonIndicator.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java206
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java232
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java107
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerLocator.java5
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/CameraPositionWidget.java37
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/GardenVisitorsWidget.java30
19 files changed, 1083 insertions, 274 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java
index 8dee3fcb..b53157c5 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java
@@ -44,10 +44,10 @@ public class FishingHelper {
startTime = 0;
}
- public static void onSound(MinecraftClient client, PlaySoundS2CPacket packet) {
+ public static void onSound(PlaySoundS2CPacket packet) {
String path = packet.getSound().value().getId().getPath();
if (SkyblockerConfig.get().general.fishing.enableFishingHelper && startTime != 0 && System.currentTimeMillis() >= startTime + 2000 && ("entity.generic.splash".equals(path) || "entity.player.splash".equals(path))) {
- ClientPlayerEntity player = client.player;
+ ClientPlayerEntity player = MinecraftClient.getInstance().player;
if (player != null && player.fishHook != null) {
Vec3d soundToFishHook = player.fishHook.getPos().subtract(packet.getX(), 0, packet.getZ());
if (Math.abs(normalYawVector.x * soundToFishHook.z - normalYawVector.z * soundToFishHook.x) < 0.2D && Math.abs(normalYawVector.dotProduct(soundToFishHook)) < 4D && player.getPos().squaredDistanceTo(packet.getX(), packet.getY(), packet.getZ()) > 1D) {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/TeleportOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/TeleportOverlay.java
new file mode 100644
index 00000000..e7c76160
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/TeleportOverlay.java
@@ -0,0 +1,112 @@
+package me.xmrvizzy.skyblocker.skyblock;
+
+import com.mojang.blaze3d.systems.RenderSystem;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
+import me.xmrvizzy.skyblocker.utils.RenderHelper;
+import me.xmrvizzy.skyblocker.utils.Utils;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
+import net.minecraft.block.BlockState;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NbtCompound;
+import net.minecraft.util.hit.BlockHitResult;
+import net.minecraft.util.hit.HitResult;
+import net.minecraft.util.math.BlockPos;
+
+public class TeleportOverlay {
+ private static final float[] COLOR_COMPONENTS = {118f / 255f, 21f / 255f, 148f / 255f};
+ private static final MinecraftClient client = MinecraftClient.getInstance();
+
+ public static void init() {
+ WorldRenderEvents.AFTER_TRANSLUCENT.register(TeleportOverlay::render);
+ }
+
+ private static void render(WorldRenderContext wrc) {
+ if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.teleportOverlay.enableTeleportOverlays && client.player != null && client.world != null) {
+ ItemStack heldItem = client.player.getMainHandStack();
+ String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem);
+ NbtCompound nbt = heldItem.getNbt();
+
+ if (itemId != null) {
+ switch (itemId) {
+ case "ASPECT_OF_THE_LEECH_1" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableWeirdTransmission) {
+ render(wrc, 3);
+ }
+ }
+ case "ASPECT_OF_THE_LEECH_2" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableWeirdTransmission) {
+ render(wrc, 4);
+ }
+ }
+ case "ASPECT_OF_THE_END", "ASPECT_OF_THE_VOID" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableEtherTransmission && client.options.sneakKey.isPressed() && nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) {
+ render(wrc, nbt, 57);
+ } else if (SkyblockerConfig.get().general.teleportOverlay.enableInstantTransmission) {
+ render(wrc, nbt, 8);
+ }
+ }
+ case "ETHERWARP_CONDUIT" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableEtherTransmission) {
+ render(wrc, nbt, 57);
+ }
+ }
+ case "SINSEEKER_SCYTHE" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableSinrecallTransmission) {
+ render(wrc, nbt, 4);
+ }
+ }
+ case "NECRON_BLADE", "ASTRAEA", "HYPERION", "SCYLLA", "VALKYRIE" -> {
+ if (SkyblockerConfig.get().general.teleportOverlay.enableWitherImpact) {
+ render(wrc, 10);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Renders the teleport overlay with a given base range and the tuned transmission stat.
+ */
+ private static void render(WorldRenderContext wrc, NbtCompound nbt, int baseRange) {
+ render(wrc, nbt != null && nbt.getCompound("ExtraAttributes").contains("tuned_transmission") ? baseRange + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : baseRange);
+ }
+
+ /**
+ * Renders the teleport overlay with a given range. Uses {@link MinecraftClient#crosshairTarget} if it is a block and within range. Otherwise, raycasts from the player with the given range.
+ * @implNote {@link MinecraftClient#player} and {@link MinecraftClient#world} must not be null when calling this method.
+ */
+ private static void render(WorldRenderContext wrc, int range) {
+ if (client.crosshairTarget != null && client.crosshairTarget.getType() == HitResult.Type.BLOCK && client.crosshairTarget instanceof BlockHitResult blockHitResult && client.crosshairTarget.squaredDistanceTo(client.player) < range * range) {
+ render(wrc, blockHitResult);
+ } else if (client.interactionManager != null && range > client.interactionManager.getReachDistance()) {
+ @SuppressWarnings("DataFlowIssue")
+ HitResult result = client.player.raycast(range, wrc.tickDelta(), false);
+ if (result.getType() == HitResult.Type.BLOCK && result instanceof BlockHitResult blockHitResult) {
+ render(wrc, blockHitResult);
+ }
+ }
+ }
+
+ /**
+ * Renders the teleport overlay at the given {@link BlockHitResult}.
+ * @implNote {@link MinecraftClient#world} must not be null when calling this method.
+ */
+ private static void render(WorldRenderContext wrc, BlockHitResult blockHitResult) {
+ BlockPos pos = blockHitResult.getBlockPos();
+ @SuppressWarnings("DataFlowIssue")
+ BlockState state = client.world.getBlockState(pos);
+ if (!state.isAir() && client.world.getBlockState(pos.up()).isAir() && client.world.getBlockState(pos.up(2)).isAir()) {
+ RenderSystem.polygonOffset(-1f, -10f);
+ RenderSystem.enablePolygonOffset();
+
+ RenderHelper.renderFilledIfVisible(wrc, pos, COLOR_COMPONENTS, 0.5f);
+
+ RenderSystem.polygonOffset(0f, 0f);
+ RenderSystem.disablePolygonOffset();
+ }
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/CroesusHelper.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/CroesusHelper.java
index 2d868782..44c8803f 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/CroesusHelper.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/CroesusHelper.java
@@ -25,7 +25,7 @@ public class CroesusHelper extends ContainerSolver {
List<ColorHighlight> highlights = new ArrayList<>();
for (Map.Entry<Integer, ItemStack> entry : slots.entrySet()) {
ItemStack stack = entry.getValue();
- if (stack != null && stack.getNbt() != null && stack.getNbt().toString().contains("opened")) {
+ if (stack != null && stack.getNbt() != null && stack.getNbt().toString().contains("No more Chests to open!")) {
highlights.add(ColorHighlight.gray(entry.getKey()));
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java
index 2a97d0ee..29a6e687 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMap.java
@@ -1,9 +1,6 @@
package me.xmrvizzy.skyblocker.skyblock.dungeon;
-import org.apache.commons.lang3.StringUtils;
-
-import com.mojang.brigadier.Command;
-
+import me.xmrvizzy.skyblocker.SkyblockerMod;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
@@ -16,11 +13,11 @@ import net.minecraft.item.FilledMapItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.map.MapState;
import net.minecraft.nbt.NbtCompound;
-import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
+import org.apache.commons.lang3.StringUtils;
public class DungeonMap {
- private static final Identifier MAP_BACKGROUND = new Identifier("textures/map/map_background.png");
+ private static final Identifier MAP_BACKGROUND = new Identifier("textures/map/map_background.png");
public static void render(MatrixStack matrices) {
MinecraftClient client = MinecraftClient.getInstance();
@@ -36,36 +33,29 @@ public class DungeonMap {
MapRenderer map = client.gameRenderer.getMapRenderer();
MapState state = FilledMapItem.getMapState(mapid, client.world);
float scaling = SkyblockerConfig.get().locations.dungeons.mapScaling;
- int x = SkyblockerConfig.get().locations.dungeons.mapX;
- int y = SkyblockerConfig.get().locations.dungeons.mapY;
+ int x = SkyblockerConfig.get().locations.dungeons.mapX;
+ int y = SkyblockerConfig.get().locations.dungeons.mapY;
if (state == null) return;
matrices.push();
matrices.translate(x, y, 0);
matrices.scale(scaling, scaling, 0f);
- map.draw( matrices, vertices, mapid, state, false, 15728880);
+ map.draw(matrices, vertices, mapid, state, false, 15728880);
vertices.draw();
matrices.pop();
}
}
-
+
public static void renderHUDMap(DrawContext context, int x, int y) {
- float scaling = SkyblockerConfig.get().locations.dungeons.mapScaling;
- int size = (int) (128 * scaling);
- context.drawTexture(MAP_BACKGROUND, x, y, 0, 0, size, size, size, size);
+ float scaling = SkyblockerConfig.get().locations.dungeons.mapScaling;
+ int size = (int) (128 * scaling);
+ context.drawTexture(MAP_BACKGROUND, x, y, 0, 0, size, size, size, size);
}
-
+
public static void init() {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> {
- dispatcher.register(ClientCommandManager.literal("skyblocker")
- .then(ClientCommandManager.literal("hud")
- .then(ClientCommandManager.literal("dungeonmap")
- .executes(context -> {
- MinecraftClient client = context.getSource().getClient();
- client.send(() -> client.setScreen(new DungeonMapConfigScreen(Text.literal("Dungeon Map Config"))));
-
- return Command.SINGLE_SUCCESS;
- }))));
- });
+ ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
+ .then(ClientCommandManager.literal("hud")
+ .then(ClientCommandManager.literal("dungeonmap")
+ .executes(context -> SkyblockerMod.getInstance().scheduler.queueOpenScreen(DungeonMapConfigScreen::new))))));
}
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
index ffd7a8b6..ef782c3b 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/DungeonMapConfigScreen.java
@@ -10,43 +10,43 @@ import net.minecraft.client.gui.screen.Screen;
import net.minecraft.text.Text;
public class DungeonMapConfigScreen extends Screen {
-
+
private int hudX = SkyblockerConfig.get().locations.dungeons.mapX;
private int hudY = SkyblockerConfig.get().locations.dungeons.mapY;
-
- protected DungeonMapConfigScreen(Text title) {
- super(title);
+
+ protected DungeonMapConfigScreen() {
+ super(Text.literal("Dungeon Map Config"));
}
-
+
@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
super.render(context, mouseX, mouseY, delta);
renderBackground(context);
DungeonMap.renderHUDMap(context, hudX, hudY);
- context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width / 2, height / 2, Color.GRAY.getRGB());
+ context.drawCenteredTextWithShadow(textRenderer, "Right Click To Reset Position", width >> 1, height >> 1, Color.GRAY.getRGB());
}
-
+
@Override
public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) {
float scaling = SkyblockerConfig.get().locations.dungeons.mapScaling;
int size = (int) (128 * scaling);
- if(RenderUtils.pointExistsInArea((int) mouseX, (int) mouseY, hudX, hudY, hudX + size, hudY + size) && button == 0) {
- hudX = (int) Math.max(Math.min(mouseX - (size / 2), this.width - size), 0);
- hudY = (int) Math.max(Math.min(mouseY - (size / 2), this.height - size), 0);
+ if (RenderUtils.pointExistsInArea((int) mouseX, (int) mouseY, hudX, hudY, hudX + size, hudY + size) && button == 0) {
+ hudX = (int) Math.max(Math.min(mouseX - (size >> 1), this.width - size), 0);
+ hudY = (int) Math.max(Math.min(mouseY - (size >> 1), this.height - size), 0);
}
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
}
-
+
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
- if(button == 1) {
+ if (button == 1) {
hudX = 2;
hudY = 2;
}
-
+
return super.mouseClicked(mouseX, mouseY, button);
}
-
+
@Override
public void close() {
SkyblockerConfig.get().locations.dungeons.mapX = hudX;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java
index 37320c92..13789fe1 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java
@@ -7,11 +7,11 @@ import net.minecraft.util.math.Direction;
import net.minecraft.util.shape.VoxelShape;
public class OldLever {
- protected static final VoxelShape FLOOR_SHAPE;
- protected static final VoxelShape NORTH_SHAPE;
- protected static final VoxelShape SOUTH_SHAPE;
- protected static final VoxelShape EAST_SHAPE;
- protected static final VoxelShape WEST_SHAPE;
+ protected static final VoxelShape FLOOR_SHAPE = Block.createCuboidShape(4.0D, 0.0D, 4.0D, 12.0D, 10.0D, 12.0D);
+ protected static final VoxelShape NORTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 10.0D, 11.0D, 13.0D, 16.0D);
+ protected static final VoxelShape SOUTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 0.0D, 11.0D, 13.0D, 6.0D);
+ protected static final VoxelShape EAST_SHAPE = Block.createCuboidShape(0.0D, 3.0D, 5.0D, 6.0D, 13.0D, 11.0D);
+ protected static final VoxelShape WEST_SHAPE = Block.createCuboidShape(10.0D, 3.0D, 5.0D, 16.0D, 13.0D, 11.0D);
public static VoxelShape getShape(WallMountLocation wallMountLocation, Direction direction) {
if (!SkyblockerConfig.get().general.hitbox.oldLeverHitbox)
@@ -37,12 +37,4 @@ public class OldLever {
}
return null;
}
-
- static {
- FLOOR_SHAPE = Block.createCuboidShape(4, 0, 4, 12, 10, 12);
- NORTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 10.0D, 11.0D, 13.0D, 16.0D);
- SOUTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 0.0D, 11.0D, 13.0D, 6.0D);
- WEST_SHAPE = Block.createCuboidShape(10.0D, 3.0D, 5.0D, 16.0D, 13.0D, 11.0D);
- EAST_SHAPE = Block.createCuboidShape(0.0D, 3.0D, 5.0D, 6.0D, 13.0D, 11.0D);
- }
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
index 21a1b2d0..999a3163 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHud.java
@@ -1,12 +1,6 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
+import me.xmrvizzy.skyblocker.SkyblockerMod;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.hud.HudCommsWidget;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
@@ -17,8 +11,14 @@ import net.minecraft.client.gui.DrawContext;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
-public class DwarvenHud {
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+public class DwarvenHud {
public static final MinecraftClient client = MinecraftClient.getInstance();
public static List<Commission> commissionList = new ArrayList<>();
@@ -35,33 +35,32 @@ public class DwarvenHud {
"2x Mithril Powder Collector",
"(?:Ruby|Amber|Sapphire|Jade|Amethyst|Topaz) Gemstone Collector",
"(?:Amber|Sapphire|Jade|Amethyst|Topaz) Crystal Hunter",
- "Chest Looter"
- ).map(s -> Pattern.compile("^.*(" + s + "): (\\d+\\.?\\d*%|DONE)"))
+ "Chest Looter").map(s -> Pattern.compile("^.*(" + s + "): (\\d+\\.?\\d*%|DONE)"))
.collect(Collectors.toList());
public static void init() {
- ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
- .then(ClientCommandManager.literal("hud")
- .then(ClientCommandManager.literal("dwarven")
- .executes(context -> {
- client.send(() -> client.setScreen(new DwarvenHudConfigScreen(Text.of("Dwarven HUD Config"))));
- return 1;
- })))));
+ ClientCommandRegistrationCallback.EVENT.register((dispatcher,
+ registryAccess) -> dispatcher.register(ClientCommandManager.literal("skyblocker")
+ .then(ClientCommandManager.literal("hud")
+ .then(ClientCommandManager.literal("dwarven")
+ .executes(context -> SkyblockerMod.getInstance().scheduler
+ .queueOpenScreen(DwarvenHudConfigScreen::new))))));
HudRenderCallback.EVENT.register((context, tickDelta) -> {
if (!SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled
- || client.options.playerListKey.isPressed()
- || client.player == null
- || commissionList.isEmpty()) {
+ || client.options.playerListKey.isPressed()
+ || client.player == null
+ || commissionList.isEmpty()) {
return;
}
- render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList);
+ render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y, commissionList);
});
}
public static void render(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
- switch(SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.style) {
+ switch (SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.style) {
case SIMPLE -> renderSimple(context, hudX, hudY, commissions);
case FANCY -> renderFancy(context, hudX, hudY, commissions);
case CLASSIC -> renderClassic(context, hudX, hudY, commissions);
@@ -76,12 +75,12 @@ public class DwarvenHud {
int y = 0;
for (Commission commission : commissions) {
context
- .drawTextWithShadow(client.textRenderer,
- Text.literal(commission.commission + ": ")
- .styled(style -> style.withColor(Formatting.AQUA))
- .append(Text.literal(commission.progression)
- .styled(style -> style.withColor(Formatting.GREEN))),
- hudX + 5, hudY + y + 5, 0xFFFFFFFF);
+ .drawTextWithShadow(client.textRenderer,
+ Text.literal(commission.commission + ": ")
+ .styled(style -> style.withColor(Formatting.AQUA))
+ .append(Text.literal(commission.progression)
+ .styled(style -> style.withColor(Formatting.GREEN))),
+ hudX + 5, hudY + y + 5, 0xFFFFFFFF);
y += 20;
}
}
@@ -91,7 +90,8 @@ public class DwarvenHud {
HudCommsWidget.INSTANCE.update();
HudCommsWidget.INSTANCE.setX(hudX);
HudCommsWidget.INSTANCE.setY(hudY);
- HudCommsWidget.INSTANCE.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ HudCommsWidget.INSTANCE.render(context,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
}
public static void renderFancy(DrawContext context, int hudX, int hudY, List<Commission> commissions) {
@@ -99,12 +99,14 @@ public class DwarvenHud {
HudCommsWidget.INSTANCE.update();
HudCommsWidget.INSTANCE.setX(hudX);
HudCommsWidget.INSTANCE.setY(hudY);
- HudCommsWidget.INSTANCE.render(context, SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
+ HudCommsWidget.INSTANCE.render(context,
+ SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enableBackground);
}
public static void update() {
commissionList = new ArrayList<>();
- if (client.player == null || !SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled) return;
+ if (client.player == null || !SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.enabled)
+ return;
client.getNetworkHandler().getPlayerList().forEach(playerListEntry -> {
if (playerListEntry.getDisplayName() != null) {
@@ -120,6 +122,6 @@ public class DwarvenHud {
}
// steamroller tactics to get visibility from outside classes (CommsWidget)
- public static record Commission(String commission, String progression){}
-
+ public record Commission(String commission, String progression) {
+ }
} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
index f91ed921..10e62d88 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/DwarvenHudConfigScreen.java
@@ -5,7 +5,6 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.RenderUtils;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text;
import java.awt.*;
@@ -15,8 +14,9 @@ public class DwarvenHudConfigScreen extends Screen {
private int hudX = SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.x;
private int hudY = SkyblockerConfig.get().locations.dwarvenMines.dwarvenHud.y;
- protected DwarvenHudConfigScreen(Text title) {
- super(title);
+
+ protected DwarvenHudConfigScreen() {
+ super(Text.of("Dwarven HUD Config"));
}
@Override
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java
index d8ad3a89..cc7b216c 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemFixerUpper.java
@@ -1,39 +1,45 @@
package me.xmrvizzy.skyblocker.skyblock.itemlist;
-import net.minecraft.item.Items;
-// import net.minecraft.registry.Registry;
-import net.minecraft.registry.Registries;
-import net.minecraft.util.Identifier;
import java.util.Map;
public class ItemFixerUpper {
- private final static Map<String, String> MAPPING = Map.ofEntries(
- Map.entry("minecraft:golden_rail", "minecraft:powered_rail"),
- Map.entry("minecraft:lit_pumpkin", "minecraft:jack_o_lantern"),
- Map.entry("minecraft:snow_layer", "minecraft:snow"),
- Map.entry("minecraft:hardened_clay", "minecraft:terracotta"),
- Map.entry("minecraft:speckled_melon", "minecraft:glistering_melon_slice"),
- Map.entry("minecraft:mob_spawner", "minecraft:spawner"),
- Map.entry("minecraft:brick_block", "minecraft:bricks"),
- Map.entry("minecraft:deadbush", "minecraft:dead_bush"),
- Map.entry("minecraft:slime", "minecraft:slime_block"),
- Map.entry("minecraft:melon_block", "minecraft:melon"),
- Map.entry("minecraft:reeds", "minecraft:sugar_cane"),
- Map.entry("minecraft:yellow_flower", "minecraft:dandelion"),
- Map.entry("minecraft:firework_charge", "minecraft:firework_star"),
- Map.entry("minecraft:noteblock", "minecraft:note_block"),
- Map.entry("minecraft:web", "minecraft:cobweb"),
- Map.entry("minecraft:fireworks", "minecraft:firework_rocket"),
- Map.entry("minecraft:netherbrick", "minecraft:nether_brick"),
- Map.entry("minecraft:stained_hardened_clay", "minecraft:terracotta"),
- Map.entry("minecraft:quartz_ore", "minecraft:nether_quartz_ore"),
- Map.entry("minecraft:tallgrass", "minecraft:grass"),
- Map.entry("minecraft:stone_slab2", "minecraft:red_sandstone_slab"),
- Map.entry("minecraft:waterlily", "minecraft:lily_pad"),
- Map.entry("minecraft:stone_stairs", "minecraft:cobblestone_stairs")
- );
+ private final static String[] ANVIL_VARIANTS = {
+ "minecraft:anvil",
+ "minecraft:chipped_anvil",
+ "minecraft:damaged_anvil"
+ };
+
+ private final static String[] COAL_VARIANTS = {
+ "minecraft:coal",
+ "minecraft:charcoal"
+ };
- private final static String[] DYE_COLORS = {
+ private final static String[] COBBLESTONE_WALL_VARIANTS = {
+ "minecraft:cobblestone_wall",
+ "minecraft:mossy_cobblestone_wall"
+ };
+
+ private final static String[] COOKED_FISH_VARIANTS = {
+ "minecraft:cooked_cod",
+ "minecraft:cooked_salmon"
+ };
+
+ private final static String[] DIRT_VARIANTS = {
+ "minecraft:dirt",
+ "minecraft:coarse_dirt",
+ "minecraft:podzol"
+ };
+
+ private final static String[] DOUBLE_PLANT_VARIANTS = {
+ "minecraft:sunflower",
+ "minecraft:lilac",
+ "minecraft:tall_grass",
+ "minecraft:large_fern",
+ "minecraft:rose_bush",
+ "minecraft:peony"
+ };
+
+ private final static String[] DYE_VARIANTS = {
"minecraft:ink_sac",
"minecraft:red_dye",
"minecraft:green_dye",
@@ -52,39 +58,55 @@ public class ItemFixerUpper {
"minecraft:bone_meal"
};
- private final static String[] BLOCK_COLORS = {
- "white_",
- "orange_",
- "magenta_",
- "light_blue_",
- "yellow_",
- "lime_",
- "pink_",
- "gray_",
- "light_gray_",
- "cyan_",
- "purple_",
- "blue_",
- "brown_",
- "green_",
- "red_",
- "black_"
- };
-
- private final static String[] TREE_VARIANTS = {