Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local args = {...}
- if #args ~= 1 then
- print("Please give me a range")
- error()
- end
- range = args[1] + 0
- maxRange = range -1
- print("range selected", range, "x", range)
- function doMovement()
- local turnedRight = false
- -- do farming
- for j = 1, range, 1 do
- -- begin row
- for i = 1, maxRange, 1 do
- -- check slot
- doFarmCheck()
- turtle.forward()
- end
- -- end of the row
- if (j < range) then
- if turnedRight then
- turtle.turnLeft()
- doFarmCheck()
- turtle.forward()
- turtle.turnLeft()
- turnedRight = false
- else
- turtle.turnRight()
- doFarmCheck()
- turtle.forward()
- turtle.turnRight()
- turnedRight = true
- end
- end
- end
- -- return home
- doFarmCheck()
- print("returning home")
- turtle.turnLeft()
- for r = 1, maxRange, 1 do
- turtle.forward()
- end
- turtle.turnLeft()
- for r = 1, maxRange, 1 do
- turtle.forward()
- end
- -- check stuff
- deposit()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- function doFarmCheck()
- local success, data = turtle.inspectDown()
- if isGrown(data) then
- turtle.digDown()
- turtle.select(2)
- turtle.placeDown()
- elseif not success then
- turtle.select(2)
- turtle.placeDown()
- end
- turtle.suckDown()
- turtle.suckDown()
- end
- function manageInv()
- local foundCoal = false
- -- check coal
- if turtle.getItemDetail(1) ~= "minecraft:coal" then
- for c = 1, 16, 1 do
- local data = turtle.getItemDetail(c)
- if data and data.name == "minecraft:coal" then
- turtle.select(c)
- turtle.transferTo(1)
- foundCoal = true
- end
- end
- end
- -- check seeds
- if turtle.getItemDetail(2) ~= "minecraft:wheat_seeds" then
- print("no seeds found in slot 2")
- for s = 1, 16, 1 do
- local data = turtle.getItemDetail(s)
- if data and data.name == "minecraft:wheat_seeds" then
- turtle.select(s)
- turtle.transferTo(2)
- foundSeeds = true
- end
- end
- end
- if not foundCoal or not foundSeeds then
- turtle.select(1)
- turtle.suck()
- turtle.select(2)
- turtle.suck()
- end
- end
- function isGrown(data)
- if data.name == "minecraft:wheat" then
- if data.state.age == 7 then
- return true
- end
- end
- return false
- end
- function doFuelCheck()
- if turtle.getFuelLevel() < 100 then
- print("nom da coal")
- turtle.select(1)
- turtle.refuel(2)
- end
- end
- function deposit()
- for n = 3, 16, 1 do
- turtle.select(n)
- turtle.drop()
- end
- end
- function farm()
- manageInv()
- doFuelCheck()
- while (true) do
- doMovement()
- sleep(60)
- manageInv()
- doFuelCheck()
- end
- end
- farm()
Add Comment
Please, Sign In to add comment