From 17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 04:41:35 -0400 Subject: Add Etherwarp Overlay --- .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 1 + .../skyblocker/config/SkyblockerConfig.java | 1 + .../skyblocker/skyblock/EtherwarpOverlay.java | 54 ++++++++++++++++++++++ .../resources/assets/skyblocker/lang/en_us.json | 1 + 4 files changed, 57 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 0263f20c..50c60840 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -87,6 +87,7 @@ public class SkyblockerMod implements ClientModInitializer { TheRift.init(); TitleContainer.init(); OcclusionCulling.init(); + EtherwarpOverlay.init(); containerSolverManager.init(); scheduler.scheduleCyclic(Utils::update, 20); scheduler.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 100); diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index c965517a..6874f2ce 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -136,6 +136,7 @@ public class SkyblockerConfig implements ConfigData { public boolean acceptReparty = true; public boolean backpackPreviewWithoutShift = false; public boolean hideEmptyTooltips = true; + public boolean etherwarpOverlay = true; @ConfigEntry.Category("tabHud") @ConfigEntry.Gui.CollapsibleObject() diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java new file mode 100644 index 00000000..22048fcc --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -0,0 +1,54 @@ +package me.xmrvizzy.skyblocker.skyblock; + +import org.lwjgl.glfw.GLFW; + +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.block.Blocks; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.util.InputUtil; +import net.minecraft.item.ItemStack; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; + +public class EtherwarpOverlay { + private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); + private static final float[] COLOR_COMPONENTS = { 118f / 255f, 21f / 255f, 148f / 255f }; + + public static void init() { + WorldRenderEvents.AFTER_TRANSLUCENT.register(EtherwarpOverlay::renderEtherwarpOverlay); + } + + private static void renderEtherwarpOverlay(WorldRenderContext wrc) { + if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.etherwarpOverlay) { + ItemStack heldItem = CLIENT.player.getMainHandStack(); + String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); + + if (itemId != null && itemId.equals("ASPECT_OF_THE_VOID") && InputUtil.isKeyPressed(CLIENT.getWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT)) { + HitResult result = CLIENT.player.raycast(61, wrc.tickDelta(), false); + + if (result instanceof BlockHitResult blockHit) { + BlockPos pos = blockHit.getBlockPos(); + BlockState state = CLIENT.world.getBlockState(pos); + if (state.getBlock() != Blocks.AIR && CLIENT.world.getBlockState(pos.up()).getBlock() == Blocks.AIR && CLIENT.world.getBlockState(pos.up(2)).getBlock() == Blocks.AIR) { + 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/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 054d3162..736f5872 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -25,6 +25,7 @@ "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "Enable Superpairs Solver", "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "Enable Ultrasequencer Solver", "text.autoconfig.skyblocker.option.general.acceptReparty": "Auto accept Reparty", + "text.autoconfig.skyblocker.option.general.etherwarpOverlay": "Etherwarp Overlay", "text.autoconfig.skyblocker.option.general.fishing": "Fishing Helper", "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Enable Fishing Helper", "text.autoconfig.skyblocker.option.general.fairySouls": "Fairy Souls Helper", -- cgit From 96951b64b95cb03815df2e28bb45ceebad1d949d Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 19:37:38 -0400 Subject: AOTE Compatibility + Etherwarp check --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index 22048fcc..16845769 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -15,6 +15,7 @@ import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.util.InputUtil; 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; @@ -31,8 +32,9 @@ public class EtherwarpOverlay { if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.etherwarpOverlay) { ItemStack heldItem = CLIENT.player.getMainHandStack(); String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); + NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && itemId.equals("ASPECT_OF_THE_VOID") && InputUtil.isKeyPressed(CLIENT.getWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT)) { + if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && InputUtil.isKeyPressed(CLIENT.getWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT)) { HitResult result = CLIENT.player.raycast(61, wrc.tickDelta(), false); if (result instanceof BlockHitResult blockHit) { -- cgit From 45ffaf83e87998bb38b9bb880eb131cee53f15f9 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 19:55:35 -0400 Subject: Check sneak key --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index 16845769..6f7fadbf 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -1,7 +1,5 @@ package me.xmrvizzy.skyblocker.skyblock; -import org.lwjgl.glfw.GLFW; - import com.mojang.blaze3d.systems.RenderSystem; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; @@ -13,7 +11,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.util.InputUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.util.hit.BlockHitResult; @@ -34,7 +31,7 @@ public class EtherwarpOverlay { String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && InputUtil.isKeyPressed(CLIENT.getWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT)) { + if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && CLIENT.options.sneakKey.isPressed()) { HitResult result = CLIENT.player.raycast(61, wrc.tickDelta(), false); if (result instanceof BlockHitResult blockHit) { -- cgit From 56c9e620fb05fabdffdb653709f12c095475b7da Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:00:07 -0400 Subject: Check range --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index 6f7fadbf..f92be63f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -32,7 +32,8 @@ public class EtherwarpOverlay { NbtCompound nbt = heldItem.getNbt(); if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && CLIENT.options.sneakKey.isPressed()) { - HitResult result = CLIENT.player.raycast(61, wrc.tickDelta(), false); + int range = (nbt != null && nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; + HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); if (result instanceof BlockHitResult blockHit) { BlockPos pos = blockHit.getBlockPos(); -- cgit From bc0c2321c09cf234e143f112857a3cf86792125a Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:04:36 -0400 Subject: Etherwarp Conduit --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index f92be63f..0a425229 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -31,7 +31,7 @@ public class EtherwarpOverlay { String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && CLIENT.options.sneakKey.isPressed()) { + if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && CLIENT.options.sneakKey.isPressed()) { int range = (nbt != null && nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); -- cgit From 233323cfba664d16acd82ae18c84af0cc02be485 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:12:37 -0400 Subject: more changes this is making me sad ;( --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index 0a425229..02480513 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -31,8 +31,8 @@ public class EtherwarpOverlay { String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && CLIENT.options.sneakKey.isPressed()) { - int range = (nbt != null && nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; + if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && (CLIENT.options.sneakKey.isPressed() || itemId.equals("ETHERWARP_CONDUIT"))) { + int range = (nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); if (result instanceof BlockHitResult blockHit) { -- cgit From bb227f5d7774ca3f1a8c0cff5848226418bd860e Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:15:24 -0400 Subject: goodbye null check --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index 02480513..a083a580 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -31,7 +31,7 @@ public class EtherwarpOverlay { String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && (nbt != null && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1) && (CLIENT.options.sneakKey.isPressed() || itemId.equals("ETHERWARP_CONDUIT"))) { + if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1 && (CLIENT.options.sneakKey.isPressed() || itemId.equals("ETHERWARP_CONDUIT"))) { int range = (nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); -- cgit From cc3d2b7474ddf7ea1be5bb2693f4e300a2457ee2 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:24:47 -0400 Subject: incase people cannot affork 200k --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index a083a580..aacb794b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -32,7 +32,7 @@ public class EtherwarpOverlay { NbtCompound nbt = heldItem.getNbt(); if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1 && (CLIENT.options.sneakKey.isPressed() || itemId.equals("ETHERWARP_CONDUIT"))) { - int range = (nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 61; + int range = (nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 57; HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); if (result instanceof BlockHitResult blockHit) { -- cgit From 5e693573457ab26d01229c0ba9db179aab9c1712 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:36:27 -0400 Subject: Cleaner if statement --- src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java index aacb794b..005b3d64 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -31,7 +31,7 @@ public class EtherwarpOverlay { String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); NbtCompound nbt = heldItem.getNbt(); - if (itemId != null && (itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END") || itemId.equals("ETHERWARP_CONDUIT")) && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1 && (CLIENT.options.sneakKey.isPressed() || itemId.equals("ETHERWARP_CONDUIT"))) { + if (itemId != null && (((itemId.equals("ASPECT_OF_THE_VOID") || itemId.equals("ASPECT_OF_THE_END")) && nbt.getCompound("ExtraAttributes").getInt("ethermerge") == 1 && CLIENT.options.sneakKey.isPressed()) || itemId.equals("ETHERWARP_CONDUIT"))) { int range = (nbt.getCompound("ExtraAttributes").contains("tuned_transmission")) ? 57 + nbt.getCompound("ExtraAttributes").getInt("tuned_transmission") : 57; HitResult result = CLIENT.player.raycast(range, wrc.tickDelta(), false); -- cgit