Files
Paradise/code/datums/keybindings/_keybinding.dm
S34N 3f95392c82 Lets go rebind things (#18166)
* SSinput Rewrite, Custom Keybindings

* hmm yes, safety

* azerty begone

* address AA and SteelSlayer

* Address the old man

* what

* CI dbconfig too

* Address TM issues

Unicode support
Better numpad support
Fix no perms message
Fix modifier screwing movement

* pre-TM tweak, nitfix

* pre TM change 2

* Display others

* MERGE ME

* unduplicates your rows

* reverts some changes, makes this work for now (not TM safe)

* fixes direction facing, removes hotkey help item

* weird keys

* TM commit revert later

* fixed asay/msay keybind

* adds ALL the emotes

* flip and spin

* makes old people happy

* and fixes admins not being able to msay

* lets borgs stow modules

* saves prefs when someone changes a keybind

* reverts skin changes and manually applies
HEAVEN HELP YOU IF YOU USE THE DM SKIN EDITOR IT BREAKS EVERYTHING

* tidies menu, unduplicates rest

* sql file pls come back

* Update SQL/updates/40-41.sql

* why did you not throw an error?!

* inits keybinds if your prefs somehow fail, i guess

* restores these spaces, i guess

* fixes local testing, i guess

* emote cooldown returns (oops)

* movement lock improvements

* Pageup does Swap Hands

* LOOC

* whisper for living mobs

* oops

* fix dsay

* fix IPC silicon emote hotkeys

* category name

* backspace only clears if input is focused

* Makes TAB and BACKSPACE rebindable

* charlie review

* define move

* yeet

* Lewcc review

* brings back legacy mode

* restores legacy mode

* tell legacy mode what is going on

* Update code/controllers/subsystem/input.dm

* Update code/controllers/subsystem/input.dm

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>

* safeties!

* legacy mode is a pref now

* undo TM changes

* null prefs safeties

* Revert "legacy mode is a pref now"

This reverts commit b45af65139.

* revert this too thanks

Co-authored-by: mochi <shenesis@gmail.com>
Co-authored-by: dearmochi <1496804+dearmochi@users.noreply.github.com>
Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
2022-07-13 21:34:41 +01:00

58 lines
1.3 KiB
Plaintext

/datum/keybinding
/// The user-facing name.
var/name
/// The UI category to belong to.
var/category = KB_CATEGORY_UNSORTED
/// The default key(s) assigned to the keybind.
var/list/keys
/**
* Returns whether the keybinding can be pressed by the client's current mob.
*
* Arguments:
* * C - The client.
* * M - The client's mob.
*/
/datum/keybinding/proc/can_use(client/C, mob/M)
return TRUE
/**
* Called when the client presses the keybind.
*
* Arguments:
* * C - The client.
*/
/datum/keybinding/proc/down(client/C)
if(should_start_looping(C))
SSinput.processing[C] = world.time
/**
* Called when the client releases the keybind.
*
* Arguments:
* * C - The client.
*/
/datum/keybinding/proc/up(client/C)
if(should_stop_looping(C))
SSinput.processing -= C
/**
* Called on keybind press to determine looping behaviour.
* If TRUE is returned, the client will be added to SSinput's processing loop. Use VERY sparingly.
*
* Arguments:
* * C - The client.
*/
/datum/keybinding/proc/should_start_looping(client/C)
return FALSE
/**
* Called on keybind release to determine looping behaviour.
* If TRUE is returned, the client will be removed from SSinput's processing loop.
*
* Arguments:
* * C - The client.
*/
/datum/keybinding/proc/should_stop_looping(client/C)
return FALSE