diff options
author | akarahdev <endisticbutitsforgit@gmail.com> | 2024-01-18 09:09:30 -0500 |
---|---|---|
committer | akarahdev <endisticbutitsforgit@gmail.com> | 2024-01-22 20:18:14 -0500 |
commit | ba5b8b0265eb1db1251dc80692c091616956a5fa (patch) | |
tree | 3d0f17bc12e7d5fc7431039e319d8207d2776ae1 /src/main | |
parent | 65dd269c266650724c392b121855f87cdf4dbe2b (diff) | |
download | Skyblocker-ba5b8b0265eb1db1251dc80692c091616956a5fa.tar.gz Skyblocker-ba5b8b0265eb1db1251dc80692c091616956a5fa.tar.bz2 Skyblocker-ba5b8b0265eb1db1251dc80692c091616956a5fa.zip |
add beacon highlighting and nukekubi highlights
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/SkyblockerMod.java | 2 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java | 41 |
2 files changed, 28 insertions, 15 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java index 83f41c0b..905478ce 100644 --- a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java +++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java @@ -14,6 +14,7 @@ import de.hysky.skyblocker.skyblock.dungeon.puzzle.waterboard.Waterboard; import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager; import de.hysky.skyblocker.skyblock.dungeon.secrets.SecretsTracker; import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud; +import de.hysky.skyblocker.skyblock.endermanslayer.BeaconHighlighter; import de.hysky.skyblocker.skyblock.item.*; import de.hysky.skyblocker.skyblock.item.tooltip.BackpackPreview; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; @@ -135,6 +136,7 @@ public class SkyblockerMod implements ClientModInitializer { RenderHelper.init(); containerSolverManager.init(); statusBarTracker.init(); + BeaconHighlighter.init(); Scheduler.INSTANCE.scheduleCyclic(Utils::update, 20); Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 200); Scheduler.INSTANCE.scheduleCyclic(LividColor::update, 10); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java b/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java index 2dc64aff..44e86966 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java @@ -1,43 +1,54 @@ package de.hysky.skyblocker.skyblock.endermanslayer; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.entity.MobGlow; import de.hysky.skyblocker.utils.Tickable; import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.render.Renderable; +import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.minecraft.block.Block; +import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtString; import net.minecraft.util.math.BlockPos; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class BeaconHighlighter { + static BlockPos pos = null; + + public static void init() { + WorldRenderEvents.AFTER_TRANSLUCENT.register(BeaconHighlighter::render); + Scheduler.INSTANCE.scheduleCyclic(BeaconHighlighter::update, 20); + } + + public static void update() { + Logger logger = LoggerFactory.getLogger(BeaconHighlighter.class); -public class BeaconHighlighter implements Tickable, Renderable { - BlockPos pos = null; - @Override - public void tick(MinecraftClient client) { var player = MinecraftClient.getInstance().player; var world = MinecraftClient.getInstance().world; pos = null; - if(player != null && world != null) { - for(int x = (int) (player.getX()-20); x<player.getX()+20; x++) { - for(int z = (int) (player.getX()-20); z<player.getX()+20; z++) { - for(int y = (int) (player.getY()-10); y<player.getY()+10; y++) { + if(player != null && world != null && + SkyblockerConfigManager.get().slayer.endermanSlayer.highlightBeacons) { + for(int x = (player.getBlockPos().getX()-15); x<player.getBlockPos().getX()+15; x++) { + for(int z = (player.getBlockPos().getZ()-15); z<player.getBlockPos().getZ()+15; z++) { + for(int y = (player.getBlockPos().getY()-3); y<player.getBlockPos().getY()+7; y++) { var state = world.getBlockState(new BlockPos(x, y, z)); - var item = ItemStack.fromNbt((NbtCompound) new NbtCompound() - .put("id", NbtString.of("minecraft:beacon"))); - if(state.isOf(Block.getBlockFromItem(item.getItem()))) { + if(state.toString().contains("minecraft:beacon")) { pos = new BlockPos(x, y, z); - } } } } } - } - @Override - public void render(WorldRenderContext context) { + public static void render(WorldRenderContext context) { + Logger logger = LoggerFactory.getLogger(BeaconHighlighter.class); if(pos != null) { RenderHelper.renderFilled( context, |