Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if not(fs.exists("libraryEvolved")) then
- shell.run("pastebin","get","vBk3y8Np","libraryEvolved")
- end
- os.loadAPI("libraryEvolved")
- gui.setTitle("ScholarlyOS")
- gui.setPadding(" ")
- gui.drawTitle()
- queueOne = util.load("__queueOne__")
- queueTwo = util.load("__queueTwo__")
- iOne = util.load("__iOne__")
- iTwo = util.load("__iTwo__")
- if queueOne == nil then
- queueOne = {}
- util.save("__queueOne__", queueOne)
- end
- if queueTwo == nil then
- queueTwo = {}
- util.save("__queueTwo__", queueTwo)
- end
- if iOne == nil then
- iOne = 1
- util.save("__iOne__", iOne)
- end
- if iTwo == nil then
- iTwo = 1
- util.save("__iTwo__", iTwo)
- end
- lenQueueOne = #queueOne
- lenQueueTwo = #queueTwo
- commands = {
- forward = function(arg) turtle.forward() end,
- back = function(arg) turtle.back() end,
- left = function(arg) turtle.turnLeft() end,
- right = function(arg) turtle.turnRight() end,
- up = function(arg) turtle.up() end,
- down = function(arg) turtle.down() end,
- digUp = function(arg) turtle.digUp() end,
- digDown = function(arg) turtle.digDown() end,
- dig = function(arg) turtle.dig() end
- slot = function(arg) turtle.select(arg) end
- drop = function(arg) turtle.drop(arg) end
- dropUp = function(arg) turtle.dropUp(arg) end
- dropDown = function(arg) turtle.dropDown(arg) end
- }
- function handleCommand(instruction)
- print(instruction[1])
- commands[instruction[1]](instruction[2])
- end
- -- Resume program
- if lenQueueOne > 0 then
- running = true
- while running do
- instruction = queueOne[iOne]
- if instruction == nil then
- running = false
- print("end of queue")
- next
- end
- handleCommand(instruction)
- iOne = iOne + 1
- util.save("__iOne__", iOne)
- if iOne > lenQueueOne then
- running = false
- end
- end
- queueOne = {}
- util.save("__queueOne__", queueOne)
- iOne = 1
- util.save("__iOne__", iOne)
- return
- end
- --new run
- maxLength = gui.askNumber("Length")
- maxWidth = gui.askNumber("Width")
- maxLevels = gui.askNumber("Levels")
- direction = gui.askMessage("Direction", "left", "right")
- function digUpDown()
- table.insert(queueOne, {"digUp"})
- table.insert(queueOne, {"digDown"})
- end
- function digAll()
- table.insert(queueOne, {"dig"})
- digUpDown()
- end
- function left()
- table.insert(queueOne, {"left"})
- end
- function right()
- table.insert(queueOne, {"right"})
- end
- function forward()
- table.insert(queueOne, {"forward"})
- end
- function newLane(lane)
- if lane % 2 == 0 then
- if direction == "right" then
- left()
- digAll()
- forward()
- left()
- else
- right()
- digAll()
- forward()
- right()
- end
- else
- if direction == "right" then
- right()
- digAll()
- forward()
- right()
- else
- left()
- digAll()
- forward()
- left()
- end
- end
- digAll()
- end
- z = 1
- while z <= maxLevels do
- x = 1
- while x < maxWidth do
- y = 1
- while y < maxLength do
- digAll()
- forward()
- y = y + 1
- end
- digUpDown()
- x = x + 1
- if x < maxWidth then
- newLane(x)
- end
- end
- z = maxLevels
- end
Add Comment
Please, Sign In to add comment