diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-07-28 04:41:35 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-07-28 04:41:35 -0400 |
commit | 17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66 (patch) | |
tree | 2dc0828a14177688c6e65a040cf0414b54f730ae /src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | |
parent | 9bd911f8ba9685e5a04afba5d83ad0fa8dd24d36 (diff) | |
download | Skyblocker-17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66.tar.gz Skyblocker-17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66.tar.bz2 Skyblocker-17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66.zip |
Add Etherwarp Overlay
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java | 54 |
1 files changed, 54 insertions, 0 deletions
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(); + } + } + } + } + } +} |