mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-24 01:02:06 +00:00
* 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>
45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
///Culling occurs when a client has not pressed a key in over 60 seconds. We stop processing their inputs until they press another key down.
|
|
#define AUTO_CULL_TIME 60 SECONDS
|
|
|
|
|
|
SUBSYSTEM_DEF(input)
|
|
name = "Input"
|
|
wait = 1 // SS_TICKER means this runs every tick
|
|
flags = SS_TICKER
|
|
init_order = INIT_ORDER_INPUT
|
|
priority = FIRE_PRIORITY_INPUT
|
|
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
|
|
offline_implications = "Player input will no longer be recognised. Immediate server restart recommended."
|
|
|
|
/// List of clients whose input to process in loop.
|
|
var/list/client/processing = list()
|
|
|
|
/datum/controller/subsystem/input/Initialize()
|
|
initialized = TRUE
|
|
refresh_client_macro_sets()
|
|
return ..()
|
|
|
|
/datum/controller/subsystem/input/get_stat_details()
|
|
return "P: [length(processing)]"
|
|
|
|
/datum/controller/subsystem/input/fire(resumed = FALSE)
|
|
var/list/to_cull
|
|
for(var/client/C in processing)
|
|
if(processing[C] + AUTO_CULL_TIME < world.time)
|
|
if(!length(C.input_data.keys_held))
|
|
LAZYADD(to_cull, C)
|
|
else
|
|
continue // they fell asleep on their keyboard or w/e, let them
|
|
C.key_loop()
|
|
|
|
if(to_cull)
|
|
processing -= to_cull
|
|
|
|
/datum/controller/subsystem/input/proc/refresh_client_macro_sets()
|
|
var/list/clients = GLOB.clients
|
|
for(var/i in 1 to length(clients))
|
|
var/client/user = clients[i]
|
|
user.set_macros()
|
|
|
|
#undef AUTO_CULL_TIME
|