Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- initalBoot = ...
- host = 3
- status = "Inactive"
- pos = vector.new(gps.locate())
- rows = 17
- columns = 19
- r = 1
- c = 1
- function save_config()
- sw = fs.open("config.txt", "w")
- sw.writeLine(r)
- sw.writeLine(c)
- sw.close()
- end
- function load_config()
- sr = fs.open("config.txt", "r")
- r = tonumber(sr.readLine())
- c = tonumber(sr.readLine())
- sr.close()
- end
- function checkCrop()
- success, data = turtle.inspectDown()
- if(success == false or data.state.age == 7) then
- turtle.digDown()
- item = turtle.getItemDetail()
- while((item == nil or item.name ~= "minecraft:wheat_seeds") and (index < 16)) do
- index = index + 1
- item = turtle.getItemDetail(index)
- end
- if((item == nil or item.name ~= "minecraft:wheat_seeds") and index == 16) then
- index = 1
- end
- turtle.select(index)
- turtle.placeDown()
- end
- end
- function farm()
- status = "Farming"
- local modem = peripheral.find("modem")
- rednet.open("left")
- if(initalBoot ~= "Y") then
- load_config()
- end
- while true do
- while (turtle.getFuelLevel() < 1) do
- status = "Low Fuel"
- for i=1, 16 do
- turtle.select(i)
- turtle.refuel()
- end
- sleep(3)
- end
- index = 1
- while(r <= rows) do
- while(c <= columns) do
- checkCrop()
- pos = vector.new(gps.locate())
- turtle.forward()
- c = c + 1
- save_config()
- end
- c = 1
- checkCrop()
- if(r ~= rows) then
- print("Lane Change!")
- if(r % 2 == 1) then
- turtle.turnRight()
- turtle.forward()
- turtle.turnRight()
- else
- turtle.turnLeft()
- turtle.forward()
- turtle.turnLeft()
- end
- end
- r = r + 1
- save_config()
- end
- r = 1
- if(rows % 2 == 1) then
- turtle.turnLeft()
- turtle.turnLeft()
- for i = 1, columns do
- turtle.forward()
- save_config()
- end
- end
- turtle.turnRight()
- for i = 1, rows - 1 do
- turtle.forward()
- save_config()
- end
- turtle.turnRight()
- for i=1, 16 do
- turtle.select(i)
- turtle.dropDown()
- end
- end
- end
- function rangeCheck()
- while true do
- if rednet.receive("failsafe") == null then
- return
- end
- sleep(1)
- end
- end
- function transmit()
- while(true) do
- local sender, message, protocol = rednet.receive("ping")
- if(message ~= nil and message == "send") then
- rednet.send(host, os.getComputerLabel() .. " " .. turtle.getFuelLevel() .. " " .. pos.x .. " " .. pos.y .." " .. pos.z .. " " .. status, "miners")
- sleep(0.5)
- end
- end
- end
- parallel.waitForAny(farm, rangeCheck, transmit)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement