Add grid snapping to inventory buttons

This commit is contained in:
Linnea Gräf
2024-01-18 20:57:20 +01:00
parent e93dd76b0f
commit 7255bb6557
3 changed files with 15 additions and 3 deletions

View File

@@ -14,9 +14,12 @@ import me.shedaniel.math.Rectangle
import org.lwjgl.glfw.GLFW import org.lwjgl.glfw.GLFW
import net.minecraft.client.gui.DrawContext import net.minecraft.client.gui.DrawContext
import net.minecraft.client.gui.widget.ButtonWidget import net.minecraft.client.gui.widget.ButtonWidget
import net.minecraft.client.util.InputUtil
import net.minecraft.text.Text import net.minecraft.text.Text
import net.minecraft.util.math.MathHelper
import moe.nea.firmament.util.ClipboardUtils import moe.nea.firmament.util.ClipboardUtils
import moe.nea.firmament.util.FragmentGuiScreen import moe.nea.firmament.util.FragmentGuiScreen
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.MoulConfigUtils import moe.nea.firmament.util.MoulConfigUtils
class InventoryButtonEditor( class InventoryButtonEditor(
@@ -119,8 +122,12 @@ class InventoryButtonEditor(
val my = mouseY.toInt() val my = mouseY.toInt()
val anchorRight = mx > lastGuiRect.maxX val anchorRight = mx > lastGuiRect.maxX
val anchorBottom = my > lastGuiRect.maxY val anchorBottom = my > lastGuiRect.maxY
val offsetX = mx - if (anchorRight) lastGuiRect.maxX else lastGuiRect.minX var offsetX = mx - if (anchorRight) lastGuiRect.maxX else lastGuiRect.minX
val offsetY = my - if (anchorBottom) lastGuiRect.maxY else lastGuiRect.minY 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)) buttons.add(InventoryButton(offsetX, offsetY, anchorRight, anchorBottom, null, null))
return true return true
} }

View File

@@ -23,7 +23,11 @@ object InventoryButtons : FirmamentFeature {
override val identifier: String override val identifier: String
get() = "inventory-buttons" 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) object DConfig : DataHolder<Data>(serializer(), identifier, ::Data)
@Serializable @Serializable

View File

@@ -73,6 +73,7 @@
"firmament.inventory-buttons.load-preset": "Load Preset", "firmament.inventory-buttons.load-preset": "Load Preset",
"firmament.inventory-buttons.import-failed": "One of your buttons could only be imported partially", "firmament.inventory-buttons.import-failed": "One of your buttons could only be imported partially",
"firmament.config.inventory-buttons": "Inventory buttons", "firmament.config.inventory-buttons": "Inventory buttons",
"firmament.config.inventory-buttons.open-editor": "Open Editor",
"firmament.waypoint.temporary": "Temporary Waypoint: %s", "firmament.waypoint.temporary": "Temporary Waypoint: %s",
"firmament.config.waypoints": "Waypoints", "firmament.config.waypoints": "Waypoints",
"firmament.config.waypoints.temp-waypoint-duration": "Temporary Waypoint Duration", "firmament.config.waypoints.temp-waypoint-duration": "Temporary Waypoint Duration",