const { luaGenerator } = require('blockly/lua'); // Check if luaGenerator.forBlock is defined and initialize if necessary if (!luaGenerator.forBlock) { luaGenerator.forBlock = {}; } luaGenerator.forBlock['redstone_set_output'] = function(block, generator) { var state = block.getFieldValue('STATE'); var side = block.getFieldValue('SIDE'); if (state == "OFF") { var code = `rs.setOutput("${side}", true)`; } else { var code = `rs.setOutput("${side}", false)`; } return code + "\n"; }; luaGenerator.forBlock['redstone_get_output'] = function(block, generator) { var side = block.getFieldValue('SIDE'); return [`rs.getOutput("${side}")`, luaGenerator.ORDER_NONE]; }; luaGenerator.forBlock['redstone_read_input'] = function(block, generator) { var side = block.getFieldValue('SIDE'); return [`rs.getInput("${side}")`, luaGenerator.ORDER_NONE]; }; luaGenerator.forBlock['redstone_set_analog_output'] = function(block, generator) { var power = generator.valueToCode(block, 'POWER', generator.ORDER_NONE); var side = block.getFieldValue('SIDE'); return `rs.setAnalogOutput("${side}", ${power})\n`; }; luaGenerator.forBlock['redstone_get_analog_output'] = function(block, generator) { var side = block.getFieldValue('SIDE'); return `rs.getAnalogOutput("${side}")\n`; }; luaGenerator.forBlock['redstone_read_analog_input'] = function(block, generator) { var side = block.getFieldValue('SIDE'); return `rs.getAnalogInput("${side}")\n`; };