1818package com.lambda.config.settings.complex
1919
2020import com.google.gson.reflect.TypeToken
21+ import com.lambda.Lambda.mc
2122import com.lambda.brigadier.argument.integer
2223import com.lambda.brigadier.argument.value
2324import com.lambda.brigadier.execute
@@ -26,7 +27,9 @@ import com.lambda.config.Setting
2627import com.lambda.config.SettingCore
2728import com.lambda.gui.dsl.ImGuiBuilder
2829import com.lambda.util.BlockUtils.blockPos
30+ import com.lambda.util.Communication.info
2931import com.lambda.util.extension.CommandBuilder
32+ import com.lambda.util.world.raycast.RayCastUtils.blockResult
3033import net.minecraft.command.CommandRegistryAccess
3134import net.minecraft.util.math.BlockPos
3235
@@ -38,10 +41,19 @@ class BlockPosSetting(defaultValue: BlockPos) : SettingCore<BlockPos>(
3841 TypeToken .get(BlockPos ::class.java).type
3942) {
4043 context(setting: Setting <* , BlockPos >)
41- override fun ImGuiBuilder.buildLayout () {
42- inputVec3i(setting.name, value) { value = it.blockPos }
43- lambdaTooltip(setting.description)
44- }
44+ override fun ImGuiBuilder.buildLayout () {
45+ button(" Set##${setting.name} " ) {
46+ mc.crosshairTarget?.blockResult?.blockPos?.let {
47+ value = it
48+ } ? : info(" No block under crosshair" )
49+ }
50+ lambdaTooltip(" Set the coordinates to the block you are currently looking at" )
51+ sameLine()
52+ treeNode(setting.name, id = setting.name) {
53+ inputVec3i(" ##${setting.name} " , value) { value = it.blockPos }
54+ }
55+ lambdaTooltip(setting.description)
56+ }
4557
4658 context(setting: Setting <* , BlockPos >)
4759 override fun CommandBuilder.buildCommand (registry : CommandRegistryAccess ) {
0 commit comments