summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/damageindicator
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/damageindicator')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt36
-rw-r--r--src/main/java/at/hannibal2/skyhanni/damageindicator/EntityData.kt4
2 files changed, 18 insertions, 22 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt b/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt
index e5b6d1b28..0841984d3 100644
--- a/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt
+++ b/src/main/java/at/hannibal2/skyhanni/damageindicator/BossDamageIndicator.kt
@@ -17,7 +17,6 @@ import net.minecraft.entity.monster.EntityEnderman
import net.minecraft.entity.monster.EntityMagmaCube
import net.minecraft.entity.monster.EntityZombie
import net.minecraft.entity.passive.EntityWolf
-import net.minecraft.util.Vec3
import net.minecraftforge.client.event.RenderWorldLastEvent
import net.minecraftforge.event.entity.EntityJoinWorldEvent
import net.minecraftforge.event.world.WorldEvent
@@ -78,20 +77,21 @@ class BossDamageIndicator {
}
val partialTicks = event.partialTicks
- val pos = Vec3(
- RenderUtils.interpolate(entity.posX, entity.lastTickPosX, partialTicks),
- RenderUtils.interpolate(entity.posY, entity.lastTickPosY, partialTicks) + 0.5f,
- RenderUtils.interpolate(entity.posZ, entity.lastTickPosZ, partialTicks)
- )
- if (!data.healthLineHidden) {
- RenderUtils.drawLabel(
- pos,
- healthText,
- partialTicks,
- true,
- 6f
+ val location = if (data.dead && data.deathLocation != null) {
+ data.deathLocation!!
+ } else {
+ val loc = LorenzVec(
+ RenderUtils.interpolate(entity.posX, entity.lastTickPosX, partialTicks),
+ RenderUtils.interpolate(entity.posY, entity.lastTickPosY, partialTicks) + 0.5f,
+ RenderUtils.interpolate(entity.posZ, entity.lastTickPosZ, partialTicks)
)
+ if (data.dead) data.deathLocation = loc
+ loc
+ }
+
+ if (!data.healthLineHidden) {
+ RenderUtils.drawLabel(location, healthText, partialTicks, true, 6f)
}
var bossName = when (SkyHanniMod.feature.misc.damageIndicatorBossName) {
@@ -108,14 +108,7 @@ class BossDamageIndicator {
bossName += data.nameSuffix
}
- RenderUtils.drawLabel(
- pos,
- bossName,
- partialTicks,
- true,
- 3.9f,
- -9.0f
- )
+ RenderUtils.drawLabel(location, bossName, partialTicks, true, 3.9f, -9.0f)
}
GlStateManager.enableDepth()
GlStateManager.enableCull()
@@ -416,6 +409,7 @@ class BossDamageIndicator {
else -> bossType.fullName
}
+ //TODO fix rounding error (25+4=30)
println(bossName + " §healed for $healed❤ ($lastHealth -> $health)")
LorenzUtils.chat("$bossName §ehealed for §a$healedFormat❤ §8(§e$formatLastHealth -> $formatHealth§8)")
}
diff --git a/src/main/java/at/hannibal2/skyhanni/damageindicator/EntityData.kt b/src/main/java/at/hannibal2/skyhanni/damageindicator/EntityData.kt
index fd44bfb02..2f2738095 100644
--- a/src/main/java/at/hannibal2/skyhanni/damageindicator/EntityData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/damageindicator/EntityData.kt
@@ -1,5 +1,6 @@
package at.hannibal2.skyhanni.damageindicator
+import at.hannibal2.skyhanni.utils.LorenzVec
import net.minecraft.entity.EntityLivingBase
class EntityData(
@@ -15,5 +16,6 @@ class EntityData(
var healthLineHidden: Boolean = false,
var namePrefix: String = "",
var nameSuffix: String = "",
- var dead: Boolean = false
+ var dead: Boolean = false,
+ var deathLocation: LorenzVec? = null
) \ No newline at end of file