Если уголь в слоте 1 поддерживается трубой, в таком случае желательно там оставлять 1 уголь, чтоб он заменился на что то другое.
local component = require("component")
local robot = require("robot")
local computer = require("computer")
local generator = component.generator
robot.select(16)
while true do
if computer.energy() / computer.maxEnergy() < 0.20 and robot.count(1) > 1 then
robot.select(1)
generator.insert(1)
robot.select(16)
end
robot.use()
end
Также можно не проверять если уголь в генераторе, если энергия упала ниже 20 %, то там пусто