Skip to content

Commit c400e1f

Browse files
authored
improve BlockPosSetting imgui implementation (#262)
1 parent 1448670 commit c400e1f

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

src/main/kotlin/com/lambda/config/settings/complex/BlockPosSetting.kt

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.lambda.config.settings.complex
1919

2020
import com.google.gson.reflect.TypeToken
21+
import com.lambda.Lambda.mc
2122
import com.lambda.brigadier.argument.integer
2223
import com.lambda.brigadier.argument.value
2324
import com.lambda.brigadier.execute
@@ -26,7 +27,9 @@ import com.lambda.config.Setting
2627
import com.lambda.config.SettingCore
2728
import com.lambda.gui.dsl.ImGuiBuilder
2829
import com.lambda.util.BlockUtils.blockPos
30+
import com.lambda.util.Communication.info
2931
import com.lambda.util.extension.CommandBuilder
32+
import com.lambda.util.world.raycast.RayCastUtils.blockResult
3033
import net.minecraft.command.CommandRegistryAccess
3134
import 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

Comments
 (0)