aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
index 6af83a805..b9a4c4bcb 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
@@ -1,8 +1,10 @@
package at.hannibal2.skyhanni.utils
import at.hannibal2.skyhanni.utils.ItemUtils.getSkullTexture
+import at.hannibal2.skyhanni.utils.LocationUtils.distanceTo
import at.hannibal2.skyhanni.utils.LorenzUtils.baseMaxHealth
import net.minecraft.client.multiplayer.WorldClient
+import net.minecraft.entity.Entity
import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.item.EntityArmorStand
import net.minecraft.entity.monster.EntityBlaze
@@ -123,6 +125,14 @@ object EntityUtils {
?.value
}
+ inline fun <reified T : Entity> WorldClient.getEntitiesNextToPlayer(radius: Double): List<T> =
+ getEntitiesNearby(LocationUtils.playerLocation(), radius)
+
+ inline fun <reified T : Entity> WorldClient.getEntitiesNearby(location: LorenzVec, radius: Double): List<T> =
+ getLoadedEntityList().filterIsInstance<T>().filter { it.distanceTo(location) < radius }
+
+ fun EntityLivingBase.isAtFullHealth() = baseMaxHealth == health.toInt()
+
fun WorldClient.getEntitiesNearby(
clazz: Class<EntityBlaze>,
location: LorenzVec,
@@ -140,5 +150,6 @@ object EntityUtils {
fun EntityLivingBase.hasPotionEffect(potion: Potion) = getActivePotionEffect(potion) != null
- fun EntityLivingBase.getArmorInventory(): Array<ItemStack?>? = if (this is EntityPlayer) inventory.armorInventory else null
+ fun EntityLivingBase.getArmorInventory(): Array<ItemStack?>? =
+ if (this is EntityPlayer) inventory.armorInventory else null
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
index bf7a0f1ee..1c1bd5b1b 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
@@ -16,6 +16,8 @@ object LocationUtils {
fun Entity.distanceToPlayer() = getLorenzVec().distance(playerLocation())
+ fun Entity.distanceTo(location: LorenzVec) = getLorenzVec().distance(location)
+
fun playerEyeLocation(): LorenzVec {
val player = Minecraft.getMinecraft().thePlayer
val vec = player.getLorenzVec()