Skip to content

Instantly share code, notes, and snippets.

@Jvp2001
Last active August 31, 2023 10:37
Show Gist options
  • Save Jvp2001/976a084531665f107253af2a56674fae to your computer and use it in GitHub Desktop.
Save Jvp2001/976a084531665f107253af2a56674fae to your computer and use it in GitHub Desktop.
Rouge Engine Keycode Types
import * as RE from "rogue-engine"
export class Keyboard
{
init(): void
{}
getKeyDown(keyCode: KeyboardEventKey): boolean
{
return RE.Input.keyboard.getKeyDown(keyCode as string)
}
getKeyPressed(keyCode: KeyboardEventKey): boolean
{
return RE.Input.keyboard.getKeyPressed(keyCode as string)
}
getKeyUp(keyCode: KeyboardEventKey): boolean
{
return RE.Input.keyboard.getKeyUp(keyCode as string)
}
}
import { Keyboard } from "./ImprovedKeyboard"
import * as RE from "rogue-engine"
export abstract class Input
{
static get keyboard(): Keyboard
{
return RE.Input.keyboard
}
}
/**
* The codes where taken from [here]{@link https://github.com/Moh-Snoussi/keyboard-event-key-type} and improved on.
*/
type NumericKeypadKeys =
"Decimal"
| "Key11"
| "Key12"
| "Multiply"
| "Add"
| "Clear"
| "Divide"
| "Subtract"
| "Separator"
| "0"
| "1"
| "2"
| "3"
| "4"
| "5"
| "6"
| "7"
| "8"
| "9"
type UpperAlpha =
'A'
| 'B'
| 'C'
| 'D'
| 'E'
| 'F'
| 'G'
| 'H'
| 'I'
| 'J'
| 'K'
| 'L'
| 'M'
| 'N'
| 'O'
| 'P'
| 'Q'
| 'R'
| 'S'
| 'T'
| 'U'
| 'V'
| 'W'
| 'X'
| 'Y'
| 'Z'
type LowerAlpha = Lowercase<UpperAlpha>
type ModifierKeys =
"Alt"
| "AltGraph"
| "CapsLock"
| "Control"
| "Fn"
| "FnLock"
| "Hyper"
| "Meta"
| "NumLock"
| "ScrollLock"
| "Shift"
| "Super"
| "Symbol"
| "SymbolLock"
type WhitespaceKeys = "Enter" | "Tab" | " "
type NavigationKeys =
"ArrowDown"
| "ArrowLeft"
| "ArrowRight"
| "ArrowUp"
| "End"
| "Home"
| "PageDown"
| "PageUp"
type EditingKeys =
"Backspace"
| "Clear"
| "Copy"
| "CrSel"
| "Cut"
| "Delete"
| "EraseEof"
| "ExSel"
| "Insert"
| "Paste"
| "Redo"
| "Undo"
type UIKeys =
"Accept"
| "Again"
| "Attn"
| "Cancel"
| "ContextMenu"
| "Escape"
| "Execute"
| "Find"
| "Finish"
| "Help"
| "Pause"
| "Play"
| "Props"
| "Select"
| "ZoomIn"
| "ZoomOut"
type DeviceKeys =
"BrightnessDown"
| "BrightnessUp"
| "Eject"
| "LogOff"
| "Power"
| "PowerOff"
| "PrintScreen"
| "Hibernate"
| "Standby"
| "WakeUp"
type IMECompositionKeys =
"AllCandidates"
| "Alphanumeric"
| "CodeInput"
| "Compose"
| "Convert"
| "Dead"
| "FinalMode"
| "GroupFirst"
| "GroupLast"
| "GroupNext"
| "GroupPrevious"
| "ModeChange"
| "NextCandidate"
| "NonConvert"
| "PreviousCandidate"
| "Process"
| "SingleCandidate"
type LinuxDeadKeys =
"GDK_KEY_dead_grave"
| "GDK_KEY_dead_acute"
| "GDK_KEY_dead_circumflex"
| "GDK_KEY_dead_tilde"
| "GDK_KEY_dead_perispomeni"
| "GDK_KEY_dead_macron"
| "GDK_KEY_dead_breve"
| "GDK_KEY_dead_abovedot"
| "GDK_KEY_dead_diaeresis"
| "GDK_KEY_dead_abovering"
| "GDK_KEY_dead_doubleacute"
| "GDK_KEY_dead_caron"
| "GDK_KEY_dead_cedilla"
| "GDK_KEY_dead_ogonek"
| "GDK_KEY_dead_iota"
| "GDK_KEY_dead_voiced_sound"
| "GDK_KEY_dead_semivoiced_sound"
| "GDK_KEY_dead_belowdot"
| "GDK_KEY_dead_hook"
| "GDK_KEY_dead_horn"
| "GDK_KEY_dead_stroke"
| "GDK_KEY_dead_abovecomma"
| "GDK_KEY_dead_psili"
| "GDK_KEY_dead_abovereversedcomma"
| "GDK_KEY_dead_dasia"
| "GDK_KEY_dead_doublegrave"
| "GDK_KEY_dead_belowring"
| "GDK_KEY_dead_belowmacron"
| "GDK_KEY_dead_belowcircumflex"
| "GDK_KEY_dead_belowtilde"
| "GDK_KEY_dead_belowbreve"
| "GDK_KEY_dead_belowdiaeresis"
| "GDK_KEY_dead_invertedbreve"
| "GDK_KEY_dead_belowcomma"
| "GDK_KEY_dead_currency"
| "GDK_KEY_dead_a"
| "GDK_KEY_dead_A"
| "GDK_KEY_dead_e"
| "GDK_KEY_dead_E"
| "GDK_KEY_dead_i"
| "GDK_KEY_dead_I"
| "GDK_KEY_dead_o"
| "GDK_KEY_dead_O"
| "GDK_KEY_dead_u"
| "GDK_KEY_dead_U"
| "GDK_KEY_dead_small_schwa"
| "GDK_KEY_dead_capital_schwa"
| "GDK_KEY_dead_greek"
type FunctionKeys =
"F1"
| "F2"
| "F3"
| "F4"
| "F5"
| "F6"
| "F7"
| "F8"
| "F9"
| "F10"
| "F11"
| "F12"
| "F13"
| "F14"
| "F15"
| "F16"
| "F17"
| "F18"
| "F19"
| "F20"
| "Soft1"
| "Soft2"
| "Soft3"
| "Soft4"
type PhoneKeys =
"AppSwitch"
| "Call"
| "Camera"
| "CameraFocus"
| "EndCall"
| "GoBack"
| "GoHome"
| "HeadsetHook"
| "LastNumberRedial"
| "Notification"
| "MannerMode"
| "VoiceDial"
type MultimediaKeys =
"ChannelDown"
| "ChannelUp"
| "MediaFastForward"
| "MediaPause"
| "MediaPlay"
| "MediaPlayPause"
| "MediaRecord"
| "MediaRewind"
| "MediaStop"
| "MediaTrackNext"
| "MediaTrackPrevious"
type TVControlKeys =
"TV"
| "TV3DMode"
| "TVAntennaCable"
| "TVAudioDescription"
| "TVAudioDescriptionMixDown"
| "TVAudioDescriptionMixUp"
| "TVContentsMenu"
| "TVDataService"
| "TVInput"
| "TVInputComponent1"
| "TVInputComponent2"
| "TVInputComposite1"
| "TVInputComposite2"
| "TVInputHDMI1"
| "TVInputHDMI2"
| "TVInputHDMI3"
| "TVInputHDMI4"
| "TVInputVGA1"
| "TVMediaContext"
| "TVNetwork"
| "TVNumberEntry"
| "TVPower"
| "TVRadioService"
| "TVSatellite"
| "TVSatelliteBS"
| "TVSatelliteCS"
| "TVSatelliteToggle"
| "TVTerrestrialAnalog"
| "TVTerrestrialDigital"
| "TVTimer"
type MediaControllerKeys =
"AVRInput"
| "AVRPower"
| "ColorF0Red"
| "ColorF1Green"
| "ColorF2Yellow"
| "ColorF3Blue"
| "ColorF4Grey"
| "ColorF5Brown"
| "ClosedCaptionToggle"
| "Dimmer"
| "DisplaySwap"
| "DVR"
| "Exit"
| "FavoriteClear0"
| "FavoriteClear1"
| "FavoriteClear2"
| "FavoriteClear3"
| "FavoriteRecall0"
| "FavoriteRecall1"
| "FavoriteRecall2"
| "FavoriteRecall3"
| "FavoriteStore0"
| "FavoriteStore1"
| "FavoriteStore2"
| "FavoriteStore3"
| "Guide"
| "GuideNextDay"
| "GuidePreviousDay"
| "Info"
| "InstantReplay"
| "Link"
| "ListProgram"
| "LiveContent"
| "Lock"
| "MediaApps"
| "MediaAudioTrack"
| "MediaLast"
| "MediaSkipBackward"
| "MediaSkipForward"
| "MediaStepBackward"
| "MediaStepForward"
| "MediaTopMenu"
| "NavigateIn"
| "NavigateNext"
| "NavigateOut"
| "NavigatePrevious"
| "NextFavoriteChannel"
| "NextUserProfile"
| "OnDemand"
| "Pairing"
| "PinPDown"
| "PinPMove"
| "PinPToggle"
| "PinPUp"
| "PlaySpeedDown"
| "PlaySpeedReset"
| "PlaySpeedUp"
| "RandomToggle"
| "RcLowBattery"
| "RecordSpeedNext"
| "RfBypass"
| "ScanChannelsToggle"
| "ScreenModeNext"
| "Settings"
| "SplitScreenToggle"
| "STBInput"
| "STBPower"
| "Subtitle"
| "Teletext"
| "VideoModeNext"
| "Wink"
| "ZoomToggle"
type SpeechRecognitionKeys = "SpeechCorrectionList" | "SpeechInputToggle"
type DocumentKeys =
"Close"
| "New"
| "Open"
| "Print"
| "Save"
| "SpellCheck"
| "MailForward"
| "MailReply"
| "MailSend"
type ApplicationSelectorKeys =
"LaunchCalculator"
| "LaunchCalendar"
| "LaunchContacts"
| "LaunchMail"
| "LaunchMediaPlayer"
| "LaunchMusicPlayer"
| "LaunchMyComputer"
| "LaunchPhone"
| "LaunchScreenSaver"
| "LaunchSpreadsheet"
| "LaunchWebBrowser"
| "LaunchWebCam"
| "LaunchWordProcessor"
| "LaunchApplication1"
| "LaunchApplication2"
| "LaunchApplication3"
| "LaunchApplication4"
| "LaunchApplication5"
| "LaunchApplication6"
| "LaunchApplication7"
| "LaunchApplication8"
| "LaunchApplication9"
| "LaunchApplication10"
| "LaunchApplication11"
| "LaunchApplication12"
| "LaunchApplication13"
| "LaunchApplication14"
| "LaunchApplication15"
| "LaunchApplication16"
type BrowserControlKeys =
"BrowserBack"
| "BrowserFavorites"
| "BrowserForward"
| "BrowserHome"
| "BrowserRefresh"
| "BrowserSearch"
| "BrowserStop"
type KoreanKeyboardsOnly = "HangulMode" | "HanjaMode" | "JunjaMode"
type WhiteSpace = " " | "Space"
type SpecialValueKey = "Unidentified"
type CustomValueKey = string
type KeyboardEventKeyUnion =
| WhiteSpace
| SpecialValueKey
| ModifierKeys
| WhitespaceKeys
| NavigationKeys
| EditingKeys
| UIKeys
| DeviceKeys
| IMECompositionKeys
| LinuxDeadKeys
| FunctionKeys
| PhoneKeys
| MultimediaKeys
| TVControlKeys
| MediaControllerKeys
| SpeechRecognitionKeys
| DocumentKeys
| ApplicationSelectorKeys
| BrowserControlKeys
| NumericKeypadKeys
| UpperAlpha
| LowerAlpha
| KoreanKeyboardsOnly
export type KeyboardEventKey = KeyboardEventKeyUnion | Omit<string, KeyboardEventKeyUnion>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment