diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-09 04:18:07 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-09 04:18:07 +0200 |
| commit | a193bdca479ae7531da6f034c597335918b52699 (patch) | |
| tree | bf8d56f262842d243a2628befc3360801edda8a5 /src/main/java/at/lorenz/mod/utils | |
| parent | f842a84e3aae31e5fe84b52f23550efca526f6aa (diff) | |
| download | skyhanni-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.kt | 5 | ||||
| -rw-r--r-- | src/main/java/at/lorenz/mod/utils/RenderUtils.kt | 43 |
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 |
