Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- compid = 2
- select = 1
- selectc = 5
- selectm = 8
- g_minelength = 70
- g_minewidth = 4
- g_tundown = "y"
- g_tunup = "y"
- function sprint(Text)
- textutils.slowPrint(Text)
- end
- function DoTop()
- term.clear()
- term.setCursorPos(1,1)
- print("Tunnel system")
- print("---------------------")
- end
- function DoMenu()
- term.setCursorPos(1,3)
- if select == 1 then print("Start tunneling <-") else print("Start tunneling") end
- if select == 2 then print("Tunnel config <-") else print("Tunnel config") end
- if select == 3 then print("Movement/commands <-") else print("Movement/commands") end
- if select == 4 then print("Refuel <-") else print("Refuel") end
- if select == 5 then print("Exit <-") else print("Exit") end
- print(" ")
- print("Current fuel level: "..turtle.getFuelLevel())
- end
- function RunMenu()
- while true do
- DoTop()
- DoMenu()
- local id, key = os.pullEvent("key")
- if key == 200 and select > 1 then
- select = select - 1
- elseif key == 208 and select < 5 then
- select = select + 1
- end
- if key == 28 then
- if select == 5 then os.reboot()
- elseif select == 1 then g_domine()
- elseif select == 2 then RunConfMenu()
- elseif select == 3 then RunMoveMenu()
- elseif select == 4 then g_refuel()
- end
- break
- end
- end
- end
- function DoConfMenu()
- term.setCursorPos(1,3)
- if selectc == 1 then print("Tunnel length ("..g_minelength..") <-") else print("Tunnel length ("..g_minelength..")") end
- if selectc == 2 then print("Tunnel width ("..g_minewidth..") <-") else print("Tunnel width ("..g_minewidth..")") end
- if selectc == 3 then print("Dig up("..g_tunup..") <-") else print("Dig up("..g_tunup..")") end
- if selectc == 4 then print("Dig down("..g_tundown..") <-") else print("Dig down("..g_tundown..")") end
- if selectc == 5 then print("Back <-") else print("Back") end
- end
- function RunConfMenu()
- while true do
- DoTop()
- DoConfMenu()
- local id, key = os.pullEvent("key")
- if key == 200 and selectc > 1 then
- selectc = selectc - 1
- elseif key == 208 and selectc < 5 then
- selectc = selectc + 1
- end
- if key == 28 then
- if selectc == 1 then g_setminelen()
- elseif selectc == 2 then g_setminewidth()
- elseif selectc == 3 then g_setminedir()
- elseif selectc == 4 then g_setminedird()
- elseif selectc == 5 then RunMenu()
- end
- break
- end
- end
- end
- function DoMoveMenu()
- term.setCursorPos(1,3)
- if selectm == 1 then print("Dig <-") else print("Dig") end
- if selectm == 2 then print("Dig up <-") else print("Dig up") end
- if selectm == 3 then print("Dig down <-") else print("Dig down") end
- if selectm == 4 then print("Turn left <-") else print("Turn left") end
- if selectm == 5 then print("Turn right <-") else print("Turn right") end
- if selectm == 6 then print("Move forward <-") else print("Move forward") end
- if selectm == 7 then print("Move back <-") else print("Move back") end
- if selectm == 8 then print("Back <-") else print("Back") end
- end
- function RunMoveMenu()
- while true do
- DoTop()
- DoMoveMenu()
- local id, key = os.pullEvent("key")
- if key == 200 and selectm > 1 then
- selectm = selectm - 1
- elseif key == 208 and selectm < 8 then
- selectm = selectm + 1
- end
- if key == 28 then
- if selectm == 1 then turtle.dig()
- elseif selectm == 2 then turtle.digUp()
- elseif selectm == 3 then turtle.digDown()
- elseif selectm == 4 then turtle.turnLeft()
- elseif selectm == 5 then turtle.turnRight()
- elseif selectm == 6 then turtle.forward()
- elseif selectm == 7 then turtle.back()
- elseif selectm == 8 then RunMenu()
- end
- break
- end
- RunMoveMenu()
- end
- end
- function g_setminelen()
- term.clear()
- print("Please enter length to mine: ")
- newlen = io.read()
- num = tonumber(newlen)
- if num == nil or num == "" then
- print("Invalid length!")
- else
- if num < 1 then
- print("Length too short!")
- elseif num > 120 then
- print("Length too long!")
- else
- g_minelength = num
- print("Length set!")
- sleep(1)
- RunConfMenu()
- end
- end
- end
- function g_setminewidth()
- term.clear()
- print("Please enter width to mine: ")
- newlen = io.read()
- num = tonumber(newlen)
- if num == nil or num == "" then
- print("Invalid length!")
- else
- if num < 1 then
- print("Width too short!")
- elseif num > 60 then
- print("Width too long!")
- else
- g_minewidth = num
- print("Width set")
- sleep(1)
- RunConfMenu()
- end
- end
- end
- function g_setminedir()
- term.clear()
- print("Mine up? [y/n] ")
- newup = io.read()
- if newup == "y" or newup == "Y" then
- g_tunup = "y"
- print("Okay, I will mine upwards!")
- sleep(1)
- elseif newup == "n" or newup == "N" then
- g_tunup = "n"
- print("Fine, I wont mine upwards!")
- sleep(1)
- else
- print("Invalid selection!?")
- sleep(1)
- g_setminedir()
- end
- RunConfMenu()
- end
- function g_setminedird()
- term.clear()
- print("Mine down? [y/n] ")
- newup = io.read()
- if newup == "y" or newup == "Y" then
- g_tundown = "y"
- print("Okay, I will mine downwards!")
- sleep(1)
- elseif newup == "n" or newup == "N" then
- g_tundown = "n"
- print("Fine, I wont mine downwards!")
- sleep(1)
- else
- print("Invalid selection!?")
- sleep(1)
- g_setminedird()
- end
- RunConfMenu()
- end
- function g_refuel()
- term.clear()
- turtle.select(1)
- if turtle.refuel(64) == false then
- print("Invalid fuel in slot 1!")
- sleep(3)
- end
- RunMenu()
- end
- function g_dropchest()
- if turtle.getItemCount(15) < 1 then
- return false
- end
- if g_tundown == "y" then
- turtle.digDown()
- turtle.down()
- end
- turtle.digDown()
- turtle.select(15)
- turtle.placeDown()
- sleep(1.5)
- for i = 1, 14, 1 do
- turtle.select(i)
- turtle.dropDown()
- end
- turtle.select(15)
- turtle.digDown()
- turtle.select(1)
- if g_tundown == "y" then
- turtle.up()
- end
- print("Chest placed!")
- end
- function g_domine()
- turtle.select(1)
- term.clear()
- if g_minelength < 1 then
- print("Please set mine length")
- sleep(2)
- RunMenu()
- return false;
- end
- sprint("Starting mining process...")
- width = g_minewidth - 1
- torch = 1
- length = g_minelength
- while length > 0 do
- torch = torch + 1
- turtle.dig()
- while turtle.forward() ~= true do
- turtle.dig()
- if g_tundown == "y" then turtle.digDown() end
- sleep(0.5)
- end
- if g_tunup == "y" then turtle.digUp() end
- if g_tundown == "y" then turtle.digDown() end
- if width > 0 then
- turtle.turnRight()
- for w = 1, width, 1 do
- turtle.dig()
- while turtle.forward() ~= true do
- turtle.dig()
- if g_tundown == "y" then turtle.digDown() end
- sleep(0.5)
- end
- if g_tunup == "y" then turtle.digUp() end
- if g_tundown == "y" then turtle.digDown() end
- end
- if torch >= 6 then
- torch = 1
- torchLevel = turtle.getItemCount(16)
- if torchLevel > 1 then
- turtle.select(16)
- turtle.placeDown()
- turtle.select(1)
- end
- end
- turtle.turnLeft()
- length = length - 1
- torch = torch + 1
- turtle.dig()
- while turtle.forward() ~= true do
- turtle.dig()
- if g_tundown == "y" then turtle.digDown() end
- sleep(0.5)
- end
- if g_tunup == "y" then turtle.digUp() end
- if g_tundown == "y" then turtle.digDown() end
- turtle.turnLeft()
- for w = 1, width, 1 do
- turtle.dig()
- while turtle.forward() ~= true do
- turtle.dig()
- if g_tundown == "y" then turtle.digDown() end
- sleep(0.5)
- end
- if g_tunup == "y" then turtle.digUp() end
- if g_tundown == "y" then turtle.digDown() end
- end
- turtle.turnRight()
- length = length - 1
- end
- if turtle.getItemCount(13) > 0 then
- g_dropchest()
- end
- end
- turtle.turnLeft()
- turtle.turnLeft()
- for i = 1, g_minelength, 1 do
- while turtle.forward() ~= true do
- turtle.dig()
- if g_tundown == "y" then turtle.digDown() end
- sleep(0.5)
- end
- end
- turtle.turnLeft()
- turtle.turnLeft()
- sprint("Mining complete!")
- sleep(2)
- RunMenu()
- end
- RunMenu()
Advertisement
Add Comment
Please, Sign In to add comment