Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --//-----------Как очевидно на основе какого кода это сделано, не так ли?------------------------//--
- --Заметка: роботу вот это всё снизу требуется
- --для работы. В будущем планирую сделать альтер-
- -- -нативные режимы работы при отсутствии
- --каких-нибудь компонентов(кроме геоанализатора,
- --ибо зачем вообще тогда эта программа?)
- --Хорошее предисловие, лол.
- local robot = require("robot")
- local component = require("component")
- local geo = component.geolyzer
- local inv = component.inventory_controller
- local rs = component.redstone
- local side = require("sides")
- local comp = require("computer")
- local term = require("term")
- local ysize = 5 --размер поля
- local xsize = 9
- local SLEEP = 1 --Глобальные переменные: для быдлокодера нет лучше ничего
- local MaxCharge = 60 --(кроме констант прямо в функциях)
- function charge() --Функция для зарядки
- for i = 1, 100 do
- if ((comp.energy() / comp.maxEnergy()) * 100) <= MaxCharge then
- rs.setOutput(side.back, 3)
- term.clear()
- term.write("Charging... ("..i.. " %)") --Просто отображение оставшегося времени в % :)
- else
- rs.setOutput(side.back, 0)
- term.clear()
- term.write("Charged already. (" .. i .. "%)") --Те же яйца.
- end
- os.sleep(SLEEP)
- end
- end
- function check() --функция для проверки роста пшеницы
- local t = geo.analyze(0)
- if t["metadata"] == 7 then
- return t["metadata"]
- else
- return nil
- end
- end
- function harvest() --Это основная функция
- robot.forward() --По коням
- for y = 1, ysize do --Проходим поле
- for x = 1, (xsize-1) do --Здесь одна линия
- if check() == 7 then --Если пшеница уже выросла
- robot.swingDown() --Собираем
- robot.placeDown() --И засеиваем
- end
- robot.forward() --Передвигаемся вперёд
- end
- if y % 2 == 0 then --Поворачиваем
- robot.turnLeft()
- if check() == 7 then --(1)На этих участках тоже
- robot.swingDown() --что-то растёт.
- robot.placeDown()
- end
- if y < ysize then --Проверка для возврата(2)
- robot.forward()
- end
- robot.turnLeft()
- else
- robot.turnRight()
- if check() == 7 then --(1)
- robot.swingDown()
- robot.placeDown()
- end
- if y < ysize then --(2)P.S. такой костыль...
- robot.forward()
- end
- robot.turnRight()
- end
- end --Возвращаемся...
- for y = 1, (xsize-1) do
- robot.forward()
- end
- robot.turnRight()
- for y = 1, (ysize-1) do
- robot.forward()
- end
- robot.turnLeft()
- robot.forward()
- robot.turnAround() --Блудный сын вернулся!
- end
- function unload() --Функция для разгрузки продуктов
- for c = 2, 16 do
- robot.select(c)
- if robot.count() > 0 then
- inv.dropIntoSlot(0, (c-1))
- else
- robot.select(1)
- if robot.count() > 4 then
- inv.dropIntoSlot(0, 17, (robot.count() - 4))
- end
- break
- end
- end
- end
- while true do
- charge()
- harvest()
- unload()
- end
Advertisement
Add Comment
Please, Sign In to add comment