Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --mninetest
- local tArgs = { ...}
- z = 0
- local x = tonumber(tArgs[1])
- local y = tonumber(tArgs[2])
- --local Relation = tArgs[3]
- turtleX = 0
- turtleY = 0
- direction = 0
- local broken = false
- function attack()
- attack = true
- while attack == true do
- if turtle.attack() == false then
- attack = false
- end
- end
- end
- --Rewrite to also use turtle.getFuelLimit() later to allow for advanced Turtles. For now we assume we're using a standard 20k limit.
- --function CheckFuel()
- --while turtle.getFuelLevel() < 10 do
- -- ClearInventory()
- -- turtle.select(Fuel)
- -- turtle.dig()
- -- turtle.place()
- -- turtle.select(1)
- --for i=1, 4 do
- -- turtle.suck(64)
- --end
- -- turtle.select(Fuel)
- -- turtle.dig()
- -- shell.run('refuel all')
- -- turtle.select(1)
- --end
- --end
- function ClearInventory()
- turtle.select(16)
- turtle.dig()
- turtle.place()
- for i=1, 15 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(16)
- turtle.dig()
- turtle.select(1)
- end
- function CheckInventory()
- local InvFull = true
- for i=1, 15 do
- local InvCount = turtle.getItemCount(i)
- if InvCount == 0 then
- InvFull = false
- end
- end
- if InvFull then
- ClearInventory()
- return false
- end
- end
- function moveForward()
- if not turtle.forward() then
- if turtle.detect() then
- if not turtle.dig() then
- print("dig returning false after detect")
- return false
- else
- if turtle.forward() then
- turtle.digUp()
- CheckInventory()
- turtle.digDown()
- CheckInventory()
- return true
- else
- return moveForward()
- end
- end
- else
- attack()
- print(turtle.forward())
- CheckInventory()
- turtle.digUp()
- CheckInventory()
- turtle.digDown()
- CheckInventory()
- return true
- end
- else
- turtle.digUp()
- CheckInventory()
- turtle.digDown()
- CheckInventory()
- return true
- end
- --CheckFuel()
- end
- function moveDown()
- if not turtle.down() then
- if turtle.detectDown() then
- if not turtle.digDown() then
- print("dig down returning false after detect")
- return false
- else
- turtle.down()
- return true
- end
- else
- attack = True
- while turtle.attackDown() do
- turtle.attackDown()
- end
- turtle.down()
- CheckInventory()
- return true
- end
- else
- return true
- end
- --CheckFuel()
- end
- function moveUp()
- if not turtle.up() then
- if turtle.detectUp() then
- if not turtle.digUp() then
- print("dig up returning false after detect")
- return false
- else
- turtle.up()
- CheckInventory()
- return true
- end
- else
- attack = True
- while turtle.attackUp() do
- turtle.attackUp()
- end
- turtle.up()
- return true
- end
- else
- return true
- end
- --CheckFuel()
- end
- function updatePosition()
- if direction == 0 then
- turtleY = turtleY + 1
- elseif direction == 1 then
- turtleX = turtleX + 1
- elseif direction == 2 then
- turtleY = turtleY - 1
- elseif direction == 3 then
- turtleX = turtleX - 1
- end
- end
- function right()
- turtle.turnRight()
- direction = (direction + 1) % 4
- end
- function left()
- turtle.turnLeft()
- direction = (direction - 1) % 4
- end
- function updateZ()
- z = z + 1
- end
- --Lets just check fuel now...
- --CheckFuel()
- --The Main Loop
- --if Relation=='Down' then
- while not broken do
- moved_down = 0
- while moved_down < 3 do
- if moveDown() then
- updateZ()
- moved_down = moved_down + 1
- else
- broken = true
- break
- end
- end
- if broken then
- break
- end
- turtle.digDown()
- CheckInventory()
- i = 0
- for i=1,x do
- j = 1
- while j < y do
- if moveForward() then
- updatePosition()
- j = j + 1
- print("move forward was true and j is"..j)
- else
- broken = true
- break
- end
- end
- if broken then
- break
- end
- if i ~= x then
- if z % 2 ~= 0 then
- if direction == 0 then
- right()
- if moveForward() then
- updatePosition()
- right()
- else
- broken = true
- break
- end
- elseif direction == 2 then
- left()
- if moveForward() then
- updatePosition()
- left()
- else
- broken = true
- break
- end
- end
- else
- if direction == 0 then
- left()
- if moveForward() then
- updatePosition()
- left()
- else
- broken = true
- break
- end
- elseif direction == 2 then
- right()
- if moveForward() then
- updatePosition()
- right()
- else
- broken = true
- break
- end
- end
- end
- elseif i == x then
- left()
- left()
- end
- end
- end
- --elseif Relation=='Up' then
- --Clone Of Down
- --end
- --Return To beginning
- while turtleX > 0 do
- while direction ~= 3 do
- left()
- end
- moveForward()
- updatePosition()
- end
- while turtleY > 0 do
- while direction ~= 2 do
- left()
- end
- moveForward()
- updatePosition()
- end
- while z > 0 do
- moveUp()
- z = z - 1
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement