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 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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user