aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/mob/Mob.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMobManager.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/command/CopyNearbyEntitiesCommand.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt4
5 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/mob/Mob.kt b/src/main/java/at/hannibal2/skyhanni/data/mob/Mob.kt
index 765ad8a16..a486f9799 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/mob/Mob.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/mob/Mob.kt
@@ -110,7 +110,7 @@ class Mob(
fun isInRender() = baseEntity.distanceToPlayer() < MobData.ENTITY_RENDER_RANGE_IN_BLOCKS
- fun canBeSeen() = baseEntity.canBeSeen()
+ fun canBeSeen(viewDistance: Number = 150) = baseEntity.canBeSeen(viewDistance)
fun isInvisible() = baseEntity !is EntityZombie && baseEntity.isInvisible && baseEntity.inventory.isNullOrEmpty()
@@ -131,9 +131,9 @@ class Mob(
private fun internalHighlight() {
highlightColor?.let { color ->
- RenderLivingEntityHelper.setEntityColorWithNoHurtTime(baseEntity, color.rgb) { true }
+ RenderLivingEntityHelper.setEntityColorWithNoHurtTime(baseEntity, color.rgb) { !this.isInvisible() }
extraEntities.forEach {
- RenderLivingEntityHelper.setEntityColorWithNoHurtTime(it, color.rgb) { true }
+ RenderLivingEntityHelper.setEntityColorWithNoHurtTime(it, color.rgb) { !this.isInvisible() }
}
}
}
@@ -242,4 +242,5 @@ class Mob(
// TODO add max distance
fun lineToPlayer(color: Color, lineWidth: Int = 2, depth: Boolean = true) = LineToMobHandler.register(this, color, lineWidth, depth)
+ fun distanceToPlayer(): Double = baseEntity.distanceToPlayer()
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMobManager.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMobManager.kt
index 46450a564..d3f85c166 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMobManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonMobManager.kt
@@ -83,7 +83,7 @@ object DungeonMobManager {
fun onRenderWorld(event: LorenzRenderWorldEvent) {
if (!fel.highlight.get()) return
if (fel.line) {
- felOnTheGround.filter { it.canBeSeen() }.forEach {
+ felOnTheGround.filter { it.canBeSeen(30) }.forEach {
event.draw3DLine(
it.baseEntity.getLorenzVec().add(y = 0.15),
event.exactPlayerEyeLocation(),
diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/CopyNearbyEntitiesCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/command/CopyNearbyEntitiesCommand.kt
index f50d4cb45..443c4ff97 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/command/CopyNearbyEntitiesCommand.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/command/CopyNearbyEntitiesCommand.kt
@@ -74,6 +74,10 @@ object CopyNearbyEntitiesCommand {
val ridingEntity = entity.ridingEntity
resultList.add("ridingEntity: $ridingEntity")
+ if(entity.isInvisible) {
+ resultList.add("Invisible: true")
+ }
+
if (entity is EntityLivingBase) {
resultList.add("EntityLivingBase:")
val baseMaxHealth = entity.baseMaxHealth
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
index c5eb95fc8..d9153f565 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/EntityUtils.kt
@@ -191,7 +191,7 @@ object EntityUtils {
if (Minecraft.getMinecraft().isCallingFromMinecraftThread) it else it.toMutableList()
}?.asSequence()?.filterNotNull() ?: emptySequence()
- fun Entity.canBeSeen(radius: Double = 150.0) = getLorenzVec().up(0.5).canBeSeen(radius)
+ fun Entity.canBeSeen(viewDistance: Number = 150.0) = getLorenzVec().up(0.5).canBeSeen(viewDistance)
fun getEntityByID(entityId: Int) = Minecraft.getMinecraft()?.thePlayer?.entityWorld?.getEntityByID(entityId)
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
index d2394624c..9937708aa 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LocationUtils.kt
@@ -42,11 +42,11 @@ object LocationUtils {
fun AxisAlignedBB.isPlayerInside() = isInside(playerLocation())
- fun LorenzVec.canBeSeen(radius: Double = 150.0, offset: Double? = null): Boolean {
+ fun LorenzVec.canBeSeen(viewDistance: Number = 150.0, offset: Double? = null): Boolean {
val a = playerEyeLocation()
val b = this
val noBlocks = canSee(a, b, offset)
- val notTooFar = a.distance(b) < radius
+ val notTooFar = a.distance(b) < viewDistance.toDouble()
val inFov = true // TODO add Frustum "Frustum().isBoundingBoxInFrustum(entity.entityBoundingBox)"
return noBlocks && notTooFar && inFov
}