Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[OpenComputers harvester by serafim pastebin.com/BRYuwajf
- по умолчанию обрабатывает поле:
- ширина 4, длинна 20, количество 5.
- в 1 и 2 слот ложим семена пшеници,
- ставим над сундуком, даем роботу мотыгу
- требования:
- инвентарь,солнечния панель
- пример запуска:
- harvester
- ]]--
- local lenght = 20 --длинна грядки
- local quantity = 5 --количество грядок
- local comeback = 24 --возврат к старту
- local delay = 3600 --ожидание в секундах
- local com = require('component')
- local term = require('term')
- local empty = true
- if not com.isAvailable("robot") then
- print("Только роботы могут использовать эту программу")
- os.exit()
- end
- local r = require("robot")
- local invsize = r.inventorySize()
- local function forward()
- while not r.forward() do
- r.swing()
- end
- end
- local function line()
- for i = 1, lenght do
- if (r.count(1) > 1) then
- r.select(1)
- else
- r.select(2)
- end
- r.swingDown()
- r.useDown()
- r.placeDown()
- if i ~= lenght then
- forward()
- end
- end
- end
- local function harvest()
- r.setLightColor(0xFFFFFF)
- term.clear()
- term.write("Собираю урожай")
- r.turnRight()
- r.turnRight()
- forward()
- r.turnLeft()
- for i = 1, quantity do
- for i = 1, 2 do
- line()
- r.turnRight()
- forward()
- r.turnRight()
- line()
- if i == 1 then
- r.turnLeft()
- forward()
- r.turnLeft()
- end
- end
- if i == quantity then
- r.turnRight()
- for i = 1, comeback do
- forward()
- end
- for i = 3, invsize do
- if r.count(i) > 0 then
- r.select(i)
- if not r.dropDown() then
- r.setLightColor(0xFF0000)
- term.clear()
- term.write("В сундуке нет места :(")
- os.exit()
- end
- end
- end
- r.select(1)
- else
- r.turnLeft()
- forward()
- forward()
- r.turnLeft()
- end
- end
- end
- local function grubbing()
- if r.durability() == nil or r.durability() < 0.03 then
- if empty then
- r.setLightColor(0xFF0000)
- term.clear()
- term.write("Нет мотыги, или она сломана !")
- empty = false
- end
- os.sleep(20)
- grubbing()
- term.clear()
- empty = true
- end
- end
- local function wait()
- term.clear()
- for i = delay, 1, -10 do
- if i == delay then
- term.write("осталось ждать "..delay.." секунд")
- end
- os.sleep(10)
- term.clearLine()
- term.write("осталось ждать "..(i-10).." секунд")
- end
- term.clear()
- end
- while true do
- grubbing()
- harvest()
- wait()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement