Advertisement
LeslieCraft

[HUN] Minecraft, computercraft turtle. v1.0.1

Dec 26th, 2012
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   --Automata banyaszo Turtle v1.0.1--
  2.             --By Matteo--
  3.           --MC: LeslieHUN--
  4.            --2012. 11.18--
  5.  
  6. --[[
  7. ----------------------------------------
  8. 0.1 -Banyaszas.
  9. 0.2 -Minden inditasnal tankol.
  10. 2012.11.19
  11. 0.3 -HotFIX: ha nincs elotte block
  12.       akkor is banyasz maga felett.
  13. 0.4 -Fordulokent elmegy es
  14.       kiuriti magat a chest-be.
  15. 0.5 -Ha soder hullik ra, erzekeli
  16.       es kibanyassza.
  17.     -Csak akkor tankol, ha 2000 ala
  18.       esik az uzemanyag szint.
  19. 0.6 -Maga alatt is banyasz.
  20.       A tankolas fordulonkent van, nem
  21.       indulasonkent.
  22. 2012.11.20
  23. 0.7 -Install parancsal, megcsinalja
  24.       maganak a dokkolo helyet. 6x6
  25.       3chest 2tabla tartalom leirassal.
  26.     -Tankolas opcio pontositva. Akkor
  27.       tankol, ha 100 ala esik az
  28.       uzemanyag szint. Masodik chestbol
  29.       kiveszi maganak a szenet, ha a
  30.       slot1 ben 30 ala esik a szen.
  31. 2012.11.24
  32. 0.8 -HotFix: Tankilasok finomitva.
  33.      -Ha menetkozben kifogy, egyet
  34.       tankol.
  35.     -Install resznel leellenorzi a
  36.      slotok darabszamat. Ha hianyzik
  37.      kiirja, hogy mi Ês honnan.
  38.     -Indulasnal kulon parancs resz.
  39.     -Program menet, sorrend pontositva.
  40. 2012.11.25
  41. 0.9 -Fokent kulalak es felhasznalo
  42.      barat javitasok.
  43.     -Min es max hatar a szelesseg es
  44.       hosszusagnal.
  45.     -Csak szamot lehet mar megadni.
  46.     -"Menuk" jobban el vannak rendezve
  47.     -Ha tankol, de kifogyott a szen,
  48.       jelzi es var.
  49.     -Ha nem tud elolre lepni, leellenorzi
  50.       az uzemanyagszintet, ha kell tankol.
  51.  1.0-Menu rendszer berakva
  52.  2012.12.26
  53.  1.0.1
  54.     -MOB erzekeles        
  55.     -Installnal itemnek nem kell pontosan
  56.      annyinak lennie, = helyett <
  57.     -Szemet kiszedve.
  58. ----------------------------------------
  59. Kijavitando hibak:
  60.   -Ha uzemanyagert megy, nem erzekeli a
  61.    MOB okat.
  62.   -Ha valahol leall kezzel kell a
  63.    helyere vinni. (GPS megirasa kell)
  64. ----------------------------------------
  65. ]]--
  66.  
  67.  
  68. --[[ Functions ]]--
  69.  
  70. function clear()
  71.   term.clear()
  72.   term.setCursorPos(1,1)
  73. end
  74.  
  75.  
  76.  
  77. function printF()
  78.   term.setCursorPos(2,1)
  79.   print("--Automata banyaszo Turtle v1.0.1--")
  80.   term.setCursorPos(13,2)
  81.   print("--By Matteo--")
  82.   term.setCursorPos(33,12)
  83.   print("V1.0.1")
  84.   term.setCursorPos(1,5)
  85.  
  86. end
  87.  
  88. function telepitAera()
  89.   clear()
  90.   turtle.select(1)
  91.   szendarab = turtle.getItemCount(1)
  92.   while szendarab < 3 do
  93.     printF()
  94.     print("1. Lepes")
  95.     print("")
  96.     szendarab = turtle.getItemCount(1)
  97.     szenkell = 3 - szendarab
  98.     print("Elso sor, elso slotba, rakj 3db darab szenet.")
  99.     print("Meg ennyi kell: "..szenkell)
  100.     term.setCursorPos(1,10)
  101.     print("Ha beraktad, folytatodik a telepites")
  102.     sleep(0.4)
  103.     clear()
  104.   end
  105.  
  106.   ladadarab = turtle.getItemCount(2)
  107.   turtle.select(2)
  108.   while ladadarab < 3 do
  109.     printF()
  110.     print("2. Lepes")
  111.     print("")
  112.     ladadarab = turtle.getItemCount(2)
  113.     ladakell = 3 - ladadarab
  114.     print("Elso sor, masodik slotba, rakj 3db ladat (chest).")
  115.     print("Meg ennyi kell: ".. ladakell)
  116.     term.setCursorPos(1,10)
  117.     print("Ha beraktad, folytatodik a telepites")
  118.     sleep(0.4)
  119.     clear()
  120.   end
  121.  
  122.   signdarab = turtle.getItemCount(3)
  123.   turtle.select(3)
  124.   while signdarab ~= 1 do
  125.     printF()
  126.     print("3. Lepes")
  127.     print("")
  128.     signdarab = turtle.getItemCount(3)
  129.     signkell = 1 - signdarab
  130.     print("Elso sor, harmadik slotba, rakj egy tablat (sign).")
  131.     print("Meg ennyi kell: ".. signkell)
  132.     term.setCursorPos(1,10)
  133.     print("Ha beraktad, folytatodik a telepites")
  134.     sleep(0.4)
  135.     clear()
  136.   end
  137.  
  138.   signdarab = turtle.getItemCount(4)
  139.   turtle.select(4)
  140.   while signdarab ~= 1 do
  141.     printF()
  142.     print("4. Lepes")
  143.     print("")
  144.     signdarab = turtle.getItemCount(4)
  145.     signkell = 1 - signdarab
  146.     print("Elso sor, negyedik slotba, rakj egy tablat (sign).")
  147.     print("Meg ennyi kell: ".. signkell)
  148.     term.setCursorPos(1,10)
  149.     print("Ha beraktad, folytatodik a telepites")
  150.     sleep(0.4)
  151.     clear()
  152.   end
  153.  
  154.   if fuel == 0 then
  155.     while turtle.getItemCount(1) == 0 do
  156.       printF()
  157.       print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
  158.       print("Rakj 2db szenet es nyomj egy entert")
  159.       read("")
  160.       clear()
  161.     end
  162.     turtle.select(1)
  163.     print("Tankoltam.")
  164.     turtle.refuel(1)
  165.     sleep(1)
  166.   end
  167.    clear()
  168.    printF()
  169.    print("Epites elkezdodott, kerlek vard meg mig kesz lesz.")
  170.    for i = 1, 4, 2 do
  171.        
  172.      for i = 1, 5 do
  173.        lepesE()
  174.      end
  175.        turnL()
  176.  
  177.      for i = 1, 5 do
  178.        lepesE()
  179.      end
  180.      turnR()
  181.    end
  182.    itemInstall()
  183. end
  184.  
  185.  
  186.  
  187. function itemGo()
  188.  turtle.turnLeft()
  189.  turtle.forward()
  190.  turtle.turnRight()
  191. end
  192.  
  193.  
  194.  
  195. function itemInstall()
  196.   turtle.turnRight()
  197.   turtle.select(2)
  198.   for i = 1, 3 do
  199.     lepesE()
  200.   end
  201.   for i = 1, 2 do
  202.     while not turtle.place() do
  203.       clear()
  204.       printF()
  205.       print("Nem tudom lehelyezni a ladat")
  206.       sleep(1)
  207.     end
  208.     itemGo()
  209.   end
  210.   turtle.select(3)
  211.   while not turtle.place([[Kibanyaszott
  212. block-ok
  213. -------->]]) do
  214.     clear()
  215.     printF()
  216.     print("Nem tudom lehelyezni a tablat")
  217.     sleep(1)
  218.   end
  219.   itemGo()
  220.   turtle.select(2)
  221.   while not turtle.place() do
  222.     clear()
  223.     printF()
  224.     print("Nem tudom lehelyezni a ladat")
  225.     sleep(1)
  226.   end
  227.   itemGo()
  228.   turtle.select(4)
  229.   while not turtle.place([[Uzemanyag nekem
  230. (szen,fa)
  231. ------->]]) do
  232.     clear()
  233.     printF()
  234.     print("Nem tudom lehelyezni a tablat")
  235.     sleep(1)
  236.   end
  237.   turtle.turnRight()
  238.   for i = 1, 4 do
  239.     turtle.forward()
  240.   end
  241.   turtle.turnLeft()
  242.   dropAll()
  243.   turtle.turnRight()
  244.   turtle.turnRight()
  245.   for i = 1, 3 do
  246.     turtle.forward()
  247.   end
  248.   turtle.turnRight()
  249.   clear()
  250.   banyaszas()
  251. end
  252.  
  253.  
  254.  
  255. function reFuel()
  256. fuel = turtle.getFuelLevel()
  257.   if fuel < 100 then    
  258.     turtle.select(1)
  259.     while not turtle.refuel(1) do
  260.       clear()
  261.       printF()
  262.       print("Nincs szen az egyes slotban")
  263.       sleep(3)
  264.      end
  265.     fuel = turtle.getFuelLevel()
  266.     print("Tankoltam.")
  267.     print("Uzemanyag szint: "..fuel)
  268.   end
  269. end
  270.  
  271.  
  272.  
  273. function getFuel()
  274.   local fuelslot = turtle.getItemCount(1)
  275.   turtle.turnRight()
  276.   turtle.select(1)
  277.   if fuelslot < 10 then
  278.     for i = 1, 3 do
  279.       turtle.forward()
  280.     end
  281.     turtle.turnRight()
  282.     while not turtle.suck() do
  283.       clear()
  284.       printF()
  285.       print("Nincs a ladaban szen. Kerlek toltsd fel,")
  286.       print("A ladaban minimum 10 db szen legyen mindig.")
  287.       print("Ha feltoltotted, kiveszem.")
  288.       sleep(3)
  289.     end
  290.     clear()
  291.     printF()
  292.     turtle.turnRight()
  293.     for i = 1, 3 do
  294.       turtle.forward()
  295.     end
  296.     turtle.turnRight()
  297.   end
  298. end
  299.  
  300.  
  301.  
  302. function dropAll()
  303.   local slot = 2
  304.  
  305.   while slot ~= 17 do
  306.     turtle.select(slot)
  307.     turtle.drop()
  308.     slot = slot+1
  309.   end
  310. end  
  311.  
  312.  
  313.  
  314. function targetC()
  315.   local loop = true
  316.   while loop do
  317.     if turtle.forward() == true then
  318.       clear()
  319.       printF()
  320.       lepes = lepes + 1
  321.       print("Lepesek a chest-ig: "..lepes)
  322.     else
  323.       if turtle.detect() == true then
  324.         dropAll()
  325.         turtle.turnLeft()
  326.         turtle.turnLeft()
  327.         getFuel()
  328.         loop = false
  329.       else
  330.         turtle.attack()
  331.       end
  332.     end
  333.   end
  334.   clear()
  335.   printF()
  336.   print("Ennyit megyek vissza: "..lepes)
  337.  
  338.   for i = 2, lepes + 1 do
  339.     turtle.forward()
  340.   end
  341.   turtle.turnRight()  
  342. end
  343.  
  344.  
  345.  
  346. function digDown()
  347.  
  348.   while turtle.detectDown() do
  349.     turtle.digDown()
  350.   end
  351. end
  352.  
  353.  
  354.  
  355. function lepesE()
  356.  
  357.   while not turtle.forward() do
  358.     turtle.dig()
  359.      if turtle.getFuelLevel() < 10 then
  360.        turtle.select(1)
  361.        reFuel()
  362.      end
  363.   end
  364.   sleep(0.4)
  365.  
  366.   while turtle.detectUp() do
  367.     turtle.digUp()
  368.     sleep(0.4)
  369.   end
  370. end
  371.  
  372.  
  373.  
  374. function turnL()
  375.   turtle.turnLeft()
  376.   lepesE()
  377.   turtle.turnLeft()
  378. end
  379.  
  380.  
  381.  
  382. function turnR()
  383.   turtle.turnRight()
  384.   lepesE()
  385.   turtle.turnRight()
  386. end
  387.  
  388.  
  389. function banyaszas()
  390.   while true do
  391.     clear()
  392.     local fuel = turtle.getFuelLevel()
  393.     printF()
  394.     if fuel == 0 then
  395.       while turtle.getItemCount(1) == 0 do
  396.         printF()
  397.         print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
  398.         print("Rakj 2db szenet es folytatom")
  399.         sleep(.5)
  400.         clear()
  401.       end
  402.       printF()
  403.       turtle.select(1)
  404.       turtle.refuel(1)
  405.       print("Tankoltam.")
  406.       sleep(1)
  407.       clear()
  408.     end
  409.     printF()
  410.     term.setCursorPos(1,5)
  411.     local fuel2 = turtle.getFuelLevel()
  412.     print("Online")
  413.     print("Uzemanyag szint: "..fuel2)
  414.     print("")
  415.     write("Szelesseg: ")                      
  416.     szeles = read()
  417.     if szeles < "51" and szeles > "1" then
  418.       write("Hossz: ")
  419.       local hosszu = read()
  420.       if hosszu < "51" and hosszu > "1" then
  421.         hosszu = hosszu-1
  422.         szeles = szeles-1
  423.         for i = 1, szeles, 2 do
  424.          
  425.           for i = 1, hosszu do
  426.             digDown()
  427.             lepesE()
  428.             digDown()
  429.           end
  430.             turnL()
  431.  
  432.           for i = 1, hosszu do
  433.             digDown()
  434.             lepesE()
  435.             digDown()
  436.           end
  437.        
  438.           reFuel()
  439.           turnR()
  440.           lepes = 0  --athelyezve targetC() bol
  441.           turtle.turnRight()  --athelyezve targetC() bol
  442.           targetC()
  443.         end
  444.         term.clear()
  445.         term.setCursorPos(1,1)
  446.       else
  447.         clear()
  448.         printF()
  449.         print("")
  450.         print("Hosszusagnak 2 es 50 kozottinek kell lennie")
  451.         sleep(3)
  452.         banyaszas()
  453.       end
  454.     else
  455.       clear()
  456.       printF()
  457.       print("")
  458.       print("Szelesseg 2 es 50 kozott kell lennie")
  459.       sleep(3)
  460.       banyaszas()
  461.     end
  462.   end
  463. end
  464.  
  465. function helpP()
  466.     clear()
  467.     printF()
  468.     print("Install        : Dokkolo epites.")
  469.     print("Banya program  : Banyaszo program.")
  470.     print("Help           : Menu leirasok.")
  471.     print("Leiras         : Leiras a programrol")
  472.     print("")
  473.     print("Tovabb lepeshez nyomj egy entert")
  474.     read("")
  475. end
  476.  
  477. function InstallP()
  478.   clear()
  479.   printF()
  480.   print("A kovetkezo dolgok legyenek nalad:")
  481.   print(" - 5db szen")
  482.   print(" - 3db lada (chest)")
  483.   print(" - 2db tabla (sign)")
  484.   print("Ha ezek megvannak kerlek, nyomj egy entert.")
  485.   read("")
  486.   clear()
  487.   telepitAera()
  488. end
  489.  
  490. --[[ Main program ]]--
  491.  
  492.  
  493. --[[while true do //v0.9 es menu nelkuli
  494.   clear()
  495.   printF()
  496.   print("")
  497.   term.setCursorPos(1,12)
  498.   print("Parancsok: help")
  499.   term.setCursorPos(1,5)
  500.   write("Program: ")
  501.   program = read()
  502.   if program == "install" then
  503.     clear()
  504.     printF()
  505.     print("A kovetkezo dolgok legyenek nalad:")
  506.     print(" - 5db szen")
  507.     print(" - 3db lada (chest)")
  508.     print(" - 2db tabla (sign)")
  509.     print("Ha ezek megvannak kerlek, nyomj egy entert.")
  510.     read("")
  511.     clear()
  512.     telepitAera()
  513.   elseif program == "help" then
  514.     clear()
  515.     printF()
  516.     print("install: Dokkolo epites.")
  517.     print("banya:   Banyaszo program.")
  518.     term.setCursorPos(1,12)
  519.     print("Tovabb lepeshez nyomj egy [entert]")
  520.     read("")
  521.     clear()
  522.   elseif program == "banya" then
  523.     banyaszas()
  524.   else
  525.     clear()
  526.     printF()
  527.     print("Helytelen parancs, kerlek hasznald a [help] parancsot")
  528.     print("Tovabb lepeshez nyomj egy [entert]")
  529.     read("")
  530.   end
  531. end
  532. ]]--
  533.  
  534. --[[ Menu ]]--
  535.  
  536. --[[ Local Variables ]]--
  537.  
  538. local termWidth, termHeight = term.getSize()
  539. local selectedItem = 1
  540. local runing = true
  541.  
  542. --[[ Menu Metods ]]--
  543. function Choice1()
  544.   InstallP()
  545. end
  546.  
  547. function Choice2()
  548.   banyaszas()
  549. end
  550.  
  551. function Exit()
  552.   runing = false
  553. end
  554.  
  555. function Help()
  556.   helpP()
  557. --[[  print(visszaMenu)
  558.  
  559.   event, key = os.pullEvent("key")
  560.   onKeyPressed(key, visszaMenu)]]--
  561. end
  562.  
  563. function Leiras()
  564.  clear()
  565.  printF()
  566.  term.setCursorPos(1,4)
  567.  print([[A program a banyaszasra keszult. A turtle horizontalis pozicioban, 3block magassabban banyasz.
  568. Azert igy mert, a legtobb gyemantot igy lehet gyujteni a kb 9-12 bolck magassagban.]])
  569.  print("")
  570.  print("")
  571.  print("--Press Enter Key to Continue--")
  572.  read("")
  573.  print([[ A programot kizarolag hobbi celbol keszitettem.
  574. Modositas nelkul szabadon terjesztheto. Terjesztesnel fel kell tuntetni a keszitot illetve a verziot.
  575.  
  576. Keszlitette: K.Laszlo Alias -Matteo-
  577. Minecraft nev: LeslieHUN]])
  578.  print("")
  579.  print("--Press Enter Key to Continue--")
  580.  read("")
  581. end
  582.  
  583. --[[[//hamarosan also menuk
  584. function tovabb()
  585.  main()
  586. end
  587.  
  588. function vissza()
  589.  main()
  590. end
  591. ]]--
  592.  
  593. --[[ Menu Definitions ]]--
  594.  
  595. local mainMenu = {
  596.  [1] = { text = "   Install   ", handler = Choice1 },
  597.  [2] = { text = "Banya program", handler = Choice2 },
  598.  [3] = { text = "    Help     ", handler = Help },
  599.  [4] = { text = "   Leiras    ", handler = Leiras },
  600.  [5] = { text = "    Exit     ", handler = Exit }
  601. }
  602.  
  603. --[[local visszaMenu = { --//also menuk
  604.  [1] = { text = "Tovabb", handler = tovabb },
  605.  [2] = { text = "Vissza", handler = vissza }
  606. }
  607. ]]--
  608. --[[ Printing Methods ]]--
  609.  
  610. function printMenu ( menu )
  611.   for i = 1, #menu do
  612.     if i == selectedItem then
  613.       term.setCursorPos(10,(i+5))
  614.       print(">> "..menu[i].text.." <<")
  615.     else
  616.       term.setCursorPos(10,(i+5))
  617.       print("   "..menu[i].text)
  618.     end
  619.   end
  620. end
  621.  
  622. --[[ Handler Method ]]--
  623.  
  624. function onKeyPressed( key, menu )
  625.   if key == keys.enter then
  626.     onItemSelected(menu)
  627.   elseif key == keys.up then
  628.     if selectedItem > 1 then
  629.       selectedItem = selectedItem - 1
  630.     end
  631.   elseif key == keys.down then
  632.     if selectedItem < #menu then
  633.       selectedItem = selectedItem + 1
  634.     end
  635.   end
  636. end
  637.  
  638. function onItemSelected( menu )
  639.   menu[selectedItem].handler()
  640. end
  641.  
  642. --[[ Main Methods ]]--
  643.  
  644. function main()
  645.   while runing do
  646.     clear()
  647.     printF()
  648.     term.setCursorPos(10,5)
  649.     printMenu(mainMenu)
  650.    
  651.     event, key = os.pullEvent("key")
  652.     onKeyPressed(key,mainMenu)
  653.   end
  654. end
  655. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement