mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-31 16:08:00 +01:00
58 lines
1.3 KiB
Plaintext
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
|