Add grid snapping to inventory buttons
This commit is contained in:
@@ -14,9 +14,12 @@ import me.shedaniel.math.Rectangle
|
||||
import org.lwjgl.glfw.GLFW
|
||||
import net.minecraft.client.gui.DrawContext
|
||||
import net.minecraft.client.gui.widget.ButtonWidget
|
||||
import net.minecraft.client.util.InputUtil
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.math.MathHelper
|
||||
import moe.nea.firmament.util.ClipboardUtils
|
||||
import moe.nea.firmament.util.FragmentGuiScreen
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.MoulConfigUtils
|
||||
|
||||
class InventoryButtonEditor(
|
||||
@@ -119,8 +122,12 @@ class InventoryButtonEditor(
|
||||
val my = mouseY.toInt()
|
||||
val anchorRight = mx > lastGuiRect.maxX
|
||||
val anchorBottom = my > lastGuiRect.maxY
|
||||
val offsetX = mx - if (anchorRight) lastGuiRect.maxX else lastGuiRect.minX
|
||||
val offsetY = my - if (anchorBottom) lastGuiRect.maxY else lastGuiRect.minY
|
||||
var offsetX = mx - if (anchorRight) lastGuiRect.maxX else lastGuiRect.minX
|
||||
var offsetY = my - if (anchorBottom) lastGuiRect.maxY else lastGuiRect.minY
|
||||
if (InputUtil.isKeyPressed(MC.window.handle, InputUtil.GLFW_KEY_LEFT_SHIFT)) {
|
||||
offsetX = MathHelper.floor(offsetX / 20F) * 20
|
||||
offsetY = MathHelper.floor(offsetY / 20F) * 20
|
||||
}
|
||||
buttons.add(InventoryButton(offsetX, offsetY, anchorRight, anchorBottom, null, null))
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -23,7 +23,11 @@ object InventoryButtons : FirmamentFeature {
|
||||
override val identifier: String
|
||||
get() = "inventory-buttons"
|
||||
|
||||
object TConfig : ManagedConfig(identifier) {}
|
||||
object TConfig : ManagedConfig(identifier) {
|
||||
val _openEditor by button("open-editor") {
|
||||
openEditor()
|
||||
}
|
||||
}
|
||||
object DConfig : DataHolder<Data>(serializer(), identifier, ::Data)
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"firmament.inventory-buttons.load-preset": "Load Preset",
|
||||
"firmament.inventory-buttons.import-failed": "One of your buttons could only be imported partially",
|
||||
"firmament.config.inventory-buttons": "Inventory buttons",
|
||||
"firmament.config.inventory-buttons.open-editor": "Open Editor",
|
||||
"firmament.waypoint.temporary": "Temporary Waypoint: %s",
|
||||
"firmament.config.waypoints": "Waypoints",
|
||||
"firmament.config.waypoints.temp-waypoint-duration": "Temporary Waypoint Duration",
|
||||
|
||||
Reference in New Issue
Block a user