mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 22:48:13 +00:00
Added 4 module - CCPeripheral - CCPeripheral_generic_energy_storage - CCPeripheral_generic_fluid_storage - CCPeripheral_generic_inventory
50 lines
2.0 KiB
JavaScript
50 lines
2.0 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['periph_gen_inv_size'] = function(block, generator) {
|
|
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
|
|
|
|
return [`${inv}.size()`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['periph_gen_inv_list'] = function(block, generator) {
|
|
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
|
|
|
|
return [`${inv}.list()`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['periph_gen_inv_get_item_detail'] = function(block, generator) {
|
|
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
|
|
var slot = generator.valueToCode(block, 'SLOT', generator.ORDER_NONE);
|
|
|
|
return [`${inv}.getItemDetail(${slot})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['periph_gen_inv_get_item_limit'] = function(block, generator) {
|
|
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
|
|
var slot = generator.valueToCode(block, 'SLOT', generator.ORDER_NONE);
|
|
|
|
return [`${inv}.getItemLimit(${slot})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['periph_gen_inv_transfer_items'] = function(block, generator) {
|
|
var inv1 = generator.valueToCode(block, 'INV1', generator.ORDER_ATOMIC);
|
|
var inv1slot = generator.valueToCode(block, 'INV1SLOT', generator.ORDER_ATOMIC);
|
|
var mode = block.getFieldValue('MODE');
|
|
var inv2 = generator.valueToCode(block, 'INV2', generator.ORDER_ATOMIC);
|
|
var inv2slot = generator.valueToCode(block, 'INV2SLOT', generator.ORDER_ATOMIC);
|
|
var limit = generator.valueToCode(block, 'LIMIT', generator.ORDER_ATOMIC);
|
|
|
|
if (mode == "PUSH") {
|
|
return `${inv1}.pushItems(peripheral.getName(${inv2}), ${inv1slot}, ${limit}, ${inv2slot})\n`
|
|
} else {
|
|
return `${inv1}.pullItems(peripheral.getName(${inv2}), ${inv2slot}, ${limit}, ${inv1slot})\n`
|
|
}
|
|
};
|