mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
* demodularize interface * keybindings * binds * prefs * loose ends * globals * changes * s * datum ref lists * ok * fixes * fixes * fix * ok * sigh * sigh * indicators * let's play the move code around game * let's play the i didn't comma my lists game * let's play the indent game * let's play hte spelling bee * let's fail the spelling bee * LET'S PLAY THe HOW HARd IS IT TO SPELL A PROC GAME * let's play the bugfix game * bugfixes * improvements * Update bindings_client.dm * pixel shift * A * wups
19 lines
815 B
Plaintext
19 lines
815 B
Plaintext
// You might be wondering why this isn't client level. If focus is null, we don't want you to move.
|
|
// Only way to do that is to tie the behavior into the focus's keyLoop().
|
|
|
|
/atom/movable/keyLoop(client/user)
|
|
if(!user.keys_held["Ctrl"])
|
|
var/movement_dir = NONE
|
|
for(var/_key in user.keys_held)
|
|
movement_dir = movement_dir | user.movement_keys[_key]
|
|
if(user.next_move_dir_add)
|
|
movement_dir |= user.next_move_dir_add
|
|
if(user.next_move_dir_sub)
|
|
movement_dir &= ~user.next_move_dir_sub
|
|
// Sanity checks in case you hold left and right and up to make sure you only go up
|
|
if((movement_dir & NORTH) && (movement_dir & SOUTH))
|
|
movement_dir &= ~(NORTH|SOUTH)
|
|
if((movement_dir & EAST) && (movement_dir & WEST))
|
|
movement_dir &= ~(EAST|WEST)
|
|
user.Move(get_step(src, movement_dir), movement_dir)
|