Advertisement
LeslieCraft

[HUN] Minecraft, computercraft turtle. v1.0

Nov 25th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   --Automata banyaszo Turtle v1.0--
  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. ----------------------------------------
  53. Kijavitando hibak:
  54.   -Ha az "uritesi" savban neki megy
  55.    valaminek, ott urit.
  56.   -MOB okat nem erzekeli.
  57.   -Ha valahol leall kezzel kell a
  58.    helyere vinni. (GPS megirasa kell)
  59. ----------------------------------------
  60. ]]--
  61.  
  62.  
  63. --[[ Functions ]]--
  64.  
  65. function clear()
  66.   term.clear()
  67.   term.setCursorPos(1,1)
  68. end
  69.  
  70.  
  71.  
  72. function printF()
  73.   term.setCursorPos(3,1)
  74.   print("--Automata banyaszo Turtle v1.0--")
  75.   term.setCursorPos(13,2)
  76.   print("--By Matteo--")
  77.   term.setCursorPos(35,12)
  78.   print("V1.0")
  79.   term.setCursorPos(1,5)
  80.  
  81. end
  82.  
  83. function telepitAera()
  84.   clear()
  85.   turtle.select(1)
  86.   while szendarab ~= 3 do
  87.     printF()
  88.     print("1. Lepes")
  89.     print("")
  90.     szendarab = turtle.getItemCount(1)
  91.     szenkell = 3 - szendarab
  92.     print("Elso sor, elso slotba, rakj 3db darab szenet.")
  93.     print("Meg ennyi kell: "..szenkell)
  94.     term.setCursorPos(1,10)
  95.     print("Ha beraktad, folytatodik a telepites")
  96.     sleep(0.5)
  97.     clear()
  98.   end
  99.  
  100.   ladadarab = turtle.getItemCount(2)
  101.   turtle.select(2)
  102.   while ladadarab ~= 3 do
  103.     printF()
  104.     print("2. Lepes")
  105.     print("")
  106.     ladadarab = turtle.getItemCount(2)
  107.     ladakell = 3 - ladadarab
  108.     print("Elso sor, masodik slotba, rakj 3db ladat (chest).")
  109.     print("Meg ennyi kell: ".. ladakell)
  110.     term.setCursorPos(1,10)
  111.     print("Ha beraktad, folytatodik a telepites")
  112.     sleep(0.5)
  113.     clear()
  114.   end
  115.  
  116.   signdarab = turtle.getItemCount(3)
  117.   turtle.select(3)
  118.   while signdarab ~= 1 do
  119.     printF()
  120.     print("3. Lepes")
  121.     print("")
  122.     signdarab = turtle.getItemCount(3)
  123.     signkell = 1 - signdarab
  124.     print("Elso sor, harmadik slotba, rakj egy tablat (sign).")
  125.     print("Meg ennyi kell: ".. signkell)
  126.     term.setCursorPos(1,10)
  127.     print("Ha beraktad, folytatodik a telepites")
  128.     sleep(0.5)
  129.     clear()
  130.   end
  131.  
  132.   signdarab = turtle.getItemCount(4)
  133.   turtle.select(4)
  134.   while signdarab ~= 1 do
  135.     printF()
  136.     print("4. Lepes")
  137.     print("")
  138.     signdarab = turtle.getItemCount(4)
  139.     signkell = 1 - signdarab
  140.     print("Elso sor, negyedik slotba, rakj egy tablat (sign).")
  141.     print("Meg ennyi kell: ".. signkell)
  142.     term.setCursorPos(1,10)
  143.     print("Ha beraktad, folytatodik a telepites")
  144.     sleep(0.5)
  145.     clear()
  146.   end
  147.  
  148.   if fuel == 0 then
  149.     while turtle.getItemCount(1) == 0 do
  150.       printF()
  151.       print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
  152.       print("Rakj 2db szenet es nyomj egy entert")
  153.       read()
  154.       clear()
  155.     end
  156.     turtle.select(1)
  157.     print("Tankoltam.")
  158.     turtle.refuel(1)
  159.     sleep(1)
  160.     end
  161.    clear()
  162.    printF()
  163.    print("Epites elkezdodott, kerlek vard meg mig kesz lesz.")
  164.    for i = 1, 4, 2 do
  165.        
  166.      for i = 1, 5 do
  167.        lepesE()
  168.      end
  169.        turnL()
  170.  
  171.      for i = 1, 5 do
  172.        lepesE()
  173.      end
  174.      turnR()
  175.    end
  176.    itemInstall()
  177. end
  178.  
  179.  
  180.  
  181. function itemGo()
  182.  turtle.turnLeft()
  183.  turtle.forward()
  184.  turtle.turnRight()
  185. end
  186.  
  187.  
  188.  
  189. function itemInstall()
  190.   turtle.turnRight()
  191.   turtle.select(2)
  192.   for i = 1, 3 do
  193.     lepesE()
  194.   end
  195.   for i = 1, 2 do
  196.     turtle.place()
  197.     itemGo()
  198.   end
  199.   turtle.select(3)
  200.   turtle.place([[Kibanyaszott
  201. block-ok
  202. -------->]])
  203.   itemGo()
  204.   turtle.select(2)
  205.   turtle.place()
  206.   itemGo()
  207.   turtle.select(4)
  208.   turtle.place([[Uzemanyag nekem
  209. (szen)
  210. ------->]])
  211.   turtle.turnRight()
  212.   for i = 1, 4 do
  213.     turtle.forward()
  214.   end
  215.   turtle.turnLeft()
  216.   dropAll()
  217.   turtle.turnRight()
  218.   turtle.turnRight()
  219.   for i = 1, 3 do
  220.     turtle.forward()
  221.   end
  222.   turtle.turnRight()
  223.   clear()
  224.   banyaszas()
  225. end
  226.  
  227.  
  228.  
  229. function reFuel()
  230. fuel = turtle.getFuelLevel()
  231.   if fuel < 100 then    
  232.     turtle.select(1)
  233.     while not turtle.refuel(1) do
  234.       clear()
  235.       printF()
  236.       print("Nincs szen az egyse slotban")
  237.       sleep(3)
  238.      end
  239.     print("Tankoltam.")
  240.   end
  241. end
  242.  
  243.  
  244.  
  245. function getFuel()
  246.   local fuelslot = turtle.getItemCount(1)
  247.   turtle.turnRight()
  248.   turtle.select(1)
  249.   turtle.turnLeft()
  250.   if fuelslot < 10 then
  251.     for i = 1, 3 do
  252.       turtle.forward()
  253.     end
  254.     turtle.turnRight()
  255.     while not turtle.suck() do
  256.       clear()
  257.       printF()
  258.       print("Nincs a ladaban szen. Kerlek toltsd fel")
  259.       print("Ha feltoltotted, kiveszem.")
  260.       sleep(3)
  261.     end
  262.     clear()
  263.     printF()
  264.     turtle.turnRight()
  265.     for i = 1, 3 do
  266.       turtle.forward()
  267.     end
  268.   end
  269. end
  270.  
  271.  
  272.  
  273. function dropAll()
  274.   local slot = 2
  275.  
  276.   while slot ~= 17 do
  277.     turtle.select(slot)
  278.     turtle.drop()
  279.     slot = slot+1
  280.   end
  281. end  
  282.  
  283.  
  284.  
  285. function targetC()
  286.   lepes = 0
  287.   turtle.turnRight()
  288.   while turtle.forward() do
  289.     clear()
  290.     printF()
  291.     lepes = lepes + 1
  292.     print("Lepesek a chest-ig: "..lepes)
  293.   end
  294.  
  295.   while not turtle.forward() do
  296.     dropAll()
  297.     turtle.turnLeft()
  298.     getFuel()
  299.     turtle.turnLeft()
  300.   end
  301.   clear()
  302.   printF()
  303.   print("Ennyit megyek vissza: "..lepes)
  304.  
  305.   for i = 2, lepes do
  306.     turtle.forward()
  307.   end
  308.  
  309.   turtle.turnRight()  
  310. end
  311.  
  312.  
  313.  
  314. function digDown()
  315.  
  316.   while turtle.detectDown() do
  317.     turtle.digDown()
  318.   end
  319. end
  320.  
  321.  
  322.  
  323. function lepesE()
  324.  
  325.   while not turtle.forward() do
  326.     turtle.dig()
  327.      if turtle.getFuelLevel() == 0 then
  328.        turtle.select(1)
  329.        reFuel()
  330.      end
  331.   end
  332.   sleep(0.4)
  333.  
  334.   while turtle.detectUp() do
  335.     turtle.digUp()
  336.     sleep(0.4)
  337.   end
  338. end
  339.  
  340.  
  341.  
  342. function turnL()
  343.   turtle.turnLeft()
  344.   lepesE()
  345.   turtle.turnLeft()
  346. end
  347.  
  348.  
  349.  
  350. function turnR()
  351.   turtle.turnRight()
  352.   lepesE()
  353.   turtle.turnRight()
  354. end
  355.  
  356.  
  357. function banyaszas()
  358.   while true do
  359.     clear()
  360.     local fuel = turtle.getFuelLevel()
  361.     printF()
  362.     term.setCursorPos(1,5)
  363.     print("Online")
  364.     print("Uzemanyag szint: "..fuel)
  365.     print("")
  366.     write("Szelesseg: ")                      
  367.     szeles = read()
  368.     if szeles < "51" and szeles > "1" then
  369.       write("Hossz: ")
  370.       local hosszu = read()
  371.       if hosszu < "51" and hosszu > "1" then
  372.         hosszu = hosszu-1
  373.         szeles = szeles-1
  374.         for i = 1, szeles, 2 do
  375.          
  376.           for i = 1, hosszu do
  377.             digDown()
  378.             lepesE()
  379.             digDown()
  380.           end
  381.             turnL()
  382.  
  383.           for i = 1, hosszu do
  384.             digDown()
  385.             lepesE()
  386.             digDown()
  387.           end
  388.        
  389.           reFuel()
  390.           turnR()
  391.           targetC()
  392.         end
  393.         term.clear()
  394.         term.setCursorPos(1,1)
  395.       else
  396.         clear()
  397.         printF()
  398.         print("")
  399.         print("Hosszusagnak 2 es 50 kozottinek kell lennie")
  400.         sleep(3)
  401.         banyaszas()
  402.       end
  403.     else
  404.       clear()
  405.       printF()
  406.       print("")
  407.       print("Szelesseg 2 es 50 kozott kell lennie")
  408.       sleep(3)
  409.       banyaszas()
  410.     end
  411.   end
  412. end
  413.  
  414. function helpP()
  415.     clear()
  416.     printF()
  417.     print("Install        : Dokkolo epites.")
  418.     print("Banya program  : Banyaszo program.")
  419.     print("Help           : Menu leirasok.")
  420.     print("Leiras         : Leiras a programrol")
  421.     print("")
  422.     print("Tovabb lepeshez nyomj egy entert")
  423.     read()
  424. end
  425.  
  426. function InstallP()
  427.   clear()
  428.   printF()
  429.   print("A kovetkezo dolgok legyenek nalad:")
  430.   print(" - 5db szen")
  431.   print(" - 3db lada (chest)")
  432.   print(" - 2db tabla (sign)")
  433.   print("Ha ezek megvannak kerlek, nyomj egy entert.")
  434.   read()
  435.   clear()
  436.   telepitAera()
  437. end
  438.  
  439. function Leiras()
  440.  
  441. end
  442.  
  443. --[[ Main program ]]--
  444.  
  445.  
  446. --[[while true do //v0.9 es menu nelkuli
  447.   clear()
  448.   printF()
  449.   print("")
  450.   term.setCursorPos(1,12)
  451.   print("Parancsok: help")
  452.   term.setCursorPos(1,5)
  453.   write("Program: ")
  454.   program = read()
  455.   if program == "install" then
  456.     clear()
  457.     printF()
  458.     print("A kovetkezo dolgok legyenek nalad:")
  459.     print(" - 5db szen")
  460.     print(" - 3db lada (chest)")
  461.     print(" - 2db tabla (sign)")
  462.     print("Ha ezek megvannak kerlek, nyomj egy entert.")
  463.     read("")
  464.     clear()
  465.     telepitAera()
  466.   elseif program == "help" then
  467.     clear()
  468.     printF()
  469.     print("install: Dokkolo epites.")
  470.     print("banya:   Banyaszo program.")
  471.     term.setCursorPos(1,12)
  472.     print("Tovabb lepeshez nyomj egy [entert]")
  473.     read("")
  474.     clear()
  475.   elseif program == "banya" then
  476.     banyaszas()
  477.   else
  478.     clear()
  479.     printF()
  480.     print("Helytelen parancs, kerlek hasznald a [help] parancsot")
  481.     print("Tovabb lepeshez nyomj egy [entert]")
  482.     read("")
  483.   end
  484. end
  485. ]]--
  486.  
  487. --[[ Menu ]]--
  488.  
  489. --[[ Local Variables ]]--
  490.  
  491. local termWidth, termHeight = term.getSize()
  492. local selectedItem = 1
  493. local runing = true
  494.  
  495. --[[ Menu Metods ]]--
  496. function Choice1()
  497.   InstallP()
  498. end
  499.  
  500. function Choice2()
  501.   banyaszas()
  502. end
  503.  
  504. function Exit()
  505.   runing = false
  506. end
  507.  
  508. function Help()
  509.   helpP()
  510. --[[  print(visszaMenu)
  511.  
  512.   event, key = os.pullEvent("key")
  513.   onKeyPressed(key, visszaMenu)]]--
  514. end
  515.  
  516. function Leiras()
  517.  clear()
  518.  printF()
  519.  term.setCursorPos(1,4)
  520.  print([[A program a banyaszasra keszult. A turtle horizontalis pozicioban, 3block magassabban banyasz.
  521. Azert igy mert, a legtobb gyemantot igy lehet gyujteni a kb 9-12 bolck magassagban.]])
  522.  print("")
  523.  print("")
  524.  print("--Press Enter Key to Continue--")
  525.  read()
  526.  print([[ A programot kizarolag hobbi celbol keszitettem.
  527. Modositas nelkul szabadon terjesztheto. Terjesztesnel fel kell tuntetni a keszitot illetve a verziot.
  528.  
  529. Keszlitette: K.Laszlo Alias -Matteo-
  530. Minecraft nev: LeslieHUN]])
  531.  print("")
  532.  print("--Press Enter Key to Continue--")
  533.  read()
  534. end
  535.  
  536. --[[[//hamarosan also menuk
  537. function tovabb()
  538.  main()
  539. end
  540.  
  541. function vissza()
  542.  main()
  543. end
  544. ]]--
  545.  
  546. --[[ Menu Definitions ]]--
  547.  
  548. local mainMenu = {
  549.  [1] = { text = "   Install   ", handler = Choice1 },
  550.  [2] = { text = "Banya program", handler = Choice2 },
  551.  [3] = { text = "    Help     ", handler = Help },
  552.  [4] = { text = "   Leiras    ", handler = Leiras },
  553.  [5] = { text = "    Exit     ", handler = Exit }
  554. }
  555.  
  556. --[[local visszaMenu = { --//also menuk
  557.  [1] = { text = "Tovabb", handler = tovabb },
  558.  [2] = { text = "Vissza", handler = vissza }
  559. }
  560. ]]--
  561. --[[ Printing Methods ]]--
  562.  
  563. function printMenu ( menu )
  564.   for i = 1, #menu do
  565.     if i == selectedItem then
  566.       term.setCursorPos(10,(i+5))
  567.       print(">> "..menu[i].text.." <<")
  568.     else
  569.       term.setCursorPos(10,(i+5))
  570.       print("   "..menu[i].text)
  571.     end
  572.   end
  573. end
  574.  
  575. --[[ Handler Method ]]--
  576.  
  577. function onKeyPressed( key, menu )
  578.   if key == keys.enter then
  579.     onItemSelected(menu)
  580.   elseif key == keys.up then
  581.     if selectedItem > 1 then
  582.       selectedItem = selectedItem - 1
  583.     end
  584.   elseif key == keys.down then
  585.     if selectedItem < #menu then
  586.       selectedItem = selectedItem + 1
  587.     end
  588.   end
  589. end
  590.  
  591. function onItemSelected( menu )
  592.   menu[selectedItem].handler()
  593. end
  594.  
  595. --[[ Main Methods ]]--
  596.  
  597. function main()
  598.   while runing do
  599.     clear()
  600.     printF()
  601.     term.setCursorPos(10,5)
  602.     printMenu(mainMenu)
  603.    
  604.     event, key = os.pullEvent("key")
  605.     onKeyPressed(key,mainMenu)
  606.   end
  607. end
  608. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement