-- cart_killer.lua
-- Робот стоит лицом к рельсам и ломает ВСЁ перед собой (вагонетки).
-- Нужны: Upgrade Tool и инструмент (Ваджра) в указанном слоте.
local robot = require("robot")
local computer = require("computer")
local event = require("event")
-- В каком слоте лежит Ваджра
local TOOL_SLOT = 1
local function log(msg)
print(os.date("[%H:%M:%S] ") .. msg)
end
local function selectTool()
if robot.select(TOOL_SLOT) then
return true
else
log("Не могу выбрать слот с инструментом: " .. tostring(TOOL_SLOT))
return false
end
end
log("=== Робот-уборщик вагонеток запущен ===")
log("Убедись, что он смотрит на рельсы, а в слоте " .. TOOL_SLOT .. " лежит Ваджра.")
if not selectTool() then
log("Останавливаюсь из-за ошибки выбора слота.")
return
end
local tick = 0
while true do
tick = tick + 1
-- На всякий случай каждые 100 тиков снова выбираем слот с Ваджрой
if tick % 100 == 0 then
selectTool()
end
-- Бьём перед собой
local ok, reason = robot.swing()
if ok then
log("Удар по entity перед собой (скорее всего вагонетка). reason=" .. tostring(reason))
end
-- Немного ждём и ловим Ctrl+Alt+C
local deadline = computer.uptime() + 0.2
while true do
local left = deadline - computer.uptime()
if left <= 0 then break end
local sig = {event.pull(left)}
if sig[1] == "interrupted" then
log("Получен сигнал interrupted, останавливаюсь.")
log("=== Робот-уборщик вагонеток завершил работу ===")
return
end
end
end