conversions category

This commit is contained in:
sussy layers dev 2023-11-11 11:04:33 +00:00 committed by GitHub
commit 53fc1b5de0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 96 additions and 0 deletions

View file

@ -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" />

View 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;

View file

@ -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();