aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasin <LifeIsAParadox@users.noreply.github.com>2023-07-29 02:56:04 +0200
committerGitHub <noreply@github.com>2023-07-29 02:56:04 +0200
commitdc29e0b6069dbcf1c89f3dfe8b6e5b16938763a6 (patch)
tree571fd89fdff6f92f09fc66293c4289458ab38a76
parent43b38ed3c76ef48910d1da36299e00f3de21bf28 (diff)
parent5e693573457ab26d01229c0ba9db179aab9c1712 (diff)
downloadSkyblocker-dc29e0b6069dbcf1c89f3dfe8b6e5b16938763a6.tar.gz
Skyblocker-dc29e0b6069dbcf1c89f3dfe8b6e5b16938763a6.tar.bz2
Skyblocker-dc29e0b6069dbcf1c89f3dfe8b6e5b16938763a6.zip
Merge pull request #214 from AzureAaron/aotv-overlay
Add Etherwarp Overlay
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java1
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java1
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java54
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json1
4 files changed, 57 insertions, 0 deletions
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..005b3d64
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java
@@ -0,0 +1,54 @@
+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.block.Blocks;
+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 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);
+ NbtCompound nbt = heldItem.getNbt();
+
+ 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);
+
+ 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",