AlertK

Untitled

Oct 27th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. id=2
  2. id2=163621
  3.  
  4. rap={wyd="tartak", fun="drwal", nse=2, orp=5, oka=2, zgd=0, stn=0, akt=0, pal=0, pll=turtle.getFuelLevel(), sur=0, gpx=0, gpy=0, gpz=0, pro=0, fnn="", fno="startUp", rod="", nrd=0, var=0, kom=""}
  5.  
  6.  
  7.  
  8. program=1
  9. aktywnosc=0
  10.  
  11. P1={rodzaj="P1", tekst="Czy baza aktywna?"}
  12. P2={rodzaj="P2", tekst="Czy pracowac?"}
  13.  
  14. function aktualizuj() --do aktualizowania parametrow (w tle)
  15.   napisz("Uruchamiam funkcje aktualizacji.")
  16.   while true do
  17.     repeat
  18.       a5, b5, c5, d5, e5, f5=os.pullEvent("modem_message")
  19.     until e5.rod=="K"
  20.     rap.oka=e5.oka
  21.     rap.zgd=e5.zgd
  22.     rap.orp=e5.orp
  23.     sleep(rap.oka)
  24.   end
  25. end
  26.  
  27. function raportuj() --do raportowania parametrow (w tle)
  28.   while true do
  29.   local tablica={wyd=rap.wyd, fun=rap.fun, nse=rap.nse, orp=rap.orp, oka=rap.oka, zgd=rap.zgd, stn=rap.stn, akt=rap.akt, pal=rap.pal, pll=rap.pll, sur=rap.sur, gpx=rap.gpx, gpy=rap.gpy, gpz=rap.gpz, pro=rap.pro, fnn=rap.fnn, fno=rap.fno, rod="R", nrd=rap.nrd, var=rap.var, kom=rap.kom}
  30.     rap.pll=turtle.getFuelLevel()
  31.     modem.transmit(1, id, tablica)
  32.     sleep(rap.orp)
  33.   end
  34. end
  35.  
  36. function napisz(arg1) --do komentowania w ramach funkcji
  37.   local tablica={wyd=rap.wyd, fun=rap.fun, nse=rap.nse, oka=rap.oka, orp=rap.orp, zgd=rap.zgd, stn=rap.stn, akt=rap.akt, pal=rap.pal, pll=rap.pll, sur=rap.sur, gpx=rap.gpx, gpy=rap.gpy, gpz=rap.gpz, pro=rap.pro, rod="F", nrd=0, var=0, kom=arg1, fnn=rap.fnn, fno=rap.fno} --pobiera zmienne z tablicy glownej (wiekszosc) ale przypisuje wlasny rodzaj i tresc komunikatu
  38.   print(arg1)
  39.   modem.transmit(1, id, tablica)
  40. end
  41.  
  42. function uruchom_modem() - uruchamia modem, zwraca true jesli otwarty na kanale id
  43.  
  44.   modem=peripheral.wrap("right")
  45.   modem.open(id)
  46.   if modem.isOpen(id)==true then
  47.     rap.fnn="W1"
  48.     rap.fno="uruchom_modem"
  49.     napisz("Modem otwarty na kanale"..id)
  50.   else
  51.     print("Modem nie zostal otwarty")
  52.   end
  53. end
  54.  
  55. function wyslij(arg1) --(raczej do usuniecia)
  56.  
  57.   tablica = {numer=id, stan=aktywnosc, rodzaj=arg1.rodzaj, tekst=arg1.tekst}
  58.   modem.transmit(1, id, tablica)
  59. end
  60.  
  61. function odpbazy(q1, q2) -- do niczego nie powinno teraz sluzyc, ewentualnie zostawic
  62.   os.startTimer(q2)
  63.   repeat
  64.     a1, b1, c1, d1, e1, f1 = os.pullEvent()
  65.   until ((a1=="modem_message") and (q1==e1.rodzaj)) or (a1=="timer")
  66.   if (a1=="modem_message") and (q1==e1.rodzaj) then
  67.     return e1.tekst
  68.   elseif a1=="timer" then
  69.     return a1
  70.   end    
  71. end
  72.  
  73. function polaczenie_z_baza(arg1, arg2, arg3, arg4) --czeka na odpowiedz zwrotna na tablice rodzaju "P" o tresci: ARG1 (rodzaj pytania-nrd), ARG2 (tresc komunikatu-kom) przez ARG3 czasu i czynnosc te powtarza ARG4 razy. Zwraca tresc komentarza tablicy zwroconej (kom), jezeli spelnione zostaly warunki (zgodnosc zmiennej var).
  74.   rap.fnn="W2"
  75.   rap.fno="polaczenie_z_baza"
  76.   local warunek=0
  77.   local licz=0
  78.   napisz("Polaczenie_z_baza(): Wysylam pytanie numer:")
  79.   napisz(arg1)
  80.   repeat
  81.     local tablica={wyd=rap.wyd, fun=rap.fun, orp=rap.orp, zgd=rap.zgd, stn=rap.stn, akt=rap.akt, pal=rap.pal, pll=rap.pll, sur=rap.sur, gpx=rap.gpx, gpy=rap.gpy, gpz=rap.gpz, pro=rap.pro, rod="P", nrd=arg1, kom=arg2, var=id2, fnn=rap.fnn, fno=rap.fno}
  82.     modem.transmit(1, id, tablica)
  83.     napisz("Polaczenie_z_baza(): proba: "..licz)
  84.     os.startTimer(arg3)
  85.     repeat
  86.       a1, b1, c1, d1, e1, f1 = os.pullEvent()
  87.       if ((a1=="modem_message") and (e1.nrd==1) and (e1.rod=="P") and (e1.var==id2)) then
  88.         warunek=1
  89.       else
  90.         warunek=0
  91.       end
  92.     until (warunek==1) or (a1=="timer")
  93.     licz=licz+1
  94.   until (warunek==1) or (licz==arg4)    
  95.   if warunek==1 then
  96.     napisz("Otrzymalem wiadomosc zwrotna!")
  97.     return e1.kom
  98.   elseif a1=="timer" then
  99.     napisz("polaczenie_z_baza: Uplynal czas oczekiwania.")
  100.     return a1
  101.   else
  102.     napisz("Nieznany wynik funkcji.")
  103.   end    
  104. end
  105.  
  106. function sluchaj(arg1, arg2) --przy obecnej koncepcji niepotrzebne, ew. do wykorzystania pozniej
  107.   local odp=odpbazy(arg1.rodzaj, arg2)
  108.   return odp  
  109. end
  110.  
  111. function czypracowac() --do wyrzucenia, operujemy na zmiennych
  112.    local odp=sluchaj(P2, 10)
  113.   if odp=="TAK" then
  114.     print("Mozna pracowac!")
  115.     return odp
  116.   elseif odp=="NIE" then
  117.     print("Koniec pracy")
  118.     return odp
  119.   else
  120.     print("Inny komunikat")
  121.   end
  122. end
  123.  
  124. function sygnal(kierunek)
  125.   if kierunek=="przod" then
  126.     czyjest, blok=turtle.inspect()
  127.   elseif kierunek=="gora" then
  128.     czyjest, blok=turtle.inspectUp()
  129.   elseif kierunek=="dol" then
  130.     czyjest, blok=turtle.inspectDown()
  131.   else
  132.     napisz("F: sygnal - funkcja sygnal ze zlym parametrem")
  133.   end
  134.  
  135.   if czyjest==false then
  136.     znaleziono="nic"
  137.   elseif blok["name"]=="minecraft:log" then
  138.     znaleziono="drewno"
  139.   elseif blok["name"]=="minecraft:sapling" then
  140.     znaleziono="sadzonka"
  141.   elseif blok["name"]=="minecraft:glass" then
  142.     znaleziono="szklo"
  143.   elseif blok["name"]=="minecraft:chest" then
  144.     znaleziono="skrzynia"
  145.   elseif blok["name"]=="minecraft:leaves" then
  146.     znaleziono="lisc"
  147.   elseif blok["name"]=="minecraft:snow_layer" then
  148.     znaleziono="snieg"
  149.   elseif blok["name"]=="minecraft:nether_brick" then
  150.     znaleziono="ceglanetheru"
  151.   elseif blok["name"]=="minecraft:stone" then
  152.     znaleziono="kamien"
  153.   elseif blok["name"]=="minecraft:lit_pumpkin" then
  154.     znaleziono="lampion"
  155.   elseif blok["name"]=="minecraft:obsidian" then
  156.     znaleziono="obsydian"
  157.   elseif (blok["name"]=="minecraft:stained_glass") and (blok.state["color"]=="blue") then
  158.     znaleziono="szklo_niebieskie"
  159.   elseif (blok["name"]=="minecraft:stained_glass") and (blok.state["color"]=="red") then
  160.     znaleziono="szklo_czerwone"
  161.   elseif (blok["name"]=="minecraft:stained_glass") and (blok.state["color"]=="purple") then
  162.     znaleziono="szklo_purpurowe"
  163.   elseif (blok["name"]=="minecraft:stained_glass") and (blok.state["color"]=="yellow") then
  164.     znaleziono="szklo_zolte"
  165.   elseif (blok["name"]=="minecraft:stained_glass") and (blok.state["color"]=="orange") then
  166.     znaleziono="szklo_pomaranczowe"
  167.   else
  168.     znaleziono="inne"
  169.   end
  170.   return znaleziono
  171. end
  172.  
  173. function ruch()
  174.   local ruch=rap.fno
  175.   rap.fno="ruch"
  176.   if sygnal("dol")=="ceglanetheru" then
  177.     napisz("F: ruch - Jestem na linii. Zaczynam isc")
  178.     while sygnal("dol")=="ceglanetheru" do
  179.       if (sygnal("przod")=="lisc") or (sygnal("przod")=="snieg") then
  180.         turtle.dig()
  181.       end
  182.       turtle.suck()
  183.       turtle.forward()  
  184.     end
  185.     napisz("F: ruch - Koniec linii.")
  186.   else
  187.     napisz("Nie jestem na linii. Nie mog isc.")
  188.     rap.pro=1
  189.   end
  190.   rap.fno=ruch
  191. end
  192.  
  193. function wytnijpion()
  194.   local wytnijpion = rap.fno
  195.   rap.fno="wytnij_pion"
  196.   napisz("Zaczynam funkcje wytnijpion.")
  197.   local licz=0
  198.   while (sygnal("przod")=="drewno") or (sygnal("gora")=="drewno") do
  199.     turtle.dig()
  200.     turtle.digUp()
  201.     turtle.up()
  202.     licz=licz+1
  203.     napisz("Scialem pionow:")
  204.     napisz(licz)
  205.   end
  206.   napisz("F: wytnijpion - zjezdzam w dol")
  207.   while turtle.down()==true do
  208.   end
  209.   turtle.dig()
  210.   napisz("Koniec funkcji wytnij_pion")
  211.   rap.fno=wytnijpion
  212. end
  213.  
  214. function posadzswierka()
  215.   local posadzswierka=rap.fno
  216.   rap.fno="posadzswierka"
  217.   turtle.select(16)
  218.   slot = turtle.getItemDetail()
  219.   if (slot.name=="minecraft:sapling") and (slot.count>4) then
  220.     napisz("F:posadzswierka - zaczynam sadzic na 4 polach")
  221.     turtle.digUp()
  222.     turtle.up()
  223.     turtle.placeDown()
  224.     turtle.dig()
  225.     turtle.forward()
  226.     turtle.placeDown()
  227.     turtle.turnRight()
  228.     turtle.dig()
  229.     turtle.forward()
  230.     turtle.placeDown()
  231.     turtle.turnRight()
  232.     turtle.dig()
  233.     turtle.forward()
  234.     turtle.placeDown()
  235.     turtle.turnLeft()
  236.     turtle.turnLeft()
  237.     turtle.forward()
  238.     turtle.dig()
  239.     turtle.forward()
  240.     turtle.digDown()
  241.     turtle.down()
  242.   else
  243.     napisz("F: posadzswierka - Brak sadzonek. Ide dalej")
  244.     turtle.turnRight()
  245.     turtle.forward()
  246.     turtle.turnLeft()
  247.     turtle.forward()
  248.     turtle.dig()
  249.     turtle.forward()
  250.     turtle.dig()
  251.     turtle.forward()
  252.   end
  253.   turtle.select(1)
  254.   rap.fno=posadzswierka
  255. end
  256.  
  257. function wycinka()
  258.   local wycinka=rap.fno
  259.   rap.fno="wycinka"
  260.   if sygnal("dol")=="obsydian" then
  261.     napisz("F: wycinka - Ustawiony do ciecia. Zaczynam wycinke.")
  262.     turtle.dig()
  263.     turtle.forward()
  264.     wytnijpion()
  265.     turtle.turnLeft()
  266.     turtle.dig()
  267.     turtle.forward()
  268.     turtle.turnRight()
  269.     wytnijpion()
  270.     posadzswierka()
  271.   else
  272.     napisz("F: wycinka - wywolano wycinke w zlym miejscu")  
  273.   end
  274.   rap.fno=wycinka
  275. end
  276.  
  277. function zawroc()
  278.   local zawroc=rap.fno
  279.   rap.fno="zawroc"
  280.   if sygnal("dol")=="szklo_czerwone" then  
  281.     napisz("F: zawroc - zawracam")
  282.     turtle.turnRight()
  283.     turtle.dig()
  284.     turtle.forward()
  285.     turtle.turnRight()
  286.   else
  287.     napisz("F:zawroc - Nie jestem ustawiony na polu zawracania")
  288.   end
  289.   rap.fno=zawroc
  290. end
  291.  
  292. function powrot()
  293.   local powrot=rap.fno
  294.   rap.fno="powrot"
  295.   napisz("F: powrot - Zaczynam funkcje powrot")
  296.   if sygnal("dol")=="szklo_purpurowe" then
  297.     while (sygnal("dol")=="szklo_purpurowe") or (sygnal("dol")=="kamien") or (sygnal("dol")=="lampion") do
  298.       turtle.suck()
  299.       if (sygnal("przod")=="lisc") or (sygnal("przod")=="snieg") then
  300.         turtle.dig()
  301.       end
  302.       turtle.forward()
  303.     end
  304.     if sygnal("dol")=="szklo_czerwone" then
  305.       napisz("Koniec powrotu. Pole poprawne.")
  306.     else
  307.       napisz("F: powrot - Powrot zakonczony niepoprawnie.")
  308.     end
  309.   else
  310.     napisz("F: powrot - Nie jestem ustawiony na starcie powrotu")
  311.   end
  312.   rap.fno=powrot
  313. end
  314.  
  315. function seriawycinka()
  316.   local seriawycinka=rap.fno
  317.   rap.fno="seriawycinka"
  318.   napisz("Zaczynam funkcje seriawycinka")
  319.   if sygnal("dol")=="szklo_niebieskie" then
  320.     turtle.dig()
  321.     turtle.forward()
  322.     repeat
  323.       ruch()
  324.       wycinka()
  325.     until sygnal("dol")=="szklo_czerwone"
  326.   else
  327.     napisz("F: seriawycinka - Nie jestem ustawiony na starcie serii wycinki.")
  328.   end
  329.   rap.fno=seriawycinka
  330. end
  331.  
  332. function czypusty()
  333.   local czypusty = rap.fno
  334.   rap.fno="czypusty"
  335.   local licz2=1
  336.   local znaleziono=0
  337.   repeat
  338.     if turtle.getItemCount(licz2)>0 then
  339.       znaleziono=1
  340.     end  
  341.     licz2=licz2+1
  342.   until licz2==17
  343.   if znaleziono==0 then
  344.     napisz("F:czypusty. Rozladowano")
  345.     return true
  346.   else
  347.     napisz("F:czypusty. Nie rozladowano!")
  348.     return false
  349.   end
  350.   rap.fno=czypusty
  351. end
  352.  
  353. function wysyp()
  354.   local wysyp=rap.fno
  355.   rap.fno="wysyp"
  356.   if (sygnal("dol")=="szklo_niebieskie") and (sygnal("przod")=="skrzynia") then
  357.     napisz("F: wysyp - zaczynam wysypywac")
  358.     local licz=1
  359.     repeat
  360.       turtle.select(licz)
  361.       turtle.drop()
  362.       licz=licz+1
  363.     until licz==17
  364.     if czypusty()==true then
  365.       napisz("F:wysyp. Material wysypany.")
  366.       return true
  367.     else
  368.       napisz("F:wysyp. Wysypywanie nieskuteczne.")
  369.       return false
  370.     end
  371.   else
  372.     napisz("F:wysyp. Nie moge wysypac. Niewlasciwe pole.")
  373.     return false
  374.   end
  375.   rap.fno=wysyp
  376. end
  377.  
  378. function rozladunek()
  379.   local rozladunek=rap.fno
  380.   rap.fno="rozladunek"
  381.   if sygnal("dol")=="szklo_czerwone" then
  382.     napisz("Pole czerwone. Ustawiam do rozladunku")
  383.     if sygnal("przod")~="szklo" then
  384.       repeat
  385.         turtle.turnLeft()
  386.       until sygal("przod")=="szklo"
  387.     end
  388.     turtle.turnRight()
  389.     turtle.dig()
  390.     turtle.forward()
  391.     turtle.turnLeft()
  392.   elseif sygnal("dol")=="szklo_zolte" then
  393.     napisz("Pole zolte. Ustawiam do rozladunku.")
  394.     if sygnal("przod")~="skrzynia" then
  395.       repeat
  396.         turtle.turnLeft()
  397.       until sygnal("przod")=="skrzynia"
  398.     end
  399.     turtle.turnLeft()
  400.     turtle.dig()
  401.     turtle.forward()
  402.     turtle.dig()
  403.     turtle.forward()
  404.     turtle.dig()
  405.     turtle.forward()
  406.     turtle.turnRight()
  407.   elseif sygnal("dol")=="szklo_niebieskie" then
  408.     if sygnal("przod")~="skrzynia" then
  409.       repeat
  410.         turtle.turnLeft()
  411.       until sygnal("przod")=="skrzynia"
  412.     end  
  413.   elseif sygnal("dol")=="szklo_pomaranczowe" then
  414.     napisz("Pole pomaranczowe. Ustawiam do rozladunku")
  415.     if sygnal("przod")~="skrzynia" then
  416.       repeat
  417.         turtle.turnLeft()
  418.       until sygnal("przod")=="skrzynia"
  419.     end
  420.     turtle.turnRight()
  421.     turtle.dig()
  422.     turtle.forward()
  423.     turtle.dig()
  424.     turtle.forward()
  425.     turtle.turnLeft()
  426.   else
  427.     napisz("F:rozladunek. Nie stoje na pozycji do ustawiania")
  428.   end
  429.  
  430.   if (sygnal("dol")=="szklo_niebieskie") and sygnal("przod")=="skrzynia" then
  431.     napisz("Ustawiony na polu rozladunku. Wywoluje funkcje wysyp()")
  432.     wysyp()
  433.     turtle.turnLeft()
  434.     turtle.turnLeft()  
  435.   else
  436.     napisz("F:rozladunek - nie stoje na pozycji do wysypu")
  437.   end
  438.   rap.fno=rozladunek
  439. end
  440.  
  441. function tankuj()
  442.   local tankuj=rap.fno
  443.   rap.fno="tankuj"
  444.  
  445.   if czypusty()==true then
  446.     if (sygnal("dol")=="szklo_zolte") and (sygnal("przod")=="skrzynia") then
  447.       napisz("F:tankuj. Rozpoczynam tankowanie")
  448.       turtle.select(1)
  449.       local tank=1
  450.       repeat
  451.         turtle.suck()
  452.         turtle.refuel()
  453.         tank=tank+1
  454.       until tank==16  
  455.       napisz("F:tankuj. Zakonczono tankowanie. Poziom paliwa:")
  456.       napisz(turtle.getFuelLevel())
  457.     else
  458.       napisz("F:tankuj. Nie ustawiony do tankowania.")  
  459.     end
  460.   else
  461.     napisz("F:tankuj. Inwentaz nie oprozniony")  
  462.   end
  463.   rap.fno=tankuj
  464. end
  465.  
  466. function tankowanie()
  467.   local tankowanie=rap.fno
  468.   rap.fno="tankowanie"
  469.   if turtle.getFuelLevel()<2000 then
  470.     if sygnal("dol")=="szklo_niebieskie" then
  471.       napisz("Pole niebiesie. Ustawiam do tankowania")
  472.       repeat
  473.         turtle.turnLeft()
  474.       until sygnal("przod")=="skrzynia"
  475.       turtle.turnRight()
  476.       turtle.dig()
  477.       turtle.forward()
  478.       turtle.dig()
  479.       turtle.forward()
  480.       turtle.dig()
  481.       turtle.forward()
  482.       turtle.turnLeft()
  483.       tankuj()
  484.       elseif sygnal("dol")=="szklo_czerwone" then
  485.       napisz("Pole czerwone. Ustawiam do tankowania")
  486.       repeat
  487.         turtle.turnLeft()
  488.       until sygnal("dol")=="szklo"
  489.       turtle.turnRight()
  490.       turtle.dig()
  491.       turtle.forward()
  492.       turtle.dig()
  493.       turtle.forward()
  494.       turtle.dig()
  495.       turtle.forward()
  496.       turtle.dig()
  497.       turtle.forward()
  498.       turtle.turnLeft()    
  499.       tankuj()
  500.     elseif sygnal("dol")=="szklo_zolte" then
  501.       napisz("Pole wlasciwe do tankowania")
  502.       repeat
  503.         turtle.turnLeft()
  504.       until sygnal("przod")=="skrzynia"
  505.       tankuj()
  506.     else
  507.       napisz("F:tankowanie. Nie jestem ustawiony na pozycji wyjsciowej")
  508.     end  
  509.   else
  510.     napisz("F:tankowanie. Bak pelny. Nie ma potrzeby ustawiania")
  511.   end
  512.   rap.fno=tankowanie
  513. end
  514.  
  515. function ust_pobor_sadzonek()
  516.   local ust_pobor_sadzonek=rap.fno
  517.   rap.fno="ust_pobor_sadzonek"
  518.   if sygnal("dol")=="szklo_zolte" then
  519.     napisz("Pole zolte. Ustawiam do poboru sadzonek.")
  520.     if sygnal("przod")~="skrzynia" then
  521.       repeat
  522.         turtle.turnLeft()
  523.       until sygnal("przod")=="skrzynia"
  524.     end
  525.     turtle.turnLeft()
  526.     turtle.dig()
  527.     turtle.forward()
  528.     turtle.dig()
  529.     turtle.forward()
  530.     turtle.dig()
  531.     turtle.forward()
  532.     turtle.dig()
  533.     turtle.forward()
  534.     turtle.dig()
  535.     turtle.forward()    
  536.     turtle.turnRight()
  537.   elseif sygnal("dol")=="szklo_niebieskie" then
  538.     napisz("Szklo niebieskie. Ustawiam do poboru sadzonek")
  539.     if sygnal("przod")~="skrzynia" then
  540.       repeat
  541.         turtle.turnLeft()
  542.       until sygnal("przod")=="skrzynia"
  543.     end
  544.     turtle.turnLeft()
  545.     turtle.dig()
  546.     turtle.forward()
  547.     turtle.dig()
  548.     turtle.forward()
  549.     turtle.turnRight()
  550.   elseif sygnal("dol")=="szklo_czerwone" then
  551.     napisz("Pole czerwone. Ustawiam do poboru sadzonek")
  552.     if sygnal("przod")~="szklo" then
  553.       repeat
  554.         turtle.turnLeft()
  555.       until sygnal("przod")=="szklo"
  556.     end
  557.     turtle.turnLeft()
  558.     turtle.dig()
  559.     turtle.forward()
  560.     turtle.turnRight()
  561.   elseif sygnal("dol")=="szklo_pomaranczowe" then
  562.     napisz("Pole wlasciwe do poboru sadzonek")
  563.     if sygnal("przod")~="skrzynia" then
  564.       repeat
  565.         turtle.turnLeft()
  566.       until sygnal("przod")=="skrzynia"
  567.     end
  568.   else
  569.     napisz("ERR! (F:ust_pobor_sadzonek). Nie znajduje sie na pozycji wyjsciowej")
  570.   end
  571.   rap.fno=ust_pobor_sadzonek
  572. end
  573.  
  574. function czy_brac_sadzonki() --ocenia czy mamy sadzonki w slocie 16, zwraca wariant postepowania
  575.   local czy_brac_sadzonki=rap.fno
  576.   rap.fno="czy_brac_sadzonki"
  577.   if turtle.getItemCount(16)==0 then
  578.     napisz("(F:czy_brac_sadzonki). Slot pusty, mozna brac")
  579.     return "A"
  580.   else
  581.     local slot=turtle.getItemDetail(16)
  582.     if slot.name~="minecraft:sapling" then
  583.       napisz("(F:czy_brac_sadzonki). Slot zajety czyms innym")
  584.       return "B"
  585.     elseif (slot.name=="minecraft:sapling") and turtle.getItemCount(16)>41 then
  586.       napisz("(F:czy_brac_sadzonki). Wystarczajaca ilosc sadzonek")
  587.       return "C"
  588.     else
  589.       napisz("(F:czy_brac_sadzonki) Inne - mozna brac.")
  590.       return "D"
  591.     end
  592.   end
  593.   rap.fno=czy_brac_sadzonki
  594. end
  595.  
  596. function ladowanie_sadzonek()
  597. local ladowanie_sadzonek=rap.fno
  598. rap.fno="ladowanie sadzonek"
  599.  if (sygnal("dol")=="szklo_pomaranczowe") and (sygnal("przod")=="skrzynia") then
  600.   turtle.select(16)
  601.   local max=turtle.getItemSpace()
  602.   napisz("F: ladowanie_sadzonek - Na polu sadzonki. Uzupelniam sadzonki...")
  603.   turtle.suck(max)
  604.   if turtle.getItemCount(16)==0 then
  605.     rap.pro=3
  606.     napisz("F:ladowanie_sadzonek -Problem! Slot pusty po ladowaniu")
  607.   else
  608.     local slot=turtle.getItemDetail(16)
  609.     if (slot.name=="minecraft:sapling") and (slot.count>60) then
  610.       napisz("F:ladowanie_sadzonek. Zaladowano. Jest OK")
  611.     elseif (slot.name=="minecraft:sapling") and (slot.count<60) then  
  612.       rap.pro=4
  613.       napisz("F:ladowanie_sadzonek. Problem! Po zaladunku mala ilosc sadzonek")
  614.     elseif slot.name~="minecraft:sapling" then
  615.       rap.pro=5
  616.       napisz("F:ladowanie_sadzonek. Problem! W slocie zly przedmiot")
  617.       napisz(slot.name)
  618.     else
  619.       rap.pro=6
  620.       napisz("F:ladowanie_sadzonek. Inny wynik nieznany funkcji")
  621.     end      
  622.   end
  623.  else
  624.    rap.pro=7
  625.    napisz("F:ladowanie_sadzonek. Ustawiony na zlym polu")
  626.  end
  627.  rap.fno=ladowanie_sadzonek
  628. end
  629.  
  630. function sadzonki()
  631.   local sadzonki=rap.fno
  632.   rap.fno="sadzonki"
  633.   local warunek=0
  634.   repeat
  635.   ocena=czy_brac_sadzonki()
  636.     if (ocena=="A") or (ocena=="D") then
  637.       napisz("F:sadzonki - ustawiam i pobieram")
  638.       warunek=1
  639.       ust_pobor_sadzonek()
  640.       ladowanie_sadzonek()
  641.       turtle.turnRight()
  642.       turtle.dig()
  643.       turtle.forward()
  644.       turtle.dig()
  645.       turtle.forward()
  646.       turtle.turnRight()
  647.     elseif ocena=="B" then
  648.       napisz("F:sadzonki - slot zajety. Oprozniam")
  649.       rozladunek()
  650.     elseif ocena=="C" then
  651.       napisz("F:sadzonki - nie ma potrzeby uzupelniania.")
  652.       warunek=1
  653.     else
  654.       napisz("F:sadzonki- wynik funkcji ocen nieznany")
  655.       warunek=1
  656.     end
  657.   until warunek==1
  658.   rap.fno=sadzonki
  659. end
  660.  
  661. function cykl()
  662. seriawycinka()
  663. zawroc()
  664. powrot()
  665. zawroc()
  666. rozladunek()
  667. tankowanie()
  668. sadzonki()
  669. end
  670.  
  671. function wylaczone()
  672. uruchom_modem()
  673. while true do
  674. raportuj()
  675. turtle.forward()
  676. turtle.back()
  677. end
  678. end
  679.  
  680. uruchom_modem()
  681. parallel.waitForAny(aktualizuj, raportuj)
  682.  
  683. function polaczenie()
  684. polaczenie_z_baza("P", "1", 3, 144)
  685. end
Add Comment
Please, Sign In to add comment