From fb5e963b915f192048f3939c58fb5bac404dae8e Mon Sep 17 00:00:00 2001 From: Lorenz Date: Wed, 17 Aug 2022 04:56:25 +0200 Subject: moving hasNameTagWith in separate utils class --- .../at/hannibal2/skyhanni/utils/EntityUtils.kt | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt new file mode 100644 index 000000000..acfcd86d4 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt @@ -0,0 +1,46 @@ +package at.hannibal2.skyhanni.utils + +import net.minecraft.entity.EntityLiving +import net.minecraft.entity.item.EntityArmorStand +import net.minecraft.util.AxisAlignedBB + +class EntityUtils { +} + +//TODO move into utils method +fun EntityLiving.hasNameTagWith( + y: Int, + contains: String, + debugRightEntity: Boolean = false, + inaccuracy: Double = 1.6, + debugWrongEntity: Boolean = false, +): Boolean { + return getNameTagWith(y, contains, debugRightEntity, inaccuracy, debugWrongEntity) != null +} + +fun EntityLiving.getNameTagWith( + y: Int, + contains: String, + debugRightEntity: Boolean = false, + inaccuracy: Double = 1.6, + debugWrongEntity: Boolean = false, +): EntityArmorStand? { + val center = getLorenzVec().add(0, y, 0) + val a = center.add(-inaccuracy, -inaccuracy - 3, -inaccuracy).toBlocPos() + val b = center.add(inaccuracy, inaccuracy + 3, inaccuracy).toBlocPos() + val alignedBB = AxisAlignedBB(a, b) + val clazz = EntityArmorStand::class.java + val found = worldObj.getEntitiesWithinAABB(clazz, alignedBB) + return found.find { + val result = it.name.contains(contains) + if (debugWrongEntity && !result) { + println("wrong entity in aabb: '" + it.name + "'") + } + if (debugRightEntity && result) { + println("mob: " + center.printWithAccuracy(2)) + println("nametag: " + it.getLorenzVec().printWithAccuracy(2)) + println("accuracy: " + it.getLorenzVec().subtract(center).printWithAccuracy(3)) + } + result + } +} \ No newline at end of file -- cgit