mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 06:28:14 +00:00
update 1.1.3 new block function for table and new block
new block: CCColors
This commit is contained in:
parent
aee88bcdae
commit
18200b2b51
63
blocks/CCColors/block_design.json
Normal file
63
blocks/CCColors/block_design.json
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"colors_color_picker": {
|
||||
"message0": "Color %1",
|
||||
"args0": [
|
||||
{
|
||||
"type": "field_dropdown",
|
||||
"name": "COLOR",
|
||||
"options": [
|
||||
["White", "colors.white"],
|
||||
["Orange", "colors.orange"],
|
||||
["Magenta", "colors.magenta"],
|
||||
["Light blue", "colors.lightBlue"],
|
||||
["Yellow", "colors.yellow"],
|
||||
["Lime", "colors.lime"],
|
||||
["Pink", "colors.pink"],
|
||||
["Gray", "colors.gray"],
|
||||
["Light gray", "colors.lightGray"],
|
||||
["Cyan", "colors.cyan"],
|
||||
["Purple", "colors.purple"],
|
||||
["Blue", "colors.blue"],
|
||||
["Brown", "colors.brown"],
|
||||
["Green", "colors.green"],
|
||||
["Red", "colors.red"],
|
||||
["Black", "colors.black"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "CCColors",
|
||||
"colour": 192,
|
||||
"tooltip": "Pick color value"
|
||||
},
|
||||
"colors_combine": {
|
||||
"message0": "Combine color from %1",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "COLORARRAY",
|
||||
"check": "Array"
|
||||
}
|
||||
],
|
||||
"output": "CCColors",
|
||||
"colour": 192,
|
||||
"tooltip": "Combines a set of colors (or sets of colors) into a larger set."
|
||||
},
|
||||
"colors_subtract": {
|
||||
"message0": "Subtract color %1 from %2",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "COLORARRAY",
|
||||
"check": "Array"
|
||||
},
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "COLOR",
|
||||
"check": "CCColors"
|
||||
}
|
||||
],
|
||||
"output": "CCColors",
|
||||
"colour": 192,
|
||||
"tooltip": "Removes one or more colors (or sets of colors) from an initial set."
|
||||
}
|
||||
}
|
26
blocks/CCColors/generator.js
Normal file
26
blocks/CCColors/generator.js
Normal file
@ -0,0 +1,26 @@
|
||||
const { luaGenerator } = require('blockly/lua');
|
||||
|
||||
// Check if luaGenerator.forBlock is defined and initialize if necessary
|
||||
if (!luaGenerator.forBlock) {
|
||||
luaGenerator.forBlock = {};
|
||||
}
|
||||
|
||||
luaGenerator.forBlock['colors_color_picker'] = function(block, generator) {
|
||||
var color = block.getFieldValue('COLOR');
|
||||
|
||||
return [color, generator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['colors_combine'] = function(block, generator) {
|
||||
var colorArray = generator.valueToCode(block, 'COLORARRAY', generator.ORDER_ATOMIC);
|
||||
|
||||
return [`colors.combine(table.unpack(${colorArray}))`, generator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['colors_subtract'] = function(block, generator) {
|
||||
var colorArray = generator.valueToCode(block, 'COLORARRAY', generator.ORDER_ATOMIC);
|
||||
var color = generator.valueToCode(block, 'COLOR', generator.ORDER_ATOMIC);
|
||||
|
||||
return [`colors.subtract(${color}, table.unpack(${colorArray}))`, generator.ORDER_NONE];
|
||||
};
|
||||
|
22
blocks/CCColors/index.json
Normal file
22
blocks/CCColors/index.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "Colors",
|
||||
"author": "DPSoftware Foundation",
|
||||
"description": "Constants and functions for colour values",
|
||||
"version": "0.5",
|
||||
"category": "Display",
|
||||
"keyword": "Colors",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"peripherals": false,
|
||||
"library": true,
|
||||
"require_network": false,
|
||||
"dependencies": {},
|
||||
"design_for_computer": {
|
||||
"basic": false,
|
||||
"adv": true,
|
||||
"command": false,
|
||||
"pocket": false,
|
||||
"advpocket": true,
|
||||
"turtle": false,
|
||||
"advturtle": true
|
||||
}
|
||||
}
|
7
blocks/CCColors/toolbox.xml
Normal file
7
blocks/CCColors/toolbox.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<xml id="toolbox" style="display: none;">
|
||||
<category name="Colors" colour="192">
|
||||
<block type="colors_color_picker"></block>
|
||||
<block type="colors_combine"></block>
|
||||
<block type="colors_subtract"></block>
|
||||
</category>
|
||||
</xml>
|
@ -15,7 +15,7 @@
|
||||
"helpUrl": ""
|
||||
},
|
||||
"sys_utils_table_variable_pack": {
|
||||
"message0": "Pack %1 to Table",
|
||||
"message0": "Pack args %1 to Table",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
@ -24,10 +24,10 @@
|
||||
}
|
||||
],
|
||||
"output": "Array",
|
||||
"colour": 220
|
||||
"colour": 260
|
||||
},
|
||||
"sys_utils_get_value_from_table_with_index": {
|
||||
"message0": "UnPack %1 to Value with index/key %2",
|
||||
"message0": "UnPack args %1 to Value with index/key %2",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
@ -41,7 +41,7 @@
|
||||
}
|
||||
],
|
||||
"output": null,
|
||||
"colour": 220
|
||||
"colour": 260
|
||||
},
|
||||
"sys_utils_get_type": {
|
||||
"message0": "Get type of %1",
|
||||
@ -53,5 +53,49 @@
|
||||
],
|
||||
"output": "String",
|
||||
"colour": 220
|
||||
},
|
||||
"sys_table_unpack_to_args": {
|
||||
"message0": "UnPack table %1 to Args",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "TABLE",
|
||||
"check": "Array"
|
||||
}
|
||||
],
|
||||
"output": "Multiple",
|
||||
"colour": 260
|
||||
},
|
||||
"sys_table_add_key_value": {
|
||||
"message0": "Add key %1 with data %2",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "KEY",
|
||||
"check": ["String", "Number"]
|
||||
},
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "VALUE"
|
||||
}
|
||||
],
|
||||
"output": "Array_Pair",
|
||||
"colour": 260
|
||||
},
|
||||
"sys_table_append_data": {
|
||||
"message0": "Append %1 to table %2",
|
||||
"args0": [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "DATA"
|
||||
},
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "TABLE",
|
||||
"check": "Array"
|
||||
}
|
||||
],
|
||||
"output": "Array",
|
||||
"colour": 260
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ luaGenerator.forBlock['sys_sleep'] = function(block, generator) {
|
||||
luaGenerator.forBlock['sys_utils_table_variable_pack'] = function(block, generator) {
|
||||
var args = generator.valueToCode(block, 'RETURN_ARGS', generator.ORDER_NONE);
|
||||
|
||||
return [`{${args}}`, luaGenerator.ORDER_NONE];
|
||||
return [`table.pack(${arg})`, luaGenerator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['sys_utils_get_value_from_table_with_index'] = function(block, generator) {
|
||||
@ -30,4 +30,31 @@ luaGenerator.forBlock['sys_utils_get_type'] = function(block, generator) {
|
||||
var input = generator.valueToCode(block, 'INPUT', generator.ORDER_NONE);
|
||||
|
||||
return [`type(${input})`, luaGenerator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['sys_table_unpack_to_args'] = function(block, generator) {
|
||||
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||
|
||||
return [`table.unpack(${table})`, luaGenerator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['sys_table_add_key_value'] = function(block, generator) {
|
||||
var key = generator.valueToCode(block, 'KEY', generator.ORDER_NONE);
|
||||
var value = generator.valueToCode(block, 'VALUE', generator.ORDER_NONE);
|
||||
|
||||
return [`[${key}] = ${value}`, luaGenerator.ORDER_NONE];
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['sys_table_append_data'] = function(block, generator) {
|
||||
var data = generator.valueToCode(block, 'DATA', generator.ORDER_NONE);
|
||||
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||
|
||||
return `table.insert(${table}, ${data})\n`;
|
||||
};
|
||||
|
||||
luaGenerator.forBlock['sys_table_append_data'] = function(block, generator) {
|
||||
var data = generator.valueToCode(block, 'DATA', generator.ORDER_NONE);
|
||||
var table = generator.valueToCode(block, 'TABLE', generator.ORDER_NONE);
|
||||
|
||||
return `table.insert(${table}, ${data})\n`;
|
||||
};
|
@ -1,14 +1,19 @@
|
||||
<xml id="toolbox" style="display: none;">
|
||||
<category name="Utils" colour="220">
|
||||
<block type="sys_utils_table_variable_pack"></block>
|
||||
<block type="sys_utils_get_value_from_table_with_index">
|
||||
<value name="INDEX">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
<category name="Basic" colour="110">
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">abc</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_prompt_ext">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">abc</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="sys_utils_get_type"></block>
|
||||
</category>
|
||||
<category name="Control" colour="38">
|
||||
<block type="sys_sleep">
|
||||
@ -246,21 +251,7 @@
|
||||
<shadow type="text"></shadow>
|
||||
</value>
|
||||
</block>
|
||||
<label text="Input/Output:" web-class="ioLabel"></label>
|
||||
<block type="text_print">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">abc</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="text_prompt_ext">
|
||||
<value name="TEXT">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">abc</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
|
||||
</category>
|
||||
<category name="Table" colour="260">
|
||||
<block type="lists_create_with">
|
||||
@ -313,6 +304,20 @@
|
||||
</block>
|
||||
<block type="lists_sort"></block>
|
||||
<block type="lists_reverse"></block>
|
||||
<block type="sys_utils_table_variable_pack"></block>
|
||||
<block type="sys_utils_get_value_from_table_with_index">
|
||||
<value name="INDEX">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="sys_table_unpack_to_args"></block>
|
||||
<block type="sys_table_add_key_value"></block>
|
||||
<block type="sys_table_append_data"></block>
|
||||
</category>
|
||||
<category name="Utils" colour="220">
|
||||
<block type="sys_utils_get_type"></block>
|
||||
</category>
|
||||
<sep></sep>
|
||||
<category name="Variables" custom="VARIABLE" colour="330">
|
||||
|
Loading…
x
Reference in New Issue
Block a user