diff options
| author | akarahdev <endisticbutitsforgit@gmail.com> | 2024-01-18 08:29:01 -0500 |
|---|---|---|
| committer | akarahdev <endisticbutitsforgit@gmail.com> | 2024-01-22 20:18:14 -0500 |
| commit | 65dd269c266650724c392b121855f87cdf4dbe2b (patch) | |
| tree | 95c0dc755b26afb84913cf4446dbb56f1044185d /src/main/java/de/hysky/skyblocker/skyblock | |
| parent | 2812c97e3741121dbf89ec14dd76a3ff5532cd06 (diff) | |
| download | Skyblocker-65dd269c266650724c392b121855f87cdf4dbe2b.tar.gz Skyblocker-65dd269c266650724c392b121855f87cdf4dbe2b.tar.bz2 Skyblocker-65dd269c266650724c392b121855f87cdf4dbe2b.zip | |
test
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java | 51 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java | 40 |
2 files changed, 91 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java b/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java new file mode 100644 index 00000000..2dc64aff --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/endermanslayer/BeaconHighlighter.java @@ -0,0 +1,51 @@ +package de.hysky.skyblocker.skyblock.endermanslayer; + +import de.hysky.skyblocker.utils.Tickable; +import de.hysky.skyblocker.utils.render.RenderHelper; +import de.hysky.skyblocker.utils.render.Renderable; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.minecraft.block.Block; +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; + +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++) { + 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()))) { + pos = new BlockPos(x, y, z); + + } + } + } + } + } + + } + + @Override + public void render(WorldRenderContext context) { + if(pos != null) { + RenderHelper.renderFilled( + context, + pos, + new float[]{1.0f, 0.0f, 0.0f}, + 0.5f, + true + ); + } + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index fa9f6e4f..fdaa0d6c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -2,18 +2,25 @@ package de.hysky.skyblocker.skyblock.entity; import java.util.List; +import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.dungeon.LividColor; +import de.hysky.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe; +import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; import net.minecraft.entity.Entity; import net.minecraft.entity.decoration.ArmorStandEntity; import net.minecraft.entity.passive.BatEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.nbt.NbtElement; import net.minecraft.predicate.entity.EntityPredicates; import net.minecraft.util.Formatting; import net.minecraft.util.math.Box; import net.minecraft.world.World; +import org.apache.logging.log4j.LogManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class MobGlow { public static boolean shouldMobGlow(Entity entity) { @@ -54,6 +61,39 @@ public class MobGlow { } } } + + + + } + + // Enderman Slayer + // Nukekubi Heads + Logger logger = LoggerFactory.getLogger(MobGlow.class); + if(entity instanceof ArmorStandEntity) { + for (net.minecraft.item.ItemStack it : entity.getArmorItems()) { + if(!it.toString().startsWith("1 player_head")) + continue; + + + if (it.hasNbt()) { + assert it.getNbt() != null; + // eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3 is texture id + // for the nukekubi head, compare against it to exclusively find + // armorstands that are nukekubi heads + if (it.getNbt().contains("SkullOwner")) { + var texture = it + .getNbt() + .getCompound("SkullOwner") + .getCompound("Properties") + .getList("textures", NbtElement.COMPOUND_TYPE) + .getCompound(0) + .getString("Value"); + return SkyblockerConfigManager.get().slayer.endermanSlayer.highlightNukekubiHeads + && texture.contains("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0="); + + } + } + } } return false; |
