Merge pull request #5 from radmanplays/main

add a lot of new blocks and fix bugs
This commit is contained in:
Scratch-hv | Oeil-de-Lynx 2024-04-18 20:12:54 +02:00 committed by GitHub
commit db0094771a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 105 additions and 5 deletions

View file

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

View file

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

View file

@ -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 = [

View file

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

View file

@ -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 = [

View file

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