diff options
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt')
-rw-r--r-- | src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt b/src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt index 53aca50..85756ee 100644 --- a/src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt +++ b/src/main/kotlin/com/dulkirfabric/hud/SpeedOverlay.kt @@ -2,23 +2,48 @@ package com.dulkirfabric.hud import com.dulkirfabric.DulkirModFabric.mc import com.dulkirfabric.config.DulkirConfig +import com.dulkirfabric.events.ClientTickEvent import com.dulkirfabric.events.HudRenderEvent import com.dulkirfabric.util.TablistUtils import meteordevelopment.orbit.EventHandler import moe.nea.jarvis.api.Point +import net.fabricmc.loader.impl.lib.sat4j.core.Vec +import net.minecraft.text.Style import net.minecraft.text.Text +import net.minecraft.util.math.Vec3d object SpeedOverlay { private val speedHud = DulkirConfig.hudElement("SpeedHud", Text.literal("Speed"), 24 + 4, 11, - Point(0.3669986675110943, 0.9857798862704453), 1.6367052f) + Point(0.028240898890913812, 0.9857798862704453), 1.6367052f) + private val bpsOverlay = DulkirConfig.hudElement("MovementHud", Text.literal("Speed (BPS)"), 69, 11, + Point(0.020240898890, 0.9857798862704453), 1.5052f) + + + private var tickMomentum = 0.0 @EventHandler fun onHudRender(event: HudRenderEvent) { val context = event.context val matrices = context.matrices - matrices.push() - speedHud.applyTransformations(matrices) - context.drawText(mc.textRenderer, Text.literal(TablistUtils.persistentInfo.speed),0, 1, -1, true) - matrices.pop() + if (DulkirConfig.configOptions.speedHud) { + matrices.push() + speedHud.applyTransformations(matrices) + context.drawText(mc.textRenderer, Text.literal(TablistUtils.persistentInfo.speed),0, 1, -1, true) + matrices.pop() + } + if (DulkirConfig.configOptions.speedBpsHud) { + matrices.push() + bpsOverlay.applyTransformations(matrices) + context.drawText(mc.textRenderer, Text.literal("${"%.2f".format(tickMomentum)} BPS (speed)"),0, 1, -1, true) + matrices.pop() + } + } + + @EventHandler + fun onTick(event: ClientTickEvent) { + val player = mc.player ?: return + val last = Vec3d(player.prevX, player.prevY, player.prevZ) + val now = player.pos ?: return + tickMomentum = last.distanceTo(now) * 20 } }
\ No newline at end of file |