@@ -58,6 +58,8 @@ export default class KeyHandler implements KeyMapInterface {
58
58
/** prevent duplicated key presses */
59
59
keyLock : Record < number , boolean > = { } ;
60
60
61
+ rts : number ;
62
+
61
63
constructor ( user : UserInterface , gameUser : GameUser ) {
62
64
let activeKeyMap = user . keyMaps . find (
63
65
( keyMap ) => keyMap . id === user . activeKeyMap ,
@@ -78,6 +80,7 @@ export default class KeyHandler implements KeyMapInterface {
78
80
this . id = activeKeyMap . id ;
79
81
this . keys = activeKeyMap . keys ;
80
82
this . name = activeKeyMap . name ;
83
+ this . rts = activeKeyMap . rts ;
81
84
this . sdf = activeKeyMap . sdf ;
82
85
83
86
Object . keys ( this . keys ) . forEach ( ( stateChange : string ) => {
@@ -88,17 +91,12 @@ export default class KeyHandler implements KeyMapInterface {
88
91
} ) ;
89
92
}
90
93
91
- rts : number ;
92
-
93
94
listen ( ) {
94
95
const keyToStateChange = this . keyToStateChange ;
95
96
const keyDownListener = ( $event : KeyboardEvent ) => {
96
97
const actionCode = parseInt ( keyToStateChange [ $event . keyCode ] , 10 ) ;
97
98
// only react on known and single key presses, when command is pressed
98
99
if ( typeof keyToStateChange [ $event . keyCode ] !== 'undefined' ) {
99
- $event . preventDefault ( ) ;
100
- $event . stopPropagation ( ) ;
101
-
102
100
if ( ! this . keyLock [ actionCode ] && ! this . keyDas [ actionCode ] && ! this . keyArr [ actionCode ] ) {
103
101
if ( repeatKeys . includes ( actionCode ) ) {
104
102
this . sendKey ( actionCode ) ;
@@ -125,20 +123,24 @@ export default class KeyHandler implements KeyMapInterface {
125
123
// wait for the dcd timeout and retrigger arr, if the keys are still pressed
126
124
setTimeout ( ( ) => {
127
125
if ( this . keyArr [ key ] ) {
126
+ const parsedKey = parseInt ( key , 10 ) ;
128
127
this . keyArr [ key ] = setInterval (
129
- ( ) => this . sendKey ( parseInt ( key , 10 ) ) ,
128
+ ( ) => this . sendKey ( parsedKey ) ,
130
129
// use different speed for soft drop, turn and arrow keys
131
- this . getRepeatValue ( this . keyArr [ key ] ) ,
130
+ this . getRepeatValue ( parsedKey ) ,
132
131
) ;
133
132
}
134
133
} , this . dcd ) ;
135
134
} ) ;
136
135
}
137
136
}
138
137
}
139
-
140
- return false ;
141
138
}
139
+
140
+ $event . preventDefault ( ) ;
141
+ $event . stopPropagation ( ) ;
142
+
143
+ return false ;
142
144
} ;
143
145
144
146
const keyUpListener = ( $event : KeyboardEvent ) => {
@@ -156,12 +158,10 @@ export default class KeyHandler implements KeyMapInterface {
156
158
delete this . keyLock [ actionCode ] ;
157
159
158
160
// clear pressed key stack
159
- if ( typeof keyToStateChange [ $event . keyCode ] !== 'undefined' ) {
160
- $event . preventDefault ( ) ;
161
- $event . stopPropagation ( ) ;
161
+ $event . preventDefault ( ) ;
162
+ $event . stopPropagation ( ) ;
162
163
163
- return false ;
164
- }
164
+ return false ;
165
165
} ;
166
166
167
167
// bind listeners and unmount functions
0 commit comments