mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 14:38:12 +00:00
108 lines
4.5 KiB
JavaScript
108 lines
4.5 KiB
JavaScript
// this file not for generator only
|
|
|
|
const { luaGenerator } = require('blockly/lua');
|
|
|
|
// Check if luaGenerator.forBlock is defined and initialize if necessary
|
|
if (!luaGenerator.forBlock) {
|
|
luaGenerator.forBlock = {};
|
|
}
|
|
|
|
luaGenerator.forBlock['textutils_slow_write'] = function(block, generator) {
|
|
var text = generator.valueToCode(block, 'TEXT', generator.ORDER_ATOMIC);
|
|
var rate = generator.valueToCode(block, 'RATE', generator.ORDER_ATOMIC);
|
|
|
|
return `textutils.slowWrite(${text}, ${rate})\n`;
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_slow_print'] = function(block, generator) {
|
|
var text = generator.valueToCode(block, 'TEXT', generator.ORDER_ATOMIC);
|
|
var rate = generator.valueToCode(block, 'RATE', generator.ORDER_ATOMIC);
|
|
|
|
return `textutils.slowPrint(${text}, ${rate})\n`;
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_format_time'] = function(block, generator) {
|
|
var time = generator.valueToCode(block, 'TIME', generator.ORDER_ATOMIC);
|
|
var is24hour = generator.valueToCode(block, '24H', generator.ORDER_ATOMIC);
|
|
|
|
return [`textutils.formatTime(${time}, ${is24hour})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_paged_print'] = function(block, generator) {
|
|
var text = generator.valueToCode(block, 'TEXT', generator.ORDER_ATOMIC);
|
|
var freeline = generator.valueToCode(block, 'FREELINES', generator.ORDER_ATOMIC);
|
|
|
|
return `textutils.pagedPrint(${text}, ${freeline})\n`;
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_tabulate'] = function(block, generator) {
|
|
var args = generator.valueToCode(block, 'ARGS', generator.ORDER_ATOMIC);
|
|
|
|
return `textutils.tabulate(${args})\n`;
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_paged_tabulate'] = function(block, generator) {
|
|
var args = generator.valueToCode(block, 'ARGS', generator.ORDER_ATOMIC);
|
|
|
|
return `textutils.pagedTabulate(${args})\n`;
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_empty_json_array'] = function(block, generator) {
|
|
return [`textutils.textutils_empty_json_array`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_json_null'] = function(block, generator) {
|
|
return [`textutils.json_null`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_serialize'] = function(block, generator) {
|
|
var object = generator.valueToCode(block, 'OBJECT', generator.ORDER_ATOMIC);
|
|
var compact = block.getFieldValue('COMPACT') == 'TRUE';
|
|
var repetitions = block.getFieldValue('ALLOWREPETI') == 'TRUE';
|
|
|
|
|
|
return [`textutils.serialize(${object}, {compact=${compact}, allow_repetitions=${repetitions}})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_unserialize'] = function(block, generator) {
|
|
var object = generator.valueToCode(block, 'OBJECT', generator.ORDER_ATOMIC);
|
|
|
|
return [`textutils.unserialize(${object})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_serialize_json'] = function(block, generator) {
|
|
var object = generator.valueToCode(block, 'OBJECT', generator.ORDER_ATOMIC);
|
|
var nbt = block.getFieldValue('NBT') == 'TRUE';
|
|
var unicode = block.getFieldValue('UNICODE') == 'TRUE';
|
|
var repetitions = block.getFieldValue('ALLOWREPETI') == 'TRUE';
|
|
|
|
return [`textutils.serializeJSON(${object}, {nbt_style=${nbt}, unicode_strings=${unicode}, allow_repetitions=${repetitions}})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_unserialize_json'] = function(block, generator) {
|
|
var object = generator.valueToCode(block, 'OBJECT', generator.ORDER_ATOMIC);
|
|
var nbt = block.getFieldValue('NBT') == 'TRUE';
|
|
var parse_null = block.getFieldValue('PARSENULL') == 'TRUE';
|
|
var parse_empty_array = block.getFieldValue('PARSEEA') == 'TRUE';
|
|
|
|
return [`textutils.unserializeJSON(${object}, {nbt_style=${nbt}, parse_null=${parse_null}, parse_empty_array=${parse_empty_array}})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_url_encode'] = function(block, generator) {
|
|
var url = generator.valueToCode(block, 'URL', generator.ORDER_ATOMIC);
|
|
|
|
return [`textutils.urlEncode(${url})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['textutils_complete'] = function(block, generator) {
|
|
var value_search_text = generator.valueToCode(block, 'SEARCH_TEXT', Blockly.Lua.ORDER_ATOMIC) || '""';
|
|
var value_search_table = generator.valueToCode(block, 'SEARCH_TABLE', Blockly.Lua.ORDER_ATOMIC) || '_G';
|
|
|
|
if (value_search_table == "") {
|
|
return [`textutils.complete(${value_search_text})`];
|
|
} else {
|
|
return [`textutils.complete(${value_search_text}, ${value_search_table})`];
|
|
}
|
|
};
|
|
|