Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local arg1, arg2 = ...
- limX = tonumber(arg1)
- limZ = tonumber(arg2)
- area = limX * limZ
- relX = 0
- relZ = 0
- facing = 0
- function plant()
- if turtle.detectDown()
- then
- return false
- end
- turtle.down()
- seeds = selectSeeds()
- if not seeds
- then
- return false
- end
- turtle.placeDown()
- return true
- end
- function selectSeeds()
- for i = 1, 16, 1
- do
- turtle.select(i)
- name = turtle.getItemDetail().name
- if name == "minecraft:seeds"
- then
- return true
- end
- end
- return false
- end
- function harvest()
- if turtle.detectDown()
- then
- local success, data = turtle.inspectDown()
- if data.name == "minecraft:wheat"
- then
- if data.metadata == 7
- then
- turtle.digDown()
- end
- end
- end
- end
- function turnTo(dir)
- if facing > dir
- then
- turtle.turnRight()
- dir = dir - 1
- turnTo(dir)
- end
- if facing < dir
- then
- turtle.turnLeft()
- dir = dir + 1
- turnTo(dir)
- end
- if facing == dir
- then
- return
- end
- end
- function goUp()
- turnTo(0)
- turtle.forward()
- relZ = relZ + 1
- end
- function goDown()
- turnTo(2)
- turtle.forward()
- relZ = relZ - 1
- end
- function goLeft()
- turnTo(1)
- turtle.forward()
- relX = relX - 1
- end
- function goRight()
- turnTo(3)
- turtle.forward()
- relX = relX + 1
- end
- function walkField()
- while relZ <= limZ
- do
- goUp()
- while relX <= limX
- do
- goRight()
- harvest()
- plant()
- end
- goUp()
- while relX > 1
- do
- goLeft()
- harvest()
- plant()
- end
- end
- end
- function returnToOrigin()
- while relX > 0
- do
- goLeft()
- end
- while relY > 0
- do
- goDown()
- end
- end
- function depositItems()
- for i = 1, 16, 1
- do
- turtle.drop()
- end
- end
- function grabSeeds()
- i = 1
- remaining = area
- while remaining > 64
- do
- turtle.select(i)
- turtle.suckDown(64)
- i = i + 1
- remaining = remaining - 64
- end
- turtle.suckDown(remaining)
- end
- function feedFuel()
- turnTo(3)
- while (getFuelLevel() < 2000)
- do
- turtle.suck(4)
- turtle.refuel(4)
- end
- end
- function execute()
- feedFuel()
- grabSeeds()
- walkField()
- returnToOrigin()
- depositItems()
- turnTo(0)
- end
- function main()
- while (true)
- do
- if redstone.getInput("left")
- then
- execute()
- end
- end
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement