Files

47 lines
1.2 KiB
Plaintext

// todo: rename file to keybinding.dm
/datum/keybinding
/// default keys on hotkey mode
var/list/hotkey_keys
/// default keys on classic mode
/// * holding down `Ctrl` is mandatory to invoke keys in classic mode so don't bind things to `Ctrl`
/// * this may be deprecated at some point
var/list/classic_keys
/// Our unique ID.
var/name
var/full_name
var/description = "No description provided."
var/category = CATEGORY_MISC
var/weight = WEIGHT_LOWEST
// todo: what is this for / why do we have it / should we do this?
// keybinds using primarily signals is kind of a :/
// because said components can't really inject keybind data into prefs..
var/keybind_signal
/datum/keybinding/New()
// Default keys to the master "hotkey_keys"
if(LAZYLEN(hotkey_keys) && !LAZYLEN(classic_keys))
classic_keys = hotkey_keys.Copy()
/datum/keybinding/proc/down(client/user)
return FALSE
/datum/keybinding/proc/up(client/user)
return FALSE
/datum/keybinding/proc/can_use(client/user)
return TRUE
/datum/keybinding/proc/is_visible(client/user)
return TRUE
/**
* Data for a GamePreferenceKeybind
*/
/datum/keybinding/proc/tgui_keybinding_data()
return list(
"id" = name,
"name" = full_name,
"desc" = description,
"category" = category,
)