summaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/utils
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-09 04:18:07 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-09 04:18:07 +0200
commita193bdca479ae7531da6f034c597335918b52699 (patch)
treebf8d56f262842d243a2628befc3360801edda8a5 /src/main/java/at/lorenz/mod/utils
parentf842a84e3aae31e5fe84b52f23550efca526f6aa (diff)
downloadskyhanni-a193bdca479ae7531da6f034c597335918b52699.tar.gz
skyhanni-a193bdca479ae7531da6f034c597335918b52699.tar.bz2
skyhanni-a193bdca479ae7531da6f034c597335918b52699.zip
added dungeon boss damage indicator
Diffstat (limited to 'src/main/java/at/lorenz/mod/utils')
-rw-r--r--src/main/java/at/lorenz/mod/utils/LorenzUtils.kt5
-rw-r--r--src/main/java/at/lorenz/mod/utils/RenderUtils.kt43
2 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt b/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt
index 2295fa513..b36fbb94e 100644
--- a/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt
+++ b/src/main/java/at/lorenz/mod/utils/LorenzUtils.kt
@@ -2,6 +2,8 @@ package at.lorenz.mod.utils
import at.lorenz.mod.misc.HypixelData
import net.minecraft.client.Minecraft
+import net.minecraft.entity.EntityLivingBase
+import net.minecraft.entity.SharedMonsterAttributes
import net.minecraft.util.ChatComponentText
import org.intellij.lang.annotations.Language
import java.text.SimpleDateFormat
@@ -109,4 +111,7 @@ object LorenzUtils {
}
fun String.between(start: String, end: String): String = this.split(start, end)[1]
+
+ val EntityLivingBase.baseMaxHealth: Double
+ get() = this.getEntityAttribute(SharedMonsterAttributes.maxHealth).baseValue
} \ No newline at end of file
diff --git a/src/main/java/at/lorenz/mod/utils/RenderUtils.kt b/src/main/java/at/lorenz/mod/utils/RenderUtils.kt
index 17532c613..7acd5b42b 100644
--- a/src/main/java/at/lorenz/mod/utils/RenderUtils.kt
+++ b/src/main/java/at/lorenz/mod/utils/RenderUtils.kt
@@ -9,6 +9,7 @@ import net.minecraft.inventory.Slot
import net.minecraft.util.AxisAlignedBB
import net.minecraft.util.MathHelper
import net.minecraft.util.ResourceLocation
+import net.minecraft.util.Vec3
import net.minecraftforge.client.event.RenderWorldLastEvent
import org.lwjgl.opengl.GL11
import java.awt.Color
@@ -309,4 +310,46 @@ object RenderUtils {
GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f)
GlStateManager.popMatrix()
}
+
+ /**
+ * @author Mojang
+ */
+ fun drawLabel(
+ pos: Vec3,
+ text: String,
+ color: Color,
+ partialTicks: Float,
+ shadow: Boolean = false,
+ scale: Float = 1f
+ ) {
+ var mc = Minecraft.getMinecraft()
+ val player = mc.thePlayer
+ val x =
+ pos.xCoord - player.lastTickPosX + (pos.xCoord - player.posX - (pos.xCoord - player.lastTickPosX)) * partialTicks
+ val y =
+ pos.yCoord - player.lastTickPosY + (pos.yCoord - player.posY - (pos.yCoord - player.lastTickPosY)) * partialTicks
+ val z =
+ pos.zCoord - player.lastTickPosZ + (pos.zCoord - player.posZ - (pos.zCoord - player.lastTickPosZ)) * partialTicks
+ val renderManager = mc.renderManager
+ val f1 = 0.0266666688
+ val width = mc.fontRendererObj.getStringWidth(text) / 2
+ GlStateManager.pushMatrix()
+ GlStateManager.translate(x, y, z)
+ GL11.glNormal3f(0f, 1f, 0f)
+ GlStateManager.rotate(-renderManager.playerViewY, 0f, 1f, 0f)
+ GlStateManager.rotate(renderManager.playerViewX, 1f, 0f, 0f)
+ GlStateManager.scale(-f1, -f1, -f1)
+ GlStateManager.scale(scale, scale, scale)
+ GlStateManager.enableBlend()
+ GlStateManager.disableLighting()
+ GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0)
+ GlStateManager.enableTexture2D()
+ mc.fontRendererObj.drawString(text, (-width).toFloat(), 0f, color.rgb, shadow)
+ GlStateManager.disableBlend()
+ GlStateManager.popMatrix()
+ }
+
+ fun interpolate(currentValue: Double, lastValue: Double, multiplier: Float): Double {
+ return lastValue + (currentValue - lastValue) * multiplier
+ }
} \ No newline at end of file