conversions category
This commit is contained in:
parent
569fd47140
commit
53fc1b5de0
3 changed files with 96 additions and 0 deletions
|
|
@ -51,6 +51,12 @@
|
|||
<sep gap="48"></sep>
|
||||
<block type="operators_join" />
|
||||
</category>
|
||||
<category name="Conversions" colour="#8BC059">
|
||||
<block type="conversions_tonumber" />
|
||||
<block type="conversions_tostring" />
|
||||
<sep gap="48"></sep>
|
||||
<block type="conversions_time" />
|
||||
</category>
|
||||
<category name="Variables" colour="#FF8C1A">
|
||||
<block type="variable_set" />
|
||||
<block type="variable_get" />
|
||||
|
|
|
|||
88
src/resources/blocks/conversions.js
Normal file
88
src/resources/blocks/conversions.js
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
import javascriptGenerator from '../javascriptGenerator';
|
||||
import registerBlock from '../register';
|
||||
|
||||
const categoryPrefix = 'conversions_';
|
||||
const categoryColor = '#8BC059';
|
||||
|
||||
function register() {
|
||||
// tonumber
|
||||
registerBlock(`${categoryPrefix}tonumber`, {
|
||||
message0: "%1 to number",
|
||||
args0: [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "VAL"
|
||||
},
|
||||
],
|
||||
output: "Number",
|
||||
inputsInline: true,
|
||||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const VAL = javascriptGenerator.valueToCode(block, 'VAL', javascriptGenerator.ORDER_ATOMIC);
|
||||
|
||||
return [`Number(${VAL})`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
|
||||
// tostring
|
||||
registerBlock(`${categoryPrefix}tostring`, {
|
||||
message0: "%1 to string",
|
||||
args0: [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "VAL"
|
||||
},
|
||||
],
|
||||
output: "String",
|
||||
inputsInline: true,
|
||||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const VAL = javascriptGenerator.valueToCode(block, 'VAL', javascriptGenerator.ORDER_ATOMIC);
|
||||
|
||||
return [`String(${VAL})`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
|
||||
// convert time lengths
|
||||
registerBlock(`${categoryPrefix}time`, {
|
||||
message0: "%1 %2 to %3",
|
||||
args0: [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "VAL",
|
||||
"check": "Number"
|
||||
},
|
||||
{
|
||||
"type": "field_dropdown",
|
||||
"name": "MENU1",
|
||||
"options": [
|
||||
[ "milliseconds", 1 ],
|
||||
[ "seconds", 1000 ],
|
||||
[ "minutes", 60000 ],
|
||||
[ "hours", 3600000 ],
|
||||
[ "days", 86400000 ],
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "field_dropdown",
|
||||
"name": "MENU2",
|
||||
"options": [
|
||||
[ "milliseconds", 1 ],
|
||||
[ "seconds", 1000 ],
|
||||
[ "minutes", 60000 ],
|
||||
[ "hours", 3600000 ],
|
||||
[ "days", 86400000 ],
|
||||
]
|
||||
},
|
||||
],
|
||||
output: "Number",
|
||||
inputsInline: true,
|
||||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const VAL = javascriptGenerator.valueToCode(block, 'VAL', javascriptGenerator.ORDER_ATOMIC);
|
||||
const MENU1 = block.getFieldValue('MENU1');
|
||||
const MENU2 = block.getFieldValue('MENU2');
|
||||
|
||||
return [`(${VAL} * ${MENU1} / ${MENU2})`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
}
|
||||
|
||||
export default register;
|
||||
|
|
@ -57,6 +57,7 @@
|
|||
import registerSound from "../resources/blocks/sound.js";
|
||||
import registerLiterals from "../resources/blocks/literals.js";
|
||||
import registerOperators from "../resources/blocks/operators.js";
|
||||
import registerConversions from "../resources/blocks/conversions.js";
|
||||
import registerVariables from "../resources/blocks/variables.js";
|
||||
import registerBlocks from "../resources/blocks/blocks.js";
|
||||
import registerDebug from "../resources/blocks/debug.js";
|
||||
|
|
@ -68,6 +69,7 @@
|
|||
registerSensing();
|
||||
registerLiterals();
|
||||
registerOperators();
|
||||
registerConversions();
|
||||
registerVariables();
|
||||
registerBlocks();
|
||||
registerDebug();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue