aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorLorenz <lo.scherf@gmail.com>2022-08-17 04:56:25 +0200
committerLorenz <lo.scherf@gmail.com>2022-08-17 04:56:25 +0200
commit1b404a08e3831f4b09c06ce1a54e14ce59f2277a (patch)
treed466db05f620241fee783fcb51b45e8662910f1d /src/main/java/at/hannibal2/skyhanni/utils
parentf8264646f0554ebd010f06366686f53231483fd4 (diff)
downloadSkyHanni-1b404a08e3831f4b09c06ce1a54e14ce59f2277a.tar.gz
SkyHanni-1b404a08e3831f4b09c06ce1a54e14ce59f2277a.tar.bz2
SkyHanni-1b404a08e3831f4b09c06ce1a54e14ce59f2277a.zip
moving hasNameTagWith in separate utils class
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt46
1 files changed, 46 insertions, 0 deletions
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