From 2f21d0cbdac43064e9456317f00bf0b0533b9977 Mon Sep 17 00:00:00 2001
From: Scratch-hv | Oeil-de-Lynx
<104771596+OeildeLynx31@users.noreply.github.com>
Date: Tue, 16 Apr 2024 17:47:32 +0000
Subject: [PATCH 01/16] Add more keyboard detection blocks
---
src/lib/Toolbox/Toolbox.xml | 5 +-
src/resources/blocks/events.js | 84 +++++++++++++++++++++++++++++++++
src/resources/blocks/player.js | 9 ++--
src/resources/blocks/sensing.js | 73 ++++++++++++++++++++++++++++
src/resources/compiler/index.js | 7 ++-
5 files changed, 172 insertions(+), 6 deletions(-)
diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index df7eb09..c087fb8 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -3,6 +3,8 @@
+
+
@@ -43,6 +45,7 @@
+
@@ -160,7 +163,7 @@
-
+
diff --git a/src/resources/blocks/events.js b/src/resources/blocks/events.js
index bb8c529..39466e1 100644
--- a/src/resources/blocks/events.js
+++ b/src/resources/blocks/events.js
@@ -171,6 +171,90 @@ function register() {
const code = `setTimeout(async () => { ${BLOCKS} }, (${TIME} * 1000));`;
return `${code}\n`;
})
+
+ registerBlock(`${categoryPrefix}whenkeypressed`, {
+ message0: 'when %1 key is pressed %2 %3',
+ args0: [
+ {
+ "type": "field_dropdown",
+ "name": "KEY",
+ "options": keyBoard
+ },
+ {
+ "type": "input_dummy"
+ },
+ {
+ "type": "input_statement",
+ "name": "BLOCKS"
+ }
+ ],
+ nextStatement: null,
+ inputsInline: true,
+ colour: categoryColor,
+ }, (block) => {
+ const KEY = block.getFieldValue('KEY')
+ const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
+ const code = `document.addEventListener("keypress", event => {
+ ${KEY===""?`${BLOCKS}`:`if (event.key == '${KEY}') { ${BLOCKS}}`}});`;
+ return `${code}\n`;
+ })
}
+const keyBoard = [
+ ["ANY", ""],
+ ["SPACE", "32"],
+ ["UP ARROW", "38"],
+ ["DOWN ARROW", "40"],
+ ["LEFT ARROW", "37"],
+ ["RIGHT ARROW", "39"],
+ ["A", "65"],
+ ["B", "66"],
+ ["C", "67"],
+ ["D", "68"],
+ ["E", "69"],
+ ["F", "70"],
+ ["G", "71"],
+ ["H", "72"],
+ ["I", "73"],
+ ["J", "74"],
+ ["K", "75"],
+ ["L", "76"],
+ ["M", "77"],
+ ["N", "78"],
+ ["O", "79"],
+ ["P", "80"],
+ ["Q", "81"],
+ ["R", "82"],
+ ["S", "83"],
+ ["T", "84"],
+ ["U", "85"],
+ ["V", "86"],
+ ["W", "87"],
+ ["X", "88"],
+ ["Y", "89"],
+ ["Z", "90"],
+ ["0", "48"],
+ ["1", "49"],
+ ["2", "50"],
+ ["3", "51"],
+ ["4", "52"],
+ ["5", "53"],
+ ["6", "54"],
+ ["7", "55"],
+ ["8", "56"],
+ ["9", "57"],
+ ["F1", "112"],
+ ["F2", "113"],
+ ["F3", "114"],
+ ["F4", "115"],
+ ["F5", "116"],
+ ["F6", "117"],
+ ["F7", "118"],
+ ["F8", "119"],
+ ["F9", "120"],
+ ["F10", "121"],
+ ["F11", "122"],
+ ["F12", "123"],
+];
+
export default register;
diff --git a/src/resources/blocks/player.js b/src/resources/blocks/player.js
index 622f1f3..c319c32 100644
--- a/src/resources/blocks/player.js
+++ b/src/resources/blocks/player.js
@@ -76,6 +76,7 @@ function register() {
const MENU2 = block.getFieldValue('MENU2');
return [`ModAPI.player?ModAPI.player.dimension===${MENU2}:""`, javascriptGenerator.ORDER_ATOMIC];
})
+
registerBlock(`${categoryPrefix}username`, {
message0: 'username',
args0: [],
@@ -86,7 +87,7 @@ function register() {
return [`ModAPI.getProfileName()`, javascriptGenerator.ORDER_ATOMIC];
})
- registerBlock(`${categoryPrefix}keypressed`, {
+ registerBlock(`${categoryPrefix}whengamekeypressed`, {
message0: 'when in game key %1 pressed do %2 %3',
args0: [
{
@@ -116,9 +117,9 @@ function register() {
const keyBoard = [
["SPACE", "57"],
["UP ARROW", "200"],
- ["UP DOWN", "208"],
- ["UP LEFT", "203"],
- ["UP RIGHT", "205"],
+ ["DOWN ARROW", "208"],
+ ["LEFT ARROW", "203"],
+ ["RIGHT ARROW", "205"],
["A", "30"],
["B", "48"],
["C", "46"],
diff --git a/src/resources/blocks/sensing.js b/src/resources/blocks/sensing.js
index f6fc90d..54a8937 100644
--- a/src/resources/blocks/sensing.js
+++ b/src/resources/blocks/sensing.js
@@ -133,8 +133,81 @@ function register() {
}, (block) => {
return [`ModAPI.getFPS()`, javascriptGenerator.ORDER_ATOMIC];
})
+
+ registerBlock(`${categoryPrefix}keypressed`, {
+ message0: "is key %1 pressed?",
+ args0: [
+ {
+ "type": "field_dropdown",
+ "name": "KEY2",
+ "options": keyBoard
+ },
+ ],
+ output: "Boolean",
+ inputsInline: true,
+ colour: categoryColor
+ }, (block) => {
+ const KEY2 = block.getFieldValue('KEY2');
+ return [`pressedKeys[${KEY2}]===true?true:false`, javascriptGenerator.ORDER_ATOMIC];
+ })
}
+const keyBoard = [
+ ["SPACE", "32"],
+ ["UP ARROW", "38"],
+ ["DOWN ARROW", "40"],
+ ["LEFT ARROW", "37"],
+ ["RIGHT ARROW", "39"],
+ ["A", "65"],
+ ["B", "66"],
+ ["C", "67"],
+ ["D", "68"],
+ ["E", "69"],
+ ["F", "70"],
+ ["G", "71"],
+ ["H", "72"],
+ ["I", "73"],
+ ["J", "74"],
+ ["K", "75"],
+ ["L", "76"],
+ ["M", "77"],
+ ["N", "78"],
+ ["O", "79"],
+ ["P", "80"],
+ ["Q", "81"],
+ ["R", "82"],
+ ["S", "83"],
+ ["T", "84"],
+ ["U", "85"],
+ ["V", "86"],
+ ["W", "87"],
+ ["X", "88"],
+ ["Y", "89"],
+ ["Z", "90"],
+ ["0", "48"],
+ ["1", "49"],
+ ["2", "50"],
+ ["3", "51"],
+ ["4", "52"],
+ ["5", "53"],
+ ["6", "54"],
+ ["7", "55"],
+ ["8", "56"],
+ ["9", "57"],
+ ["F1", "112"],
+ ["F2", "113"],
+ ["F3", "114"],
+ ["F4", "115"],
+ ["F5", "116"],
+ ["F6", "117"],
+ ["F7", "118"],
+ ["F8", "119"],
+ ["F9", "120"],
+ ["F10", "121"],
+ ["F11", "122"],
+ ["F12", "123"],
+];
+
Blockly.Extensions.register('single_character_validation', function() {
this.getField('KEY').setValidator(function(newValue) {
return newValue.substring(Math.max(newValue.length - 1, 0),newValue.length);
diff --git a/src/resources/compiler/index.js b/src/resources/compiler/index.js
index 3fea8c3..01c32bd 100644
--- a/src/resources/compiler/index.js
+++ b/src/resources/compiler/index.js
@@ -14,9 +14,14 @@ class Compiler {
if (code.indexOf('ModAPI.player') > -1) {
start+= "ModAPI.require('player');";
}
- if (code.indexOf('variables["') > -1) {
+ if (code.indexOf('variables[') > -1) {
start+= 'let variables = [];';
}
+ if (code.indexOf('pressedKeys[') > -1) {
+ start+= `var pressedKeys = {};
+ window.onkeyup = function(e) { pressedKeys[e.keyCode] = false; }
+ window.onkeydown = function(e) { pressedKeys[e.keyCode] = true; }`;
+ }
if (code.indexOf('function onload() {') > -1) {
start+= 'onload();';
}
From cd9dea83d3f34ecc538cc6aac06d76df629cba74 Mon Sep 17 00:00:00 2001
From: Scratch-hv | Oeil-de-Lynx
<104771596+OeildeLynx31@users.noreply.github.com>
Date: Wed, 17 Apr 2024 13:26:10 +0000
Subject: [PATCH 02/16] Add while and until loop blocks in control category
And add a string input by default in display chat block
---
src/lib/Toolbox/Toolbox.xml | 10 +++++-
src/resources/blocks/control.js | 54 +++++++++++++++++++++++++++++++++
src/routes/+page.svelte | 4 +--
3 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index c087fb8..58dcb46 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -18,6 +18,8 @@
+
+
@@ -166,7 +168,13 @@
-
+
+
+
+ hello world!
+
+
+
diff --git a/src/resources/blocks/control.js b/src/resources/blocks/control.js
index 37c9eb4..cd05208 100644
--- a/src/resources/blocks/control.js
+++ b/src/resources/blocks/control.js
@@ -75,6 +75,60 @@ function register() {
return `${code}\n`;
})
+ registerBlock(`${categoryPrefix}while`, {
+ message0: 'while %1 do %2 %3',
+ args0: [
+ {
+ "type": "input_value",
+ "name": "CONDITION",
+ "check": "Boolean"
+ },
+ {
+ "type": "input_dummy"
+ },
+ {
+ "type": "input_statement",
+ "name": "BLOCKS"
+ }
+ ],
+ previousStatement: null,
+ nextStatement: null,
+ inputsInline: true,
+ colour: categoryColor
+ }, (block) => {
+ const CONDITION = javascriptGenerator.valueToCode(block, 'CONDITION', javascriptGenerator.ORDER_ATOMIC);
+ const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
+ const code = `do { ${BLOCKS} } while (${CONDITION})`;
+ return `${code}\n`;
+ })
+
+ registerBlock(`${categoryPrefix}until`, {
+ message0: 'until %1 do %2 %3',
+ args0: [
+ {
+ "type": "input_value",
+ "name": "CONDITION",
+ "check": "Boolean"
+ },
+ {
+ "type": "input_dummy"
+ },
+ {
+ "type": "input_statement",
+ "name": "BLOCKS"
+ }
+ ],
+ previousStatement: null,
+ nextStatement: null,
+ inputsInline: true,
+ colour: categoryColor
+ }, (block) => {
+ const CONDITION = javascriptGenerator.valueToCode(block, 'CONDITION', javascriptGenerator.ORDER_ATOMIC);
+ const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
+ const code = `do { ${BLOCKS} } while (!(${CONDITION}))`;
+ return `${code}\n`;
+ })
+
// if <> then {}
registerBlock(`${categoryPrefix}ifthen`, {
message0: 'if %1 then %2 %3',
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index c6831f1..17bd50a 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -86,8 +86,8 @@
registerBlocks();
registerFunctions();
registerDebug();
- registerPlayer()
- registerDisplay()
+ registerPlayer();
+ registerDisplay();
const EaglerCraftVersion = "1.3";
From 912e54780561e35e51beba2b627b3a09794670ef Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:37:02 +0330
Subject: [PATCH 03/16] Update Toolbox.xml
---
src/lib/Toolbox/Toolbox.xml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index df7eb09..afa8d07 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -30,10 +30,8 @@
-
From 8fb3e9783ff1f819874931d4253e5caafa07fb99 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:37:18 +0330
Subject: [PATCH 04/16] Update sensing.js
---
src/resources/blocks/sensing.js | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/resources/blocks/sensing.js b/src/resources/blocks/sensing.js
index f6fc90d..ed6afec 100644
--- a/src/resources/blocks/sensing.js
+++ b/src/resources/blocks/sensing.js
@@ -6,9 +6,8 @@ const categoryPrefix = 'sensing_';
const categoryColor = '#5CB1D6';
function register() {
- // when key pressed
- registerBlock(`${categoryPrefix}keypress`, {
- message0: 'when key %1 is pressed %2 %3',
+ registerBlock(`${categoryPrefix}keydown`, {
+ message0: 'when key %1 is down %2 %3',
args0: [
{
"type": "field_input",
@@ -32,7 +31,7 @@ function register() {
}, (block) => {
const KEY = block.getFieldValue('KEY')
const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
- const code = `document.addEventListener("keypress", event => {
+ const code = `window.addEventListener("keydown", event => {
if (event.key == '${KEY}') { ${BLOCKS} }
});`;
return `${code}\n`;
From 1b38081a928478a0353fdbfe02f5b29d5a0e7d93 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:49:56 +0330
Subject: [PATCH 05/16] Update display.js
---
src/resources/blocks/display.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/resources/blocks/display.js b/src/resources/blocks/display.js
index ab7354d..3a40c68 100644
--- a/src/resources/blocks/display.js
+++ b/src/resources/blocks/display.js
@@ -3,7 +3,7 @@ import registerBlock from '../register';
const categoryPrefix = 'display_';
const categoryColor = '#f73030';
-
+
function register() {
registerBlock(`${categoryPrefix}displaychattext`, {
message0: 'display %1 in chat',
From 10e2e589ce7c3a1dc70675a05c9c2a42c8d53b0d Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:52:55 +0330
Subject: [PATCH 06/16] Update package.json
---
package.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 674280a..0dd7980 100644
--- a/package.json
+++ b/package.json
@@ -16,10 +16,10 @@
},
"type": "module",
"dependencies": {
- "@blockly/continuous-toolbox": "^5.0.2",
- "@blockly/theme-dark": "^6.0.1",
- "@blockly/field-colour-hsv-sliders": "^4.1.6",
- "@blockly/workspace-minimap": "^0.1.5",
+ "@blockly/continuous-toolbox",
+ "@blockly/theme-dark"",
+ "@blockly/field-colour-hsv-sliders",
+ "@blockly/workspace-minimap",
"@sveltejs/adapter-vercel": "^3.0.2",
"file-saver": "^2.0.5",
"js-beautify": "^1.14.9",
From 576ff081bc8f65519c083160732220932e7a0f49 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:58:37 +0330
Subject: [PATCH 07/16] Update package.json
---
package.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 0dd7980..674280a 100644
--- a/package.json
+++ b/package.json
@@ -16,10 +16,10 @@
},
"type": "module",
"dependencies": {
- "@blockly/continuous-toolbox",
- "@blockly/theme-dark"",
- "@blockly/field-colour-hsv-sliders",
- "@blockly/workspace-minimap",
+ "@blockly/continuous-toolbox": "^5.0.2",
+ "@blockly/theme-dark": "^6.0.1",
+ "@blockly/field-colour-hsv-sliders": "^4.1.6",
+ "@blockly/workspace-minimap": "^0.1.5",
"@sveltejs/adapter-vercel": "^3.0.2",
"file-saver": "^2.0.5",
"js-beautify": "^1.14.9",
From 33f6b61f8d0c1297734735ab9982e185e65f0c75 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 17:58:58 +0330
Subject: [PATCH 08/16] Update package.json
---
package.json | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 674280a..76e095e 100644
--- a/package.json
+++ b/package.json
@@ -16,10 +16,7 @@
},
"type": "module",
"dependencies": {
- "@blockly/continuous-toolbox": "^5.0.2",
- "@blockly/theme-dark": "^6.0.1",
- "@blockly/field-colour-hsv-sliders": "^4.1.6",
- "@blockly/workspace-minimap": "^0.1.5",
+ "blockly",
"@sveltejs/adapter-vercel": "^3.0.2",
"file-saver": "^2.0.5",
"js-beautify": "^1.14.9",
From 9a3f31871eb1ca958eba04376d8e825fb22e5c77 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 18:00:02 +0330
Subject: [PATCH 09/16] Update package.json
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 76e095e..e5513f2 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
},
"type": "module",
"dependencies": {
- "blockly",
+ "blockly": "10.4.3",
"@sveltejs/adapter-vercel": "^3.0.2",
"file-saver": "^2.0.5",
"js-beautify": "^1.14.9",
From 79cc06429747b92deee3f6a094670ccee4252e1d Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 18:05:22 +0330
Subject: [PATCH 10/16] Update package.json
---
package.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index e5513f2..674280a 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,10 @@
},
"type": "module",
"dependencies": {
- "blockly": "10.4.3",
+ "@blockly/continuous-toolbox": "^5.0.2",
+ "@blockly/theme-dark": "^6.0.1",
+ "@blockly/field-colour-hsv-sliders": "^4.1.6",
+ "@blockly/workspace-minimap": "^0.1.5",
"@sveltejs/adapter-vercel": "^3.0.2",
"file-saver": "^2.0.5",
"js-beautify": "^1.14.9",
From d0a252739ce90f8fd85a2e143467cb4e379cd236 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 18:41:20 +0330
Subject: [PATCH 11/16] Update sensing.js
---
src/resources/blocks/sensing.js | 31 -------------------------------
1 file changed, 31 deletions(-)
diff --git a/src/resources/blocks/sensing.js b/src/resources/blocks/sensing.js
index ed6afec..73302a1 100644
--- a/src/resources/blocks/sensing.js
+++ b/src/resources/blocks/sensing.js
@@ -6,37 +6,6 @@ const categoryPrefix = 'sensing_';
const categoryColor = '#5CB1D6';
function register() {
- registerBlock(`${categoryPrefix}keydown`, {
- message0: 'when key %1 is down %2 %3',
- args0: [
- {
- "type": "field_input",
- "name": "KEY",
- "spellcheck": false
- },
- {
- "type": "input_dummy"
- },
- {
- "type": "input_statement",
- "name": "BLOCKS"
- }
- ],
- nextStatement: null,
- inputsInline: true,
- colour: categoryColor,
- extensions: [
- 'single_character_validation',
- ],
- }, (block) => {
- const KEY = block.getFieldValue('KEY')
- const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
- const code = `window.addEventListener("keydown", event => {
- if (event.key == '${KEY}') { ${BLOCKS} }
- });`;
- return `${code}\n`;
- })
-
// alert
registerBlock(`${categoryPrefix}alert`, {
message0: 'alert %1',
From 0e2ba3074d0823043b1758b56c6d69a698990d95 Mon Sep 17 00:00:00 2001
From: radmanplays <95340057+radmanplays@users.noreply.github.com>
Date: Wed, 17 Apr 2024 18:57:08 +0330
Subject: [PATCH 12/16] Update events.js
---
src/resources/blocks/events.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/resources/blocks/events.js b/src/resources/blocks/events.js
index 39466e1..0fe0cd1 100644
--- a/src/resources/blocks/events.js
+++ b/src/resources/blocks/events.js
@@ -173,7 +173,7 @@ function register() {
})
registerBlock(`${categoryPrefix}whenkeypressed`, {
- message0: 'when %1 key is pressed %2 %3',
+ message0: 'when %1 key is down %2 %3',
args0: [
{
"type": "field_dropdown",
@@ -194,7 +194,7 @@ function register() {
}, (block) => {
const KEY = block.getFieldValue('KEY')
const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
- const code = `document.addEventListener("keypress", event => {
+ const code = `window.addEventListener("keydown", event => {
${KEY===""?`${BLOCKS}`:`if (event.key == '${KEY}') { ${BLOCKS}}`}});`;
return `${code}\n`;
})
From 2e552aedbb072dd8aa18afe84d1eddb6790fd0d9 Mon Sep 17 00:00:00 2001
From: radmanplays
Date: Wed, 17 Apr 2024 19:06:42 +0330
Subject: [PATCH 13/16] Revert "Update Toolbox.xml"
This reverts commit 912e54780561e35e51beba2b627b3a09794670ef.
---
src/lib/Toolbox/Toolbox.xml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index 0af87f8..58dcb46 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -34,8 +34,10 @@
-
+
From 7456384e8e57293ac38a173aa0ce664646807b84 Mon Sep 17 00:00:00 2001
From: radmanplays
Date: Wed, 17 Apr 2024 19:07:51 +0330
Subject: [PATCH 14/16] Update sensing.js
---
src/resources/blocks/sensing.js | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/src/resources/blocks/sensing.js b/src/resources/blocks/sensing.js
index 66cd0c9..54a8937 100644
--- a/src/resources/blocks/sensing.js
+++ b/src/resources/blocks/sensing.js
@@ -6,6 +6,38 @@ const categoryPrefix = 'sensing_';
const categoryColor = '#5CB1D6';
function register() {
+ // when key pressed
+ registerBlock(`${categoryPrefix}keypress`, {
+ message0: 'when key %1 is pressed %2 %3',
+ args0: [
+ {
+ "type": "field_input",
+ "name": "KEY",
+ "spellcheck": false
+ },
+ {
+ "type": "input_dummy"
+ },
+ {
+ "type": "input_statement",
+ "name": "BLOCKS"
+ }
+ ],
+ nextStatement: null,
+ inputsInline: true,
+ colour: categoryColor,
+ extensions: [
+ 'single_character_validation',
+ ],
+ }, (block) => {
+ const KEY = block.getFieldValue('KEY')
+ const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
+ const code = `document.addEventListener("keypress", event => {
+ if (event.key == '${KEY}') { ${BLOCKS} }
+ });`;
+ return `${code}\n`;
+ })
+
// alert
registerBlock(`${categoryPrefix}alert`, {
message0: 'alert %1',
From 4a85e06861f3f66303770b22a15473f5f1225a9f Mon Sep 17 00:00:00 2001
From: radmanplays
Date: Wed, 17 Apr 2024 19:07:58 +0330
Subject: [PATCH 15/16] Revert "Update display.js"
This reverts commit 1b38081a928478a0353fdbfe02f5b29d5a0e7d93.
---
src/resources/blocks/display.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/resources/blocks/display.js b/src/resources/blocks/display.js
index 3a40c68..ab7354d 100644
--- a/src/resources/blocks/display.js
+++ b/src/resources/blocks/display.js
@@ -3,7 +3,7 @@ import registerBlock from '../register';
const categoryPrefix = 'display_';
const categoryColor = '#f73030';
-
+
function register() {
registerBlock(`${categoryPrefix}displaychattext`, {
message0: 'display %1 in chat',
From 787ac6a2a774da71eb3b02d7b30d4275aefc6e93 Mon Sep 17 00:00:00 2001
From: Scratch-hv | Oeil-de-Lynx
<104771596+OeildeLynx31@users.noreply.github.com>
Date: Wed, 17 Apr 2024 19:42:22 +0200
Subject: [PATCH 16/16] Replace event.key by event.keyCode
following advice from EchoGPT, which is a good AI.
---
src/resources/blocks/events.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/resources/blocks/events.js b/src/resources/blocks/events.js
index 0fe0cd1..3222db9 100644
--- a/src/resources/blocks/events.js
+++ b/src/resources/blocks/events.js
@@ -195,7 +195,7 @@ function register() {
const KEY = block.getFieldValue('KEY')
const BLOCKS = javascriptGenerator.statementToCode(block, 'BLOCKS');
const code = `window.addEventListener("keydown", event => {
- ${KEY===""?`${BLOCKS}`:`if (event.key == '${KEY}') { ${BLOCKS}}`}});`;
+ ${KEY===""?`${BLOCKS}`:`if (event.keyCode == '${KEY}') { ${BLOCKS}}`}});`;
return `${code}\n`;
})
}