diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index f7da4ed..df7eb09 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -153,13 +153,14 @@
+
-
+
diff --git a/src/resources/blocks/player.js b/src/resources/blocks/player.js
index 4ecd497..622f1f3 100644
--- a/src/resources/blocks/player.js
+++ b/src/resources/blocks/player.js
@@ -85,6 +85,88 @@ function register() {
}, (block) => {
return [`ModAPI.getProfileName()`, javascriptGenerator.ORDER_ATOMIC];
})
+
+ registerBlock(`${categoryPrefix}keypressed`, {
+ message0: 'when in game key %1 pressed do %2 %3',
+ args0: [
+ {
+ "type": "field_dropdown",
+ "name": "MENU3",
+ "options": keyBoard
+ },
+ {
+ "type": "input_dummy"
+ },
+ {
+ "type": "input_statement",
+ "name": "BLOCKS"
+ }
+ ],
+ inputsInline: true,
+ colour: categoryColor,
+ }, (block) => {
+ const MENU3 = block.getFieldValue('MENU3');
+ const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
+ const code = `ModAPI.addEventListener("key", function(ev){
+ if(ev.key == ${MENU3}){${BLOCKS}}});`;
+ return `${code}\n`;
+ })
}
+const keyBoard = [
+ ["SPACE", "57"],
+ ["UP ARROW", "200"],
+ ["UP DOWN", "208"],
+ ["UP LEFT", "203"],
+ ["UP RIGHT", "205"],
+ ["A", "30"],
+ ["B", "48"],
+ ["C", "46"],
+ ["D", "32"],
+ ["E", "18"],
+ ["F", "33"],
+ ["G", "34"],
+ ["H", "35"],
+ ["I", "23"],
+ ["J", "36"],
+ ["K", "37"],
+ ["L", "38"],
+ ["M", "50"],
+ ["N", "49"],
+ ["O", "24"],
+ ["P", "25"],
+ ["Q", "16"],
+ ["R", "19"],
+ ["S", "31"],
+ ["T", "20"],
+ ["U", "22"],
+ ["V", "47"],
+ ["W", "17"],
+ ["X", "45"],
+ ["Y", "21"],
+ ["Z", "44"],
+ ["0", "11"],
+ ["1", "2"],
+ ["2", "3"],
+ ["3", "4"],
+ ["4", "5"],
+ ["5", "6"],
+ ["6", "7"],
+ ["7", "8"],
+ ["8", "9"],
+ ["9", "10"],
+ ["F1", "59"],
+ ["F2", "60"],
+ ["F3", "61"],
+ ["F4", "62"],
+ ["F5", "63"],
+ ["F6", "64"],
+ ["F7", "65"],
+ ["F8", "66"],
+ ["F9", "67"],
+ ["F10", "68"],
+ ["F11", "87"],
+ ["F12", "88"],
+];
+
export default register;