diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt | 9 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt | 40 |
2 files changed, 42 insertions, 7 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt index 1388c076a..5d5c03c4d 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzVec.kt @@ -4,10 +4,7 @@ import net.minecraft.entity.Entity import net.minecraft.util.BlockPos import net.minecraft.util.Rotations import net.minecraft.util.Vec3 -import kotlin.math.cos -import kotlin.math.pow -import kotlin.math.round -import kotlin.math.sin +import kotlin.math.* data class LorenzVec( val x: Double, @@ -68,6 +65,10 @@ data class LorenzVec( return "$x $y $z" } + fun length(): Double { + return sqrt(x * x + y * y + z * z) + } + companion object { fun getFromYawPitch(yaw: Double, pitch: Double): LorenzVec { val yaw: Double = (yaw + 90) * Math.PI / 180 diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt index 71b47f23a..92febf7b6 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt @@ -327,6 +327,7 @@ object RenderUtils { shadow: Boolean = false, scale: Float = 1f, yOff: Float = 0f, + debug: Boolean = false, ) { val minecraft = Minecraft.getMinecraft() val player = minecraft.thePlayer @@ -336,8 +337,35 @@ object RenderUtils { pos.y - player.lastTickPosY + (pos.y - player.posY - (pos.y - player.lastTickPosY)) * partialTicks val z = pos.z - player.lastTickPosZ + (pos.z - player.posZ - (pos.z - player.lastTickPosZ)) * partialTicks + + + //7 - 25 + + val translate = LorenzVec(x, y, z) + val length = translate.length().toFloat() + + var finalText = text + var factor = 1f + var finalScale = scale + if (debug) { +// if (tick++ % 60 == 0) { + finalText = "$text ${length.toInt()}" +// println("translate: $length") +// } + if (length < 8) { + factor = 8 / length +// translate = translate.multiply(8 / length) + } + if (length > 15) { + factor = 15 / length +// translate = translate.multiply(15 / length) + } +// val finalScale = scale * (1 / factor) + finalScale = scale * sqrt(factor.toDouble()).toFloat() + } + val f1 = 0.0266666688 - val width = minecraft.fontRendererObj.getStringWidth(text) / 2 + val width = minecraft.fontRendererObj.getStringWidth(finalText) / 2 GlStateManager.pushMatrix() GlStateManager.translate(x, y, z) GL11.glNormal3f(0f, 1f, 0f) @@ -345,12 +373,18 @@ object RenderUtils { 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.scale(scale, scale, scale) + GlStateManager.scale(finalScale, finalScale, finalScale) +// GlStateManager.scale(finalScale, finalScale, finalScale) GlStateManager.enableBlend() GlStateManager.disableLighting() GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) GlStateManager.enableTexture2D() - minecraft.fontRendererObj.drawString(text, (-width).toFloat(), yOff, LorenzColor.WHITE.toColor().rgb, shadow) + minecraft.fontRendererObj.drawString(finalText, + (-width).toFloat(), + yOff, + LorenzColor.WHITE.toColor().rgb, + shadow) GlStateManager.disableBlend() GlStateManager.popMatrix() } |