Merge pull request #5 from radmanplays/main
add a lot of new blocks and fix bugs
This commit is contained in:
commit
db0094771a
6 changed files with 105 additions and 5 deletions
|
|
@ -3,7 +3,8 @@
|
|||
<block type="events_modload" />
|
||||
<block type="events_load" />
|
||||
<sep gap="48"></sep>
|
||||
<block type="events_whenkeypressed" />
|
||||
<block type="events_whenkeydown" />
|
||||
<block type="events_whenkeyup" />
|
||||
<sep gap="48"></sep>
|
||||
<block type="events_eachTicks" />
|
||||
<block type="events_frame" />
|
||||
|
|
@ -85,6 +86,7 @@
|
|||
<sep gap="48"></sep>
|
||||
<block type="operators_join" />
|
||||
<block type="operators_letter" />
|
||||
<block type="operators_addblock" />
|
||||
</category>
|
||||
<category name="Conversions" colour="#8BC059">
|
||||
<block type="conversions_tonumber" />
|
||||
|
|
@ -155,10 +157,12 @@
|
|||
<block type="debug_commentstack" />
|
||||
<sep gap="48"></sep>
|
||||
<block type="debug_catch" />
|
||||
<block type="debug_sendtowebhook" />
|
||||
</category>
|
||||
<sep></sep>
|
||||
<category name="Player" colour="#5468ff">
|
||||
<block type="player_username"/>
|
||||
<block type="player_reload"/>
|
||||
<block type="player_ingame"/>
|
||||
<sep gap="48"></sep>
|
||||
<block type="player_position"/>
|
||||
|
|
|
|||
|
|
@ -162,6 +162,28 @@ ${BLOCKS}*/;`;
|
|||
const FUNC = javascriptGenerator.statementToCode(block, 'FUNC');
|
||||
return [`await (async () => { try { ${FUNC} return true; } catch { return false; } })()`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
registerBlock(`${categoryPrefix}sendtowebhook`, {
|
||||
message0: 'send %1 to webhook url %2',
|
||||
args0: [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "TEXT1"
|
||||
},
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "TEXT2"
|
||||
}
|
||||
],
|
||||
previousStatement: null,
|
||||
nextStatement: null,
|
||||
inputsInline: true,
|
||||
colour: categoryColor,
|
||||
}, (block) => {
|
||||
const TEXT1 = javascriptGenerator.valueToCode(block, 'TEXT1', javascriptGenerator.ORDER_ATOMIC);
|
||||
const TEXT2 = javascriptGenerator.valueToCode(block, 'TEXT2', javascriptGenerator.ORDER_ATOMIC);
|
||||
const code = `sendData(${TEXT1},${TEXT2});`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
}
|
||||
|
||||
export default register;
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ function register() {
|
|||
return `${code}\n`;
|
||||
})
|
||||
|
||||
registerBlock(`${categoryPrefix}whenkeypressed`, {
|
||||
registerBlock(`${categoryPrefix}whenkeydown`, {
|
||||
message0: 'when %1 key is down %2 %3',
|
||||
args0: [
|
||||
{
|
||||
|
|
@ -198,6 +198,32 @@ function register() {
|
|||
${KEY===""?`${BLOCKS}`:`if (event.keyCode == '${KEY}') { ${BLOCKS}}`}});`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
registerBlock(`${categoryPrefix}whenkeyup`, {
|
||||
message0: 'when %1 key is up %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 = `window.addEventListener("keyup", event => {
|
||||
${KEY===""?`${BLOCKS}`:`if (event.keyCode == '${KEY}') { ${BLOCKS}}`}});`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
}
|
||||
|
||||
const keyBoard = [
|
||||
|
|
|
|||
|
|
@ -506,6 +506,30 @@ function register() {
|
|||
|
||||
return [`Math.floor(Math.random()*(${Y} - ${X} + 1) + ${X})`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
registerBlock(`${categoryPrefix}addblock`, {
|
||||
message0: '%1 + %2',
|
||||
args0: [
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "X",
|
||||
"check": "Number"
|
||||
},
|
||||
{
|
||||
"type": "input_value",
|
||||
"name": "Y",
|
||||
"check": "Number"
|
||||
}
|
||||
],
|
||||
previousStatement: null,
|
||||
nextStatement: null,
|
||||
inputsInline: true,
|
||||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const X = javascriptGenerator.valueToCode(block, 'X', javascriptGenerator.ORDER_ATOMIC);
|
||||
const Y = javascriptGenerator.valueToCode(block, 'Y', javascriptGenerator.ORDER_ATOMIC);
|
||||
const code = `${X || 0} += ${Y || 0};`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
}
|
||||
|
||||
export default register;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ function register() {
|
|||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const MENU = block.getFieldValue('MENU');
|
||||
return [`(ModAPI.player?ModAPI.player.${MENU}:"")`, javascriptGenerator.ORDER_ATOMIC];
|
||||
return [`ModAPI.player.${MENU}`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
|
||||
registerBlock(`${categoryPrefix}motion`, {
|
||||
|
|
@ -53,7 +53,7 @@ function register() {
|
|||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const MENU = block.getFieldValue('MENU');
|
||||
return [`(ModAPI.player?ModAPI.player.motion${MENU}:"")`, javascriptGenerator.ORDER_ATOMIC];
|
||||
return [`ModAPI.player.motion${MENU}`, javascriptGenerator.ORDER_ATOMIC];
|
||||
})
|
||||
|
||||
registerBlock(`${categoryPrefix}indimension`, {
|
||||
|
|
@ -112,6 +112,17 @@ function register() {
|
|||
if(ev.key == ${MENU3}){${BLOCKS}}});`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
registerBlock(`${categoryPrefix}reload`, {
|
||||
message0: 'load new player values into game',
|
||||
args0: [],
|
||||
previousStatement: null,
|
||||
nextStatement: null,
|
||||
inputsInline: true,
|
||||
colour: categoryColor
|
||||
}, (block) => {
|
||||
const code = `ModAPI.player.reload()`;
|
||||
return `${code}\n`;
|
||||
})
|
||||
}
|
||||
|
||||
const keyBoard = [
|
||||
|
|
|
|||
|
|
@ -14,6 +14,19 @@ class Compiler {
|
|||
if (code.indexOf('ModAPI.player') > -1) {
|
||||
start+= "ModAPI.require('player');";
|
||||
}
|
||||
if (code.indexOf('sendData(') > -1) {
|
||||
start+= `function sendData(message,url) {
|
||||
var request = new XMLHttpRequest();
|
||||
request.open("POST", url);
|
||||
request.setRequestHeader("Content-type", "application/json");
|
||||
|
||||
var params = {
|
||||
content: message
|
||||
};
|
||||
|
||||
request.send(JSON.stringify(params));
|
||||
}`;
|
||||
}
|
||||
if (code.indexOf('variables[') > -1) {
|
||||
start+= 'let variables = [];';
|
||||
}
|
||||
|
|
@ -70,4 +83,4 @@ class Compiler {
|
|||
}
|
||||
}
|
||||
|
||||
export default Compiler;
|
||||
export default Compiler;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue