From 3c604b976aebaa5e75a012ba466a384fb4abb3bd Mon Sep 17 00:00:00 2001 From: UnicornFreedom Date: Wed, 30 Jul 2025 00:29:03 +0200 Subject: [PATCH] Add key mapping tab to the settings dialog --- spritepack/spritepack.sh | 0 sprites/icons/SettingsKeymap.png | Bin 0 -> 196 bytes .../resources/ocelot/desktop/colorscheme.txt | 1 + .../images/spritesheet/spritesheet.png | Bin 150878 -> 151059 bytes .../images/spritesheet/spritesheet.txt | 23 +++--- .../ocelot/desktop/graphics/IconSource.scala | 1 + .../scala/ocelot/desktop/ui/UiHandler.scala | 5 +- .../ocelot/desktop/ui/widget/MenuBar.scala | 9 ++- .../ocelot/desktop/ui/widget/RootWidget.scala | 11 +-- .../desktop/ui/widget/WorkspaceView.scala | 12 +-- .../widget/settings/KeymapSettingsTab.scala | 76 ++++++++++++++++++ .../ui/widget/settings/SettingsDialog.scala | 1 + .../ui/widget/statusbar/StatusBar.scala | 8 +- .../scala/ocelot/desktop/util/Keybind.scala | 24 +++++- .../scala/ocelot/desktop/util/Keymap.scala | 65 ++++++++++++++- .../ocelot/desktop/util/SettingsData.scala | 1 + 16 files changed, 202 insertions(+), 35 deletions(-) mode change 100644 => 100755 spritepack/spritepack.sh create mode 100644 sprites/icons/SettingsKeymap.png create mode 100644 src/main/scala/ocelot/desktop/ui/widget/settings/KeymapSettingsTab.scala diff --git a/spritepack/spritepack.sh b/spritepack/spritepack.sh old mode 100644 new mode 100755 diff --git a/sprites/icons/SettingsKeymap.png b/sprites/icons/SettingsKeymap.png new file mode 100644 index 0000000000000000000000000000000000000000..d4414ae102f57f2bda1929ed68791768838bb9c9 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eS!3HE>+WIa6Qk(@Ik;M!QddeWoSh3W;3@BLU z>Ealo5j=HLAm0H64(H>K{;uB>IZ2IWB}-kv1_l4OH^1dJx8F2dmpsSvw4<6pf09^T zq;Dlh^2Mv1MdJJ4r?jm*IB|aYi77kQzfimubgEp6TWo`-m#AQU`={_)cG#=s}+3=I)H(moFzfi7V1boFyt=akR{0CDU{N&o-= literal 0 HcmV?d00001 diff --git a/src/main/resources/ocelot/desktop/colorscheme.txt b/src/main/resources/ocelot/desktop/colorscheme.txt index 1878c16..48df2b4 100644 --- a/src/main/resources/ocelot/desktop/colorscheme.txt +++ b/src/main/resources/ocelot/desktop/colorscheme.txt @@ -23,6 +23,7 @@ Tier3 = #c354cd Label = #333333 LabelError = #aa0000 +LabelDisabled = #888888 Scrollbar = #e5e5e526 ScrollbarThumb = #cc3f72 diff --git a/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.png b/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.png index bf5252f53e0c92df30cf4b851288262d08fdcdcd..fc9f9e2c6393f039d8fa1fb466a5027593cfce84 100644 GIT binary patch delta 59742 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 z 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¥|cFGqGVZ}y97zOSo{Qkz?{2^JI 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 delta 59574 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 diff --git a/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.txt b/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.txt index 213b10d..553dd02 100644 --- a/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.txt +++ b/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.txt @@ -65,7 +65,7 @@ icons/Help 559 618 16 16 icons/Home 214 567 22 22 icons/Keyboard 576 618 16 16 icons/KeyboardOff 593 618 16 16 -icons/LMB 350 655 11 14 +icons/LMB 363 655 11 14 icons/Label 610 618 16 16 icons/LinesHorizontal 627 618 16 16 icons/Link 644 618 16 16 @@ -73,26 +73,27 @@ icons/LinkSlash 661 618 16 16 icons/Memory 678 618 16 16 icons/Microchip 695 618 16 16 icons/NA 712 618 16 16 -icons/NotificationError 374 655 11 11 -icons/NotificationInfo 386 655 11 11 -icons/NotificationWarning 398 655 11 11 +icons/NotificationError 387 655 11 11 +icons/NotificationInfo 399 655 11 11 +icons/NotificationWarning 411 655 11 11 icons/Ocelot 729 618 16 16 -icons/Pin 305 655 14 14 +icons/Pin 318 655 14 14 icons/Plus 746 618 16 16 icons/Power 763 618 16 16 -icons/RMB 362 655 11 14 +icons/RMB 375 655 11 14 icons/Restart 780 618 16 16 icons/Save 797 618 16 16 icons/SaveAs 814 618 16 16 icons/Server 831 618 16 16 -icons/SettingsSound 266 655 12 17 -icons/SettingsSystem 279 655 12 17 -icons/SettingsUI 292 655 12 17 +icons/SettingsKeymap 266 655 12 17 +icons/SettingsSound 279 655 12 17 +icons/SettingsSystem 292 655 12 17 +icons/SettingsUI 305 655 12 17 icons/Tier0 848 618 16 16 icons/Tier1 865 618 16 16 icons/Tier2 882 618 16 16 icons/Tiers 899 618 16 16 -icons/Unpin 320 655 14 14 +icons/Unpin 333 655 14 14 icons/WaveLFSR 901 707 24 10 icons/WaveNoise 926 707 24 10 icons/WaveSawtooth 951 707 24 10 @@ -185,7 +186,7 @@ light-panel/Fill 207 560 2 2 light-panel/Vent 356 434 2 38 nodes/Cable 377 445 8 8 nodes/Camera 375 674 16 16 -nodes/Chest 335 655 14 14 +nodes/Chest 348 655 14 14 nodes/HologramProjector0 392 674 16 16 nodes/HologramProjector1 409 674 16 16 nodes/IronNoteBlock 426 674 16 16 diff --git a/src/main/scala/ocelot/desktop/graphics/IconSource.scala b/src/main/scala/ocelot/desktop/graphics/IconSource.scala index ecb83c1..cc013f8 100644 --- a/src/main/scala/ocelot/desktop/graphics/IconSource.scala +++ b/src/main/scala/ocelot/desktop/graphics/IconSource.scala @@ -149,6 +149,7 @@ object IconSource { )), ) + val SettingsKeymap: IconSource = IconSource("icons/SettingsKeymap") val SettingsSystem: IconSource = IconSource("icons/SettingsSystem") val SettingsSound: IconSource = IconSource("icons/SettingsSound") val SettingsUI: IconSource = IconSource("icons/SettingsUI") diff --git a/src/main/scala/ocelot/desktop/ui/UiHandler.scala b/src/main/scala/ocelot/desktop/ui/UiHandler.scala index 5bdfe27..5a693cd 100644 --- a/src/main/scala/ocelot/desktop/ui/UiHandler.scala +++ b/src/main/scala/ocelot/desktop/ui/UiHandler.scala @@ -13,7 +13,7 @@ import ocelot.desktop.util._ import ocelot.desktop.{OcelotDesktop, Settings} import org.apache.commons.lang3.SystemUtils import org.lwjgl.BufferUtils -import org.lwjgl.input.{Keyboard, Mouse} +import org.lwjgl.input.Mouse import org.lwjgl.opengl._ import java.awt.Toolkit @@ -29,6 +29,7 @@ import scala.collection.mutable import scala.concurrent.duration.DurationInt import scala.util.Try + object UiHandler extends Logging { var root: RootWidget = _ var graphics: Graphics = _ @@ -386,7 +387,7 @@ object UiHandler extends Logging { // we are processing screenshots here to make sure that // the current frame was fully drawn on the screen, // but the update for the next frame yet not happened (if the window, for example, is to be resized) - if (KeyEvents.isReleased(Keyboard.KEY_F12)) { + if (KeyEvents.isReleased(Settings.get.keymap(Keybind.Screenshot))) { SoundSource.InterfaceShutter.play() val image = graphics.screenshot() root.flash.bang() diff --git a/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala b/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala index 9aabde2..24b8a73 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/MenuBar.scala @@ -3,12 +3,13 @@ package ocelot.desktop.ui.widget import ocelot.desktop.audio.SoundSource import ocelot.desktop.geometry.{Padding2D, Size2D} import ocelot.desktop.graphics.{Graphics, IconSource} -import ocelot.desktop.ui.event.KeyEvent import ocelot.desktop.ui.widget.contextmenu.{ContextMenuEntry, ContextMenuSubmenu} import ocelot.desktop.ui.widget.help.{AboutDialog, UpdateCheckerDialog} import ocelot.desktop.ui.widget.settings.SettingsDialog +import ocelot.desktop.util.Keybind.{QuickLoad, QuickSave} +import ocelot.desktop.util.Keymap.Press import ocelot.desktop.{ColorScheme, OcelotDesktop} -import org.lwjgl.input.Keyboard + class MenuBar extends Widget { override def receiveMouseEvents: Boolean = true @@ -70,8 +71,8 @@ class MenuBar extends Widget { }) // fill remaining space eventHandlers += { - case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_F5, _) => OcelotDesktop.save() - case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_F9, _) => OcelotDesktop.showOpenDialog() + case Press(QuickSave) => OcelotDesktop.save() + case Press(QuickLoad) => OcelotDesktop.showOpenDialog() } override def draw(g: Graphics): Unit = { diff --git a/src/main/scala/ocelot/desktop/ui/widget/RootWidget.scala b/src/main/scala/ocelot/desktop/ui/widget/RootWidget.scala index bdc79a4..521bdc9 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/RootWidget.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/RootWidget.scala @@ -4,17 +4,18 @@ import ocelot.desktop.OcelotDesktop import ocelot.desktop.color.RGBAColor import ocelot.desktop.graphics.Graphics import ocelot.desktop.ui.UiHandler -import ocelot.desktop.ui.event.KeyEvent import ocelot.desktop.ui.layout.{CopyLayout, LinearLayout} import ocelot.desktop.ui.widget.contextmenu.ContextMenus import ocelot.desktop.ui.widget.itemdrag.DraggedItemPool import ocelot.desktop.ui.widget.modal.ModalDialogPool import ocelot.desktop.ui.widget.statusbar.StatusBar import ocelot.desktop.ui.widget.tooltip.TooltipPool +import ocelot.desktop.util.Keybind.{Fullscreen, ReloadWorkspace, UIDebug} +import ocelot.desktop.util.Keymap.Release import ocelot.desktop.util.{DrawUtils, Orientation} -import org.lwjgl.input.Keyboard import totoro.ocelot.brain.nbt.NBTTagCompound + class RootWidget(setupDefaultWorkspace: Boolean = true) extends Widget { override protected val layout = new CopyLayout(this) @@ -50,10 +51,10 @@ class RootWidget(setupDefaultWorkspace: Boolean = true) extends Widget { private var isDebugViewVisible = false eventHandlers += { - case KeyEvent(KeyEvent.State.Release, Keyboard.KEY_F1, _) => + case Release(UIDebug) => isDebugViewVisible = !isDebugViewVisible - case KeyEvent(KeyEvent.State.Release, Keyboard.KEY_F3, _) => + case Release(ReloadWorkspace) => OcelotDesktop.withTickLockAcquired { val backendNBT = new NBTTagCompound val frontendNBT = new NBTTagCompound @@ -63,7 +64,7 @@ class RootWidget(setupDefaultWorkspace: Boolean = true) extends Widget { UiHandler.root.workspaceView.load(frontendNBT) } - case KeyEvent(KeyEvent.State.Release, Keyboard.KEY_F11, _) => + case Release(Fullscreen) => UiHandler.fullScreen = !UiHandler.fullScreen } diff --git a/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala b/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala index e040ae7..7ed4d7f 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/WorkspaceView.scala @@ -12,11 +12,12 @@ import ocelot.desktop.ui.event.sources.KeyEvents import ocelot.desktop.ui.layout.{CopyLayout, Layout} import ocelot.desktop.ui.widget.WorkspaceView.NodeLoadException import ocelot.desktop.ui.widget.window.{NodeSelector, ProfilerWindow, WindowPool} +import ocelot.desktop.util.Keybind.{Center, Profiler} +import ocelot.desktop.util.Keymap.Press import ocelot.desktop.util.ReflectionUtils.findUnaryConstructor import ocelot.desktop.util.animation.ValueAnimation import ocelot.desktop.util.{DrawUtils, Logging, Persistable} -import ocelot.desktop.{ColorScheme, OcelotDesktop} -import org.lwjgl.input.Keyboard +import ocelot.desktop.{ColorScheme, OcelotDesktop, Settings} import totoro.ocelot.brain.entity.traits.{Environment, SidedEnvironment} import totoro.ocelot.brain.entity.{Case, Screen} import totoro.ocelot.brain.event.{EventBus, InventoryEvent, NodeEvent} @@ -28,6 +29,7 @@ import scala.collection.immutable.ArraySeq import scala.collection.{immutable, mutable} import scala.jdk.CollectionConverters._ + class WorkspaceView extends Widget with Persistable with MouseHandler with HoverHandler with Logging { @volatile var nodes: immutable.Seq[Node] = immutable.ArraySeq[Node]() @@ -262,10 +264,10 @@ class WorkspaceView extends Widget with Persistable with MouseHandler with Hover nodeSelector.close() } - case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_F4, _) => + case Press(Profiler) => profilerWindow.open() - case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_HOME, _) => + case Press(Center) => moveCameraOffset(-cameraOffset) } @@ -608,7 +610,7 @@ class WorkspaceView extends Widget with Persistable with MouseHandler with Hover nodes.foreach(_.update()) if (isHovered) { - root.get.statusBar.addKeyEntry("HOME", "Reset camera") + root.get.statusBar.addKeyEntry(Settings.get.keymap.name(Center), "Reset camera") } if (isHovered || nodes.exists(_.isHovered)) { diff --git a/src/main/scala/ocelot/desktop/ui/widget/settings/KeymapSettingsTab.scala b/src/main/scala/ocelot/desktop/ui/widget/settings/KeymapSettingsTab.scala new file mode 100644 index 0000000..879571c --- /dev/null +++ b/src/main/scala/ocelot/desktop/ui/widget/settings/KeymapSettingsTab.scala @@ -0,0 +1,76 @@ +package ocelot.desktop.ui.widget.settings + +import ocelot.desktop.color.Color +import ocelot.desktop.{ColorScheme, Settings} +import ocelot.desktop.geometry.{Padding2D, Size2D} +import ocelot.desktop.graphics.IconSource +import ocelot.desktop.ui.event.KeyEvent +import ocelot.desktop.ui.layout.LinearLayout +import ocelot.desktop.ui.widget.{Button, Label, PaddingBox, Widget} +import ocelot.desktop.util.Keybind.Keybind +import ocelot.desktop.util.{Keybind, Orientation} +import org.lwjgl.input.Keyboard + + +class KeymapSettingsTab extends SettingsTab { + override val layout = new LinearLayout(this, orientation = Orientation.Vertical, gap = 8) + + override val icon: IconSource = IconSource.SettingsKeymap + override val label: String = "Keymap" + + private def section(title: String, keybinds: Seq[Keybind]): Widget = new PaddingBox(new Widget { + override val layout = new LinearLayout(this, orientation = Orientation.Vertical) + + override def maximumSize: Size2D = minimumSize.copy(width = 257) + + children :+= new PaddingBox(new Label(title, small = true) { + override def maximumSize: Size2D = minimumSize + override def color: Color = ColorScheme("LabelDisabled") + }, Padding2D(top = 4, bottom = 8)) + + keybinds.foreach(keybind => { + children :+= new PaddingBox(new Widget { + children :+= new PaddingBox(new Label(keybind.description), Padding2D(top = 4, right = 8)) + children :+= new Button { + private var listening: Boolean = false + + eventHandlers += { + case KeyEvent(KeyEvent.State.Release, code, _) if listening => + Settings.get.keymap.set(keybind, code) + listening = false + } + + override def text: String = if (listening) "..." else Keyboard.getKeyName(Settings.get.keymap(keybind)) + override def onClick(): Unit = { + listening = !listening + } + } + }, Padding2D(bottom = 4)) + }) + }, Padding2D(bottom = 8)) + + children :+= new PaddingBox(new Widget { + children :+= new Widget { + override val layout = new LinearLayout(this, orientation = Orientation.Vertical) + children :+= section("OpenComputers", Seq( + Keybind.Insert, + )) + children :+= section("Ocelot", Seq( + Keybind.UIDebug, + Keybind.FPSCounter, + Keybind.ReloadWorkspace, + Keybind.Profiler, + Keybind.Fullscreen, + )) + } + children :+= new Widget { + override def maximumSize: Size2D = Size2D(16, 8) + } + children :+= section("Workspace", Seq( + Keybind.Center, + Keybind.QuickSave, + Keybind.QuickLoad, + Keybind.Screenshot, + )) + }, Padding2D(bottom = 8)) +} diff --git a/src/main/scala/ocelot/desktop/ui/widget/settings/SettingsDialog.scala b/src/main/scala/ocelot/desktop/ui/widget/settings/SettingsDialog.scala index 7d71513..2e83b87 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/settings/SettingsDialog.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/settings/SettingsDialog.scala @@ -16,6 +16,7 @@ class SettingsDialog extends ModalDialog { private val tabs = Seq( new UISettingsTab, new SoundSettingsTab, + new KeymapSettingsTab, new SystemSettingsTab, ) diff --git a/src/main/scala/ocelot/desktop/ui/widget/statusbar/StatusBar.scala b/src/main/scala/ocelot/desktop/ui/widget/statusbar/StatusBar.scala index e1f13ca..1eeea14 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/statusbar/StatusBar.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/statusbar/StatusBar.scala @@ -5,17 +5,19 @@ import ocelot.desktop.geometry.{Padding2D, Size2D} import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.ui.UiHandler import ocelot.desktop.ui.event.handlers.{HoverHandler, MouseHandler} -import ocelot.desktop.ui.event.{ClickEvent, HoverEvent, KeyEvent, MouseEvent} +import ocelot.desktop.ui.event.{ClickEvent, HoverEvent, MouseEvent} import ocelot.desktop.ui.layout.{AlignItems, LinearLayout} import ocelot.desktop.ui.widget._ import ocelot.desktop.ui.widget.contextmenu.{ContextMenu, ContextMenuEntry} import ocelot.desktop.ui.widget.traits.HoverAnimation +import ocelot.desktop.util.Keybind.FPSCounter +import ocelot.desktop.util.Keymap.Press import ocelot.desktop.{ColorScheme, OcelotDesktop} -import org.lwjgl.input.Keyboard import scala.collection.immutable.ArraySeq import scala.concurrent.duration.DurationInt + class StatusBar extends Widget { override protected val layout: LinearLayout = new LinearLayout(this, alignItems = AlignItems.Center) @@ -28,7 +30,7 @@ class StatusBar extends Widget { private var showFPS = false eventHandlers += { - case KeyEvent(KeyEvent.State.Press, Keyboard.KEY_F2, _) => + case Press(FPSCounter) => showFPS = !showFPS if (showFPS) { children :+= new PaddingBox( diff --git a/src/main/scala/ocelot/desktop/util/Keybind.scala b/src/main/scala/ocelot/desktop/util/Keybind.scala index 39e5248..443bf2c 100644 --- a/src/main/scala/ocelot/desktop/util/Keybind.scala +++ b/src/main/scala/ocelot/desktop/util/Keybind.scala @@ -6,6 +6,26 @@ package ocelot.desktop.util */ object Keybind extends Enumeration { - type Keybind = Value - val Insert: Keybind = Value + type Keybind = KeybindVal + + // OpenComputers + val Insert: Keybind = KeybindVal("Insert text") + + // Workspace + val Center: Keybind = KeybindVal("Center camera") + val QuickSave: Keybind = KeybindVal("Quick save") + val QuickLoad: Keybind = KeybindVal("Quick load") + val Screenshot: Keybind = KeybindVal("Save screenshot") + + // Ocelot + val UIDebug: Keybind = KeybindVal("UI Debug Mode") + val FPSCounter: Keybind = KeybindVal("FPS counter") + val ReloadWorkspace: Keybind = KeybindVal("Reload workspace") + val Profiler: Keybind = KeybindVal("Ocelot profiler") + val Fullscreen: Keybind = KeybindVal("Toggle fullscreen mode") + + protected class KeybindVal(val description: String) extends super.Val + private object KeybindVal { + def apply(description: String): KeybindVal = new KeybindVal(description) + } } diff --git a/src/main/scala/ocelot/desktop/util/Keymap.scala b/src/main/scala/ocelot/desktop/util/Keymap.scala index 8f08556..51d91cd 100644 --- a/src/main/scala/ocelot/desktop/util/Keymap.scala +++ b/src/main/scala/ocelot/desktop/util/Keymap.scala @@ -1,18 +1,37 @@ package ocelot.desktop.util import com.typesafe.config.{Config, ConfigValue, ConfigValueFactory} +import ocelot.desktop.Settings +import ocelot.desktop.ui.event.KeyEvent +import ocelot.desktop.ui.event.KeyEvent.State import ocelot.desktop.util.Keybind.Keybind import org.lwjgl.input.Keyboard import scala.collection.mutable import scala.jdk.CollectionConverters._ + class Keymap { // default mappings - val map: mutable.Map[Keybind, Int] = mutable.Map( - Keybind.Insert -> Keyboard.KEY_INSERT + val map: mutable.Map[Keybind.Value, Int] = mutable.Map( + // OpenComputers + Keybind.Insert -> Keyboard.KEY_INSERT, + + // Workspace + Keybind.Center -> Keyboard.KEY_HOME, + Keybind.QuickSave -> Keyboard.KEY_F5, + Keybind.QuickLoad -> Keyboard.KEY_F9, + Keybind.Screenshot -> Keyboard.KEY_F12, + + // Ocelot + Keybind.UIDebug -> Keyboard.KEY_F1, + Keybind.FPSCounter -> Keyboard.KEY_F2, + Keybind.ReloadWorkspace -> Keyboard.KEY_F3, + Keybind.Profiler -> Keyboard.KEY_F4, + Keybind.Fullscreen -> Keyboard.KEY_F11, ) + /** Retrieves the LWJGL keycode which is associated with the given keybind. * Will return `Keyboard.KEY_NONE` if the binding is not found. * @@ -32,7 +51,30 @@ class Keymap { * before the `set` operation was executed, or `None` if this keybind * was not defined in the keymap before. */ - def set(keybind: Keybind, key: Int): Option[Int] = map.put(keybind, key) + def set(keybind: Keybind.Value, key: Int): Option[Int] = map.put(keybind, key) + + /** + * Retrieves the name for a keyboard key associated with the given keybind. + * @param keybind the keybind + * @return the name of the button on the keyboard, for example "HOME", or "F1" + */ + def name(keybind: Keybind): String = Keyboard.getKeyName(apply(keybind)) + + + override def clone(): Keymap = { + val clone = new Keymap + clone.map.addAll(this.map) + clone + } + + + /** + * Tries to find a keybind that corresponds to the specific LWJGL key code + * @param key the LWJGL key code + * @return Option containing the keybind (if found) + */ + private def findByCode(key: Int): Option[Keybind] = map.iterator.collectFirst { case (keybind: Keybind, `key`) => keybind } + /** * Attempts to read known keybindings from a config. @@ -55,3 +97,20 @@ class Keymap { case (key: Keybind, value: Int) => (key.toString.toLowerCase(), value) }).toMap.asJava) } + +object Keymap { + object Press { + def unapply(event: KeyEvent): Option[Keybind] = event match { + case KeyEvent(State.Press, code, _) => + Settings.get.keymap.findByCode(code) + case _ => None + } + } + object Release { + def unapply(event: KeyEvent): Option[Keybind] = event match { + case KeyEvent(State.Release, code, _) => + Settings.get.keymap.findByCode(code) + case _ => None + } + } +} diff --git a/src/main/scala/ocelot/desktop/util/SettingsData.scala b/src/main/scala/ocelot/desktop/util/SettingsData.scala index b2a1027..f7b952b 100644 --- a/src/main/scala/ocelot/desktop/util/SettingsData.scala +++ b/src/main/scala/ocelot/desktop/util/SettingsData.scala @@ -12,6 +12,7 @@ class SettingsData { def this(data: SettingsData) { this() updateWith(data) + keymap = data.keymap.clone() } var brainCustomConfigPath: Option[String] = None