damp11113 a3cbd59f8a update 1.2.2
Added 4 module
- CCPeripheral
- CCPeripheral_generic_energy_storage
- CCPeripheral_generic_fluid_storage
- CCPeripheral_generic_inventory
2024-08-19 21:04:51 +07:00

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`
}
};