Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --#########################################################
- --declare and instantiate variables
- local mineForward
- local turn1
- local turn2
- local function mineLayer(length,width)
- for x = 1, length do
- mineForward(width)
- if x < length then
- if x%2 == 0 then
- turn2()
- mineForward(1)
- turn2()
- else
- turn1()
- mineForward(1)
- turn1()
- end
- end
- end
- end
- local function run(length,width,depth)
- --##########################################################
- --setup variables
- --local length = tonumber(tArgs[1])
- --local width = tonumber(tArgs[2])
- --local depth = tonumber(tArgs[3])
- local dir = "right"
- local threeDeepLayers = math.floor(depth/3)
- local remainder = depth%3
- local twoDeepLayers = math.floor(remainder/2)
- local oneDeepLayers = remainder%2
- remainder = nil
- turn1 = turtle.turnRight
- turn2 = turtle.turnLeft
- --##########################################################
- --main program
- term.clear()
- term.setCursorPos(1,1)
- print("depth:",depth)
- print("oneDeepLayers:",oneDeepLayers)
- print("twoDeepLayers:",twoDeepLayers)
- print("threeDeepLayers:",threeDeepLayers)
- print()
- --do 1 deep layers:
- mineForward = function(blocks)
- blocks = blocks or 1
- for i = 1, blocks do
- while not turtle.forward() do
- turtle.dig()
- end
- end
- end
- print("Starting 1 deep layers:")
- for i = 1, oneDeepLayers do
- print("digLayer(forward)")
- mineLayer(length,width-1)
- if i == oneDeepLayers then
- if twoDeepLayers > 0 then
- --prep location for 2 deep layer mining
- print("goDown(1)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- elseif threeDeepLayers > 0 then
- --prep location for 3 deep layer mining
- print("goDown(2)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- end
- else
- print("goDown(1)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- end
- if length%2 == 0 then
- if dir == "right" then
- dir = "left"
- turn1 = turtle.turnLeft
- turn2 = turtle.turnRight
- else
- dir = "right"
- turn1 = turtle.turnRight
- turn2 = turtle.turnLeft
- end
- end
- end
- print("Done with 1 deep layers")
- --do 2 deep layers:
- mineForward = function(blocks)
- blocks = blocks or 1
- for i = 1, blocks do
- turtle.digDown()
- while not turtle.forward() do
- turtle.dig()
- end
- end
- turtle.digDown()
- end
- print("Starting 2 deep layers")
- for i = 1, twoDeepLayers do
- print("digLayer(forward,down)")
- mineLayer(length,width-1)
- if i == twoDeepLayers then
- if threeDeepLayers > 0 then
- --prep location for 3 deep layer mining
- print("goDown(3)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- end
- else
- print("goDown(2)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- end
- if length%2 == 0 then
- if dir == "right" then
- dir = "left"
- turn1 = turtle.turnLeft
- turn2 = turtle.turnRight
- else
- dir = "right"
- turn1 = turtle.turnRight
- turn2 = turtle.turnLeft
- end
- end
- end
- print("Done with 2 deep layers")
- --do 3 deep layers:
- mineForward = function(blocks)
- blocks = blocks or 1
- for i = 1, blocks do
- turtle.digUp()
- turtle.digDown()
- while not turtle.forward() do
- turtle.dig()
- end
- end
- turtle.digUp()
- turtle.digDown()
- end
- for i = 1, threeDeepLayers do
- --prep location in case prep hasn't happened yet
- if i == 1 and oneDeepLayers == 0 and twoDeepLayers == 0 then
- turtle.digDown()
- turtle.down()
- end
- print("digLayer(up,forward,down)")
- mineLayer(length,width-1)
- if i < threeDeepLayers then
- print("goDown(3)")
- turn1()
- turn1()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- end
- if length%2 == 0 then
- if dir == "right" then
- dir = "left"
- turn1 = turtle.turnLeft
- turn2 = turtle.turnRight
- else
- dir = "right"
- turn1 = turtle.turnRight
- turn2 = turtle.turnLeft
- end
- end
- end
- print("Finished quarrying!")
- print("Press 'enter' to return to menu")
- read()
- end
- return {
- run = run
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement