JustDoesGames

TURTOS beta

Mar 8th, 2019
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.36 KB | None | 0 0
  1. local version = "v1_0_6"
  2. local version_raw = "v1.0.6"
  3. local clr = function() term.clear() end
  4. local setText = function(col) term.setTextColor(colors[col]) end
  5. local setBack = function(col) term.setBackColor(colors[col]) end
  6. local cp = function(x,y) term.setCursorPos(x,y) end
  7. local sx,sy = term.getSize()
  8. local running = true
  9. local selected = 1
  10. local m_0 = {"Turle Programs", "Options (Comming Soon!)", "Lua", "Restart"}
  11. local m_0_status = {true, false, true, true}
  12. local m_1 = {"Normal Tunnel", "Tunnel v2.0", "Tunnel Down", "3x1 Tunnel", "Manual Control", "Back"}
  13. local m_1_status = {true, false, true, true, false, true}
  14. local c_menu = m_0
  15. local c_menu_status = m_0_status
  16. local updat = true
  17.  
  18. function main()
  19.     if fs.exists(version) == false or version == "beta" then
  20.         if version ~= "beta" then
  21.             fs.makeDir(version)
  22.         end
  23.         PN()
  24.     end
  25.     while running do
  26.         if updat == true or updat == nil then
  27.             drawScreen()
  28.         end
  29.         cp(1,1)
  30.         print("TURTOS "..version_raw.." ")
  31.         for i=1, #c_menu do
  32.             cp(3,i+2)
  33.             if i == selected then
  34.                 setText("white")
  35.                 write("> ")
  36.                 if c_menu_status[selected] == false then
  37.                     setText("gray")
  38.                 else
  39.                     setText("white") -- IMPORTANT
  40.                 end
  41.                 write(c_menu[i])
  42.                 setText("white")
  43.                 print(" <")
  44.             else
  45.                 setText("gray")
  46.                 print("  ", c_menu[i], "  ")
  47.                 setText("white")
  48.             end
  49.         end
  50.         a,i = os.pullEvent("key")
  51.         if i == keys.w or i == keys.up then
  52.             if selected ~= 1 then selected = selected - 1 end
  53.         elseif i == keys.s or i == keys.down then
  54.             if selected ~= #c_menu then selected = selected + 1 end
  55.         elseif i == keys.e or i == keys.enter then
  56.             if selected == #c_menu then
  57.                 if c_menu == m_0 then
  58.                     os.shutdown()
  59.                 else
  60.                     c_menu = m_0
  61.                 end
  62.                 selected = 1
  63.                 c_menu_status = m_0_status
  64.             elseif c_menu == m_0 then
  65.                 if selected == 1 then
  66.                     c_menu = m_1
  67.                     c_menu_status = m_1_status
  68.                     selected = 1
  69.                 elseif selected == 2 then
  70.                     --
  71.                 elseif selected == 3 then
  72.                     clr()
  73.                     cp(1,1)
  74.                     running = false
  75.                 end
  76.             elseif c_menu == m_1 then
  77.                 pre_tunnel(selected)
  78.             end
  79.         end
  80.     end
  81. end
  82.  
  83. function drawScreen()
  84.     clr()
  85.     cp(1,1)
  86.     for i=1, sx do
  87.         write("@") -- IMPORTANT
  88.     end
  89.     cp(1,sy)
  90.     for i=1, sx do
  91.         write("@") -- IMPORTANT
  92.     end
  93.     for i=1, sy-2 do
  94.         cp(1,i+1)
  95.         write("@") -- IMPORTANT
  96.     end
  97.     for i=1, sy-2 do
  98.         cp(sx,i+1)
  99.         write("@") -- IMPORTANT
  100.     end
  101. end
  102.  
  103. function fuelCheck()
  104.     if turtle.getFuelLevel() == 0 then
  105.         print("Needs More Fuel! Feed Me!!!")
  106.         repeat
  107.             turtle.refuel(1)
  108.             sleep(.1)
  109.         until turtle.getFuelLevel() ~= 0
  110.         if turtle.getFuelLevel() ~= 0 then
  111.             print("OM NOM NOM. FUAL MAKE ME STRONG AGAIN!")
  112.             print("You feed me "..turtle.getFuelLevel().." Units!")
  113.         end
  114.     end
  115. end
  116.  
  117. function pre_tunnel(select)
  118.     if select == 5 then
  119.         --turtle_manual()
  120.     else
  121.         drawScreen()
  122.         cp(3,3)
  123.         write("Distance: ")
  124.         inp = tonumber(read())
  125.         if type(inp) == "number" then
  126.             if select == 1 then
  127.                 tunnel(inp)
  128.             elseif select == 2 then
  129.                 tunnel_2(inp)
  130.             elseif select == 3 then
  131.                 tunnel_down(inp)
  132.             elseif select == 4 then
  133.                 tunnel_3x1(inp)
  134.             end
  135.         else
  136.             cp(3,4)
  137.             print("Distance was not a number or invalid!")
  138.             sleep(1)
  139.         end
  140.     end
  141. end
  142.  
  143. function tunnel(dis)
  144.     clr()
  145.     cp(1,1)
  146.     print("Tunneling for "..dis.." Block(s) long")
  147.     sleep(.5)
  148.     shell.run("tunnel "..dis)
  149.     sleep(.01)
  150.     for i=1, 2 do turtle.turnLeft() sleep(.01) end
  151.     turtle.up()
  152.     repeat
  153.         turtle.digUp()
  154.         sleep(.2)
  155.     until turtle.detect() == false
  156.     turtle.up()
  157.     sleep(.01)
  158.     shell.run("tunnel "..dis)
  159.     for i=1, 2 do turtle.turnLeft() sleep(.01) end
  160.     for i=1, 2 do turtle.down() sleep(.01) end
  161. end
  162.  
  163. function tunnel_2(dis)
  164.     clr()
  165.     cp(1,1)
  166.     print("Tunneling for "..dis.." Block(s) long")
  167.     sleep(.5)
  168.     for i=1, dis do
  169.         turtle.turnRight()
  170.         for i=1, 4 do
  171.             if i ~= 4 then
  172.                 repeat
  173.                     turtle.digUp()
  174.                     sleep(.1)
  175.                 until turtle.detectUp() == false
  176.             end
  177.             repeat
  178.                 turtle.dig()
  179.                 sleep(.1)
  180.             until turtle.detect() == false
  181.             fuelCheck()
  182.             if 1 ~= 4 then
  183.                 turtle.up()
  184.             end
  185.         end
  186.         for i=1, 2 do turtle.turnLeft() sleep(.01) end
  187.         for i=1, 4 do
  188.             repeat
  189.                 turtle.dig()
  190.                 sleep(.1)
  191.             until turtle.detect() == false
  192.             fuelCheck()
  193.             if i ~= 4 then
  194.                 turtle.down()
  195.             end
  196.         end
  197.         turtle.turnRight()
  198.         if i ~= dis then
  199.             repeat
  200.                 turtle.dig()
  201.                 sleep(.2)
  202.             until turtle.detect() == false
  203.             turtle.forward()
  204.         end
  205.     end
  206.     for i=1, dis-1 do
  207.         turtle.back()
  208.     end
  209.     for i=1, 3 do turtle.down() sleep(.01) end
  210. end
  211.  
  212. function tunnel_down(dis)
  213.     clr()
  214.     cp(1,1)
  215.     print("Tunneling for "..dis.." Block(s) long")
  216.     sleep(.5)
  217.     for i=1, dis do
  218.         turtle.digDown()
  219.         fuelCheck()
  220.         if dis ~= 1 then
  221.             turtle.down()
  222.         end
  223.     end
  224.     for i=1, dis do
  225.         fuelCheck()
  226.         if dis ~= 1 then
  227.             turtle.up()
  228.         end
  229.     end
  230. end
  231.  
  232. function tunnel_3x1(dis)
  233.     clr()
  234.     cp(1,1)
  235.     print("Tunneling for "..dis.." Block(s) long")
  236.     sleep(.5)
  237.     for i=1, dis do
  238.         turtle.turnRight()
  239.         repeat
  240.             turtle.dig()
  241.             sleep(.1)
  242.         until turtle.detect() == false
  243.         for i=1, 2 do turtle.turnLeft() sleep(.1) end
  244.         repeat
  245.             turtle.dig()
  246.             sleep(.1)
  247.         until turtle.detect() == false
  248.         turtle.turnRight()
  249.         repeat
  250.             turtle.dig()
  251.             sleep(.2)
  252.         until turtle.detect() == false
  253.         turtle.forward()
  254.     end
  255.     for i=1, dis do
  256.         turtle.back()
  257.     end
  258. end
  259.  
  260. function turtle_manual()
  261.     local runin = true
  262.     clr()
  263.     cp(1,1)
  264.     local direct = "forward"
  265.     print("'wasd' or arrow keys will work")
  266.     print("'e' or enter to break or destroy")
  267.     print("'q' to exit")
  268.     print("")
  269.     print("")
  270.     print("q      w       e       .")
  271.     print("     a s d           . . .")
  272.     while runin do
  273.         local a,i,z = os.pullEvent("key")
  274.         if i == keys.w or i == keys.up and z == true then
  275.             if direct ~= "forward" then
  276.                 if direct == "right" then
  277.                     turtle.turnLeft()
  278.                     direct = "forward"
  279.                 else
  280.                     turtle.turnRight()
  281.                     if direct == "back" then direct = "right" else direct = "forward" end
  282.                 end
  283.             else
  284.                 turtle.forward()
  285.             end
  286.         elseif i == keys.s or i == keys.down and z == true then
  287.             if direct ~= "back" then
  288.                 if direct == "right" then
  289.                     turtle.turnLeft()
  290.                     direct = "back"
  291.                 else
  292.                     turtle.turnRight()
  293.                     if direct == "back" then direct = "right" else direct = "forward" end
  294.                 end
  295.             else
  296.                 turtle.forward()
  297.             end
  298.         elseif i == keys.d or i == keys.right and z == true then
  299.             if direct ~= "right" then
  300.                 if direct == "forward" then
  301.                     turtle.turnRight()
  302.                     direct = "right"
  303.                 else
  304.                     turtle.turnLeft()
  305.                     if direct == "back" then direct = "left" else direct = "right" end
  306.                 end
  307.             else
  308.                 turtle.forward()
  309.             end
  310.         elseif i == keys.a or i == keys.left and z == true then
  311.             if direct ~= "left" then
  312.                 if direct == "forward" then
  313.                     turtle.turnLeft()
  314.                     direct = "left"
  315.                 else
  316.                     turtle.turnRight()
  317.                     if direct == "back" then direct = "left" else direct = "right" end
  318.                 end
  319.             else
  320.                 turtle.forward()
  321.             end
  322.         elseif i == keys.e or i == keys.enter and z == true then
  323.             if turtle.detect() == true then
  324.                 turtle.dig()
  325.             end
  326.         elseif i == keys.q then
  327.             runin = false
  328.         end
  329.     end
  330. end
  331.  
  332. function PN() -- PATCH NOTES
  333.     clr()
  334.     cp(1,1)
  335.     print("===================")
  336.     -- PATCH NOTES HERE --
  337.     print("Disable a tunneling option")
  338.     print("===================")
  339.     print("")
  340.     sleep(1)
  341.     print("Press any key to continue")
  342.     os.pullEvent()
  343.     sleep(.3)
  344. end
  345.  
  346. main()
Advertisement
Add Comment
Please, Sign In to add comment