Add chat peeking keybinding
This commit is contained in:
@@ -20,6 +20,7 @@ object Fixes : FirmamentFeature {
|
||||
object TConfig : ManagedConfig(identifier) {
|
||||
val fixUnsignedPlayerSkins by toggle("player-skins") { true }
|
||||
val autoSprint by toggle("auto-sprint") { false }
|
||||
val peekChat by keyBindingWithDefaultUnbound("peek-chat")
|
||||
}
|
||||
|
||||
override val config: ManagedConfig
|
||||
@@ -35,4 +36,8 @@ object Fixes : FirmamentFeature {
|
||||
|
||||
override fun onLoad() {
|
||||
}
|
||||
|
||||
fun shouldPeekChat(): Boolean {
|
||||
return TConfig.peekChat.isPressed(atLeast = true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
package moe.nea.firmament.keybindings
|
||||
|
||||
import org.lwjgl.glfw.GLFW
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.nea.firmament.util.MC
|
||||
import net.minecraft.client.MinecraftClient
|
||||
import net.minecraft.client.util.InputUtil
|
||||
import moe.nea.firmament.util.MC
|
||||
import org.lwjgl.glfw.GLFW
|
||||
|
||||
@Serializable
|
||||
data class SavedKeyBinding(
|
||||
@@ -38,24 +38,28 @@ data class SavedKeyBinding(
|
||||
}
|
||||
}
|
||||
|
||||
fun isPressed(): Boolean {
|
||||
fun isPressed(atLeast: Boolean = false): Boolean {
|
||||
if (this.keyCode == GLFW.GLFW_KEY_UNKNOWN) return false
|
||||
val h = MC.window.handle
|
||||
if (!InputUtil.isKeyPressed(h, keyCode)) return false
|
||||
|
||||
val ctrl = if (MinecraftClient.IS_SYSTEM_MAC) {
|
||||
InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_LEFT_SUPER)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_SUPER)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_SUPER)
|
||||
} else InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_LEFT_CONTROL)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_CONTROL)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_CONTROL)
|
||||
val shift = InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_LEFT_SHIFT)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_SHIFT)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_SHIFT)
|
||||
val alt = InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_LEFT_ALT)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_ALT)
|
||||
|| InputUtil.isKeyPressed(h, GLFW.GLFW_KEY_RIGHT_ALT)
|
||||
if (atLeast)
|
||||
return (ctrl >= this.ctrl) &&
|
||||
(alt >= this.alt) &&
|
||||
(shift >= this.shift)
|
||||
|
||||
return (ctrl == this.ctrl) &&
|
||||
(alt == this.alt) &&
|
||||
(shift == this.shift)
|
||||
(alt == this.alt) &&
|
||||
(shift == this.shift)
|
||||
}
|
||||
|
||||
override fun matches(keyCode: Int, scanCode: Int, modifiers: Int): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user