View difference between Paste ID: 19hLe4iL and 8yLiQePW
SHOW: | | - or go back to the newest paste.
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="", rod="", nrd=0, var=0, kom=""}
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()
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-
function napisz(arg1)
28+
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-
function uruchom_modem()
34+
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-
function wyslij(arg1)
47+
48
    rap.fno="uruchom_modem"
49
    napisz("Modem otwarty na kanale"..id)
50
  else
51
    print("Modem nie zostal otwarty")
52
  end
53-
function raportuj()
53+
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-
function odpbazy(q1, q2)
62+
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-
function polaczenie_z_baza(arg1, arg2, arg3, arg4)
74+
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-
function sluchaj(arg1, arg2)
107+
108
  return odp  
109
end
110
111
function czypracowac() --do wyrzucenia, operujemy na zmiennych
112-
function czypracowac()
112+
   local odp=sluchaj(P2, 10)
113-
  local odp=sluchaj(P2, 10)
113+
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-
  czyjest, blok=turtle.inspect()
127+
128
    czyjest, blok=turtle.inspectUp()
129-
  czyjest, blok=turtle.inspectUp()
129+
130
    czyjest, blok=turtle.inspectDown()
131-
  czyjest, blok=turtle.inspectDown()
131+
132
    napisz("F: sygnal - funkcja sygnal ze zlym parametrem")
133-
  print("funkcja sygnal ze zlym parametrem")
133+
134
135-
  program=0
135+
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-
    napisz("Jestem na linii. Zaczynam isc")
179+
180
        turtle.dig()
181
      end
182
      turtle.suck()
183
      turtle.forward()   
184
    end 
185
    napisz("F: ruch - Koniec linii.")
186
  else
187-
    napisz("Koniec linii.")
187+
188
    rap.pro=1
189
  end
190
  rap.fno=ruch
191
end
192-
  rap.fno="N/A"
192+
193
function wytnijpion()
194
  local wytnijpion = rap.fno
195
  rap.fno="wytnij_pion"
196
  napisz("Zaczynam funkcje wytnijpion.")
197-
  napisz("Zaczynam funkcj? wycinki.")
197+
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("Scialem: "..licz)
204+
    napisz(licz)
205
  end
206
  napisz("F: wytnijpion - zjezdzam w dol")
207
  while turtle.down()==true do
208
  end
209-
  rap.fno=""
209+
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-
    print("Brak sadzonek")
239+
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-
    print("Ustawiony do ciecia")
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-
    print("wywolano wycinke w zlym miejscu")  
265+
266-
    program=0 
266+
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-
    print("F:zawroc - Nie jestem ustawiony na polu zawracania")
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-
      print("Koniec powrotu. Pole poprawne.")
293+
  local powrot=rap.fno
294-
      program=1
294+
  rap.fno="powrot"
295
  napisz("F: powrot - Zaczynam funkcje powrot")
296-
      print("Powrot zakonczony niepoprawnie.")
296+
297-
      program=0
297+
298
      turtle.suck()
299
      if (sygnal("przod")=="lisc") or (sygnal("przod")=="snieg") then
300-
    print("Nie jestem ustawiony na starcie powrotu")
300+
301-
    program=0
301+
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-
      program=1
311+
312
  rap.fno=powrot
313
end
314-
    until (program==0) or (sygnal("dol")=="szklo_czerwone")
314+
315
function seriawycinka()
316-
    print("Nie jestem ustawiony na starcie serii wycinki.")
316+
  local seriawycinka=rap.fno
317-
    program=0 
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-
    print("F:czypusty. Rozladowano")
331+
332
function czypusty()
333
  local czypusty = rap.fno
334-
    print("F:czypusty. Nie rozladowano!")
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-
      print("F:wysyp. Material wysypany.")
348+
349
  end
350
  rap.fno=czypusty
351-
      print("F:wysyp. Wysypywanie nieskuteczne.")
351+
352
353
function wysyp()
354
  local wysyp=rap.fno
355-
    print("F:wysyp. Nie moge wysypac. Niewlasciwe pole.")
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-
    print("F:rozladunek. Nie stoje na pozycji do ustawiania")
404+
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-
    print("F:rozladunek - nie stoje na pozycji do wysypu")
412+
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-
      print("F:tankuj. Rozpoczynam tankowanie")
420+
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-
      print("F:tankuj. Zakonczono tankowanie. Poziom paliwa: "..turtle.getFuelLevel())
428+
429
  
430-
      print("F:tankuj. Nie ustawiony do tankowania.")  
430+
431
    napisz("Ustawiony na polu rozladunku. Wywoluje funkcje wysyp()")
432
    wysyp()
433-
    print("F:tankuj. Inwentaz nie oprozniony")  
433+
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-
      print("F:tankowanie. Nie jestem ustawiony na pozycji wyjsciowej")
474+
475
      turtle.turnRight()
476
      turtle.dig()
477-
    print("F:tankowanie. Bak pelny. Nie ma potrzeby ustawiania")
477+
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-
    print("ERR! (F:ust_pobor_sadzonek). Nie znajduje sie na pozycji wyjsciowej")
530+
531
    turtle.forward()
532
    turtle.dig()
533
    turtle.forward()
534-
function czy_brac_sadzonki()
534+
535-
    
535+
536
    turtle.turnRight()
537-
    print("(F:czy_brac_sadzonki). Slot pusty, mozna brac")
537+
538
    napisz("Szklo niebieskie. Ustawiam do poboru sadzonek")
539
    if sygnal("przod")~="skrzynia" then
540
      repeat
541
        turtle.turnLeft()
542-
      print("(F:czy_brac_sadzonki). Slot zajety czyms innym")
542+
543
    end
544
    turtle.turnLeft()
545-
      print("(F:czy_brac_sadzonki). Wystarczajaca ilosc sadzonek")
545+
546
    turtle.forward()
547
    turtle.dig()
548-
      print("(F:czy_brac_sadzonki) Inne - mozna brac.")
548+
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-
  print("Brakuje: "..max)
558+
559
    turtle.forward()
560
    turtle.turnRight()
561-
    print("F:ladowanie_sadzonek - slot pusty po ladowaniu")
561+
562
    napisz("Pole wlasciwe do poboru sadzonek")
563
    if sygnal("przod")~="skrzynia" then
564
      repeat
565-
      print("F:ladowanie_sadzonek. Zaladowano. Jest OK")
565+
566
      until sygnal("przod")=="skrzynia"
567-
      print("F:ladowanie_sadzonek. Po zaladunku mala ilosc sadzonek")
567+
568
  else
569-
      print("F:ladowanie_sadzonek. W slocie zly przedmiot")
569+
    napisz("ERR! (F:ust_pobor_sadzonek). Nie znajduje sie na pozycji wyjsciowej")
570-
      print(slot.name)
570+
571
  rap.fno=ust_pobor_sadzonek
572-
      print("F:ladowanie_sadzonek. Inny wynik nieznany funkcji")  
572+
573
574
function czy_brac_sadzonki() --ocenia czy mamy sadzonki w slocie 16, zwraca wariant postepowania
575
  local czy_brac_sadzonki=rap.fno
576-
   print("F:ladowanie_sadzonek. Ustawiony na zlym slocie")
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-
function pelnaseria()
581+
582-
  seriawycinka()  
582+
583-
  zawroc()
583+
      napisz("(F:czy_brac_sadzonki). Slot zajety czyms innym")
584-
  powrot()
584+
585-
  zawroc()
585+
586-
  rozladunek()
586+
      napisz("(F:czy_brac_sadzonki). Wystarczajaca ilosc sadzonek")
587-
  tankowanie()
587+
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-
      print("F:sadzonki - ustawiam i pobieram") 
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-
      print("F:sadzonki - slot zajety. Oprozniam")
606+
    napisz("F:ladowanie_sadzonek -Problem! Slot pusty po ladowaniu")
607
  else
608
    local slot=turtle.getItemDetail(16)
609-
      print("F:sadzonki - nie ma potrzeby uzupelniania.")
609+
610
      napisz("F:ladowanie_sadzonek. Zaladowano. Jest OK")
611
    elseif (slot.name=="minecraft:sapling") and (slot.count<60) then  
612-
      print("F:sadzonki- wynik funkcji ocen nieznany")
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-
function zgodanaprace()
618+
619-
  local odp=odpbazy("P2", 10)
619+
      rap.pro=6
620
      napisz("F:ladowanie_sadzonek. Inny wynik nieznany funkcji") 
621-
    print("Otrzymalem zgode na kolejny cykl")
621+
622-
    aktywnosc=1
622+
623
 else
624
   rap.pro=7
625-
    print("Otrzymalem rozkaz wstrzymania")
625+
   napisz("F:ladowanie_sadzonek. Ustawiony na zlym polu")
626-
    aktywnosc=0
626+
627
 rap.fno=ladowanie_sadzonek
628-
  elseif odp=="timer" then 
628+
629-
    print("Czas minal")
629+
630
function sadzonki()
631
  local sadzonki=rap.fno
632-
    print("Inny przebieg funkcji")
632+
  rap.fno="sadzonki"
633
  local warunek=0
634
  repeat
635
  ocena=czy_brac_sadzonki()
636
    if (ocena=="A") or (ocena=="D") then
637-
function sprawdzgotowosc()
637+
      napisz("F:sadzonki - ustawiam i pobieram") 
638
      warunek=1
639-
  until zgodanaprace()==true
639+
640-
  if aktywnosc==1 then
640+
641-
  end  
641+
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