From 5152fa6feec5dcf42024474c9ea03f3cb29d7314 Mon Sep 17 00:00:00 2001
From: sussy layers dev <72522395+jwklong@users.noreply.github.com>
Date: Tue, 28 Nov 2023 15:42:32 +0000
Subject: [PATCH] array set
---
src/lib/Toolbox/Toolbox.xml | 1 +
src/resources/blocks/json.js | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index a80839b..9a81a0f 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -79,6 +79,7 @@
+
diff --git a/src/resources/blocks/json.js b/src/resources/blocks/json.js
index 5741e35..c59fa31 100644
--- a/src/resources/blocks/json.js
+++ b/src/resources/blocks/json.js
@@ -82,6 +82,35 @@ function register() {
return [`(${X || "[]"}.push(${Y || '""'}))`, javascriptGenerator.ORDER_ATOMIC];
})
+ // set
+ registerBlock(`${categoryPrefix}arrayset`, {
+ message0: 'set %1 to %2 in %3',
+ args0: [
+ {
+ "type": "input_value",
+ "name": "X",
+ "check": "Number"
+ },
+ {
+ "type": "input_value",
+ "name": "Y",
+ },
+ {
+ "type": "input_value",
+ "name": "Z",
+ "check": "JSONArray"
+ },
+ ],
+ output: "JSONArray",
+ inputsInline: true,
+ colour: categoryColor
+ }, (block) => {
+ const X = javascriptGenerator.valueToCode(block, 'X', javascriptGenerator.ORDER_ATOMIC);
+ const Y = javascriptGenerator.valueToCode(block, 'Y', javascriptGenerator.ORDER_ATOMIC);
+ const Z = javascriptGenerator.valueToCode(block, 'Z', javascriptGenerator.ORDER_ATOMIC);
+ return [`(() => { var z = ${Z}; z[${X}] = ${Y}; return z })()`, javascriptGenerator.ORDER_ATOMIC];
+ })
+
// get
registerBlock(`${categoryPrefix}arrayget`, {
message0: 'get %1 from array %2',