Files
Bubberstation/code/datums/keybinding/human.dm
TiviPlus d53fb89b86 Keyboard presses (and thus keybindings) will now report the turf the mouse was over when a player presses or releases a key (#90480)
## About The Pull Request

Semi WIP cus I need to probably make an issue report for lummox, but
apart from that ready for review

Uses the new mouse-pos so we can combine it with screen size and size to
estimate very accurately the mouse position in turf terms. In future
also will need to add a way to continously poll the users mouse pos but
this alone is very useful

## Why It's Good For The Game

This isnt used yet, but the benefits are pretty damn obvious (hitting E
and dashing towards where your mouse??? 1990s features?????)

## Changelog
🆑
refactor: Added the possibility for keybindings to report the turf they
clicked on.
/🆑

---------

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-05-16 22:03:01 -07:00

77 lines
2.6 KiB
Plaintext

/datum/keybinding/human
category = CATEGORY_HUMAN
weight = WEIGHT_MOB
/datum/keybinding/human/can_use(client/user)
return ishuman(user.mob)
/datum/keybinding/human/quick_equip
hotkey_keys = list("E")
name = "quick_equip"
full_name = "Quick equip"
description = "Quickly puts an item in the best slot available"
keybind_signal = COMSIG_KB_HUMAN_QUICKEQUIP_DOWN
/datum/keybinding/human/quick_equip/down(client/user, turf/target)
. = ..()
if(.)
return
var/mob/living/carbon/human/H = user.mob
H.quick_equip()
return TRUE
/datum/keybinding/human/quick_equip_belt
hotkey_keys = list("ShiftE")
name = "quick_equip_belt"
full_name = "Quick equip belt"
description = "Put held thing in belt or take out most recent thing from belt"
///which slot are we trying to quickdraw from/quicksheathe into?
var/slot_type = ITEM_SLOT_BELT
///what we should call slot_type in messages (including failure messages)
var/slot_item_name = "belt"
keybind_signal = COMSIG_KB_HUMAN_QUICKEQUIPBELT_DOWN
/datum/keybinding/human/quick_equip_belt/down(client/user, turf/target)
. = ..()
if(.)
return
var/mob/living/carbon/human/H = user.mob
H.smart_equip_targeted(slot_type, slot_item_name)
return TRUE
/datum/keybinding/human/quick_equip_belt/quick_equip_bag
hotkey_keys = list("ShiftB")
name = "quick_equip_bag"
full_name = "Quick equip bag"
description = "Put held thing in backpack or take out most recent thing from backpack"
slot_type = ITEM_SLOT_BACK
slot_item_name = "backpack"
keybind_signal = COMSIG_KB_HUMAN_BAGEQUIP_DOWN
/datum/keybinding/human/quick_equip_belt/quick_equip_suit_storage
hotkey_keys = list("ShiftQ")
name = "quick_equip_suit_storage"
full_name = "Quick equip suit storage slot"
description = "Put held thing in suit storage slot item or take out most recent thing from suit storage slot item"
slot_type = ITEM_SLOT_SUITSTORE
slot_item_name = "suit storage slot item"
keybind_signal = COMSIG_KB_HUMAN_SUITEQUIP_DOWN
/datum/keybinding/human/quick_equip_belt/quick_equip_lpocket
hotkey_keys = list("Ctrl1")
name = "quick_equip_lpocket"
full_name = "Quick equip left pocket"
description = "Put in or take out an item in left pocket"
slot_type = ITEM_SLOT_LPOCKET
slot_item_name = "left pocket"
keybind_signal = COMSIG_KB_HUMAN_LPOCKETEQUIP_DOWN
/datum/keybinding/human/quick_equip_belt/quick_equip_rpocket
hotkey_keys = list("Ctrl2")
name = "quick_equip_rpocket"
full_name = "Quick equip right pocket"
description = "Put in or take out an item in right pocket"
slot_type = ITEM_SLOT_RPOCKET
slot_item_name = "right pocket"
keybind_signal = COMSIG_KB_HUMAN_RPOCKETEQUIP_DOWN