enh: Option to show Baritone path on Radar (#2170)

Co-authored-by: lv <~@l1v.in>
This commit is contained in:
scorbett123 2021-03-30 05:25:22 +01:00 committed by GitHub
parent 936df66e77
commit 8f74136c6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 1 deletions

View File

@ -1,9 +1,15 @@
package org.kamiblue.client.module.modules.client
import net.minecraft.util.math.BlockPos
import org.kamiblue.client.event.events.BaritoneSettingsInitEvent
import org.kamiblue.client.event.events.RenderRadarEvent
import org.kamiblue.client.module.Category
import org.kamiblue.client.module.Module
import org.kamiblue.client.util.BaritoneUtils
import org.kamiblue.client.util.color.ColorHolder
import org.kamiblue.client.util.graphics.RenderUtils2D
import org.kamiblue.client.util.math.Vec2d
import org.kamiblue.client.util.threads.safeListener
import org.kamiblue.event.listener.listener
/**
@ -16,10 +22,12 @@ internal object Baritone : Module(
showOnArray = false,
alwaysEnabled = true
) {
private val showOnRadar by setting("Show Path on Radar", true, description = "Show the current path on radar.")
private val color by setting("Path Color", ColorHolder(32, 250, 32), visibility = { showOnRadar })
private val allowBreak = setting("Allow Break", true)
private val allowSprint = setting("Allow Sprint", true)
private val allowPlace = setting("Allow Place", true)
val allowInventory = setting("Allow Inventory", false)
private val allowInventory = setting("Allow Inventory", false)
private val freeLook = setting("Free Look", true)
private val allowDownwardTunneling = setting("Downward Tunneling", true)
private val allowParkour = setting("Allow Parkour", true)
@ -38,6 +46,29 @@ internal object Baritone : Module(
listener<BaritoneSettingsInitEvent> {
sync()
}
safeListener<RenderRadarEvent> {
if (!showOnRadar || !BaritoneUtils.isPathing) return@safeListener
val path = BaritoneUtils.primary?.pathingBehavior?.path ?: return@safeListener
if (!path.isPresent) return@safeListener
val playerOffset = Vec2d(player.position.x.toDouble(), player.position.z.toDouble())
for (movement in path.get().movements()) {
val positionFrom = getPos(movement.src, playerOffset, it.scale)
val positionTo = getPos(movement.dest, playerOffset, it.scale)
if (positionFrom.length() < it.radius && positionTo.length() < it.radius) {
RenderUtils2D.drawLine(it.vertexHelper, positionFrom, positionTo, color = color, lineWidth = 3f)
}
}
}
}
private fun getPos(blockPos: BlockPos, playerOffset: Vec2d, scale: Float): Vec2d {
return Vec2d(blockPos.x.toDouble(), blockPos.z.toDouble()).minus(playerOffset).div(scale.toDouble())
}
private fun sync() {