aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock
diff options
context:
space:
mode:
authorakarahdev <endisticbutitsforgit@gmail.com>2024-01-18 08:29:01 -0500
committerakarahdev <endisticbutitsforgit@gmail.com>2024-01-22 20:18:14 -0500
commit65dd269c266650724c392b121855f87cdf4dbe2b (patch)
tree95c0dc755b26afb84913cf4446dbb56f1044185d /src/main/java/de/hysky/skyblocker/skyblock
parent2812c97e3741121dbf89ec14dd76a3ff5532cd06 (diff)
downloadSkyblocker-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.java51
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java40
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;