SHOW:
|
|
- or go back to the newest paste.
1 | - | -- Programma turtle coltivazione |
1 | + | -- Funzione che taglia un albero |
2 | - | local function farm_avanti() |
2 | + | local function tagliaAlbero() |
3 | - | for i = 0, 9, 1 do |
3 | + | -- Stampa un messaggio che indica che l'albero sta per essere tagliato |
4 | - | turtle.forward() |
4 | + | print('Taglia albero') |
5 | - | local success, data = turtle.inspectDown() |
5 | + | |
6 | - | if (data.stage.age == 7) then |
6 | + | -- La tartaruga scava il blocco davanti a sé (il tronco dell'albero) |
7 | - | turtle.digDown() |
7 | + | turtle.dig() |
8 | - | turtle.placeDown() |
8 | + | |
9 | -- La tartaruga si sposta in avanti per passare al blocco successivo | |
10 | turtle.forward() | |
11 | ||
12 | -- Esegui un ciclo per scoprire e scavare i blocchi sopra finché non si trova più nulla | |
13 | - | local function gira_sx() |
13 | + | while turtle.detectUp() do |
14 | - | turtle.turnLeft() |
14 | + | turtle.digUp() -- Scava il blocco sopra |
15 | turtle.up() -- Sale di un livello | |
16 | - | turtle.turnLeft() |
16 | + | |
17 | ||
18 | -- Scende finché non trova un blocco sotto di sé | |
19 | - | local function gira_dx() |
19 | + | while not turtle.detectDown() do |
20 | - | turtle.turnRight() |
20 | + | turtle.down() -- Scende di un livello |
21 | end | |
22 | - | turtle.turnRight() |
22 | + | |
23 | -- Torna indietro alla posizione iniziale | |
24 | turtle.back() | |
25 | - | local function torna_base() |
25 | + | |
26 | - | for i = 0, 1, 1 do |
26 | + | |
27 | - | for i = 0, 9, 1 do |
27 | + | -- Funzione che controlla la crescita degli alberi |
28 | - | turtle.forward() |
28 | + | local function controlloCrescita() |
29 | local check = false -- Variabile di controllo per uscire dal ciclo | |
30 | - | turtle.turnLeft() |
30 | + | |
31 | -- Il ciclo continua fino a quando un albero maturo non viene trovato | |
32 | while not check do | |
33 | print('Controllo iniziato...') | |
34 | - | local function gestione_inventario() |
34 | + | |
35 | -- La tartaruga ispeziona il blocco davanti a sé | |
36 | local success, data = turtle.inspect() | |
37 | ||
38 | - | local function gestione_carburante() |
38 | + | -- Se la tartaruga è riuscita ad ispezionare un blocco |
39 | if success then | |
40 | -- Se il blocco è un tronco (un albero maturo), avvia il taglio | |
41 | if data.tags["minecraft:logs"] then | |
42 | - | for i = 1, 10, 1 do |
42 | + | print("Albero maturo rilevato, inizio taglio...") |
43 | - | if (i%2) then |
43 | + | tagliaAlbero() -- Chiama la funzione per tagliare l'albero |
44 | - | farm_avanti() |
44 | + | check = true -- Imposta check a true per uscire dal ciclo |
45 | - | gira_sx() |
45 | + | -- Se il blocco è una piantina (albero non maturo) |
46 | - | else |
46 | + | elseif data.tags["minecraft:saplings"] then |
47 | - | farm_avanti() |
47 | + | print("Arboscello rilevato. In attesa che cresca...") |
48 | - | gira_dx() |
48 | + | print("Stadio di crescita: " .. tostring(data.state.stage)) -- Stampa lo stadio di crescita della piantina |
49 | sleep(60) -- Attende 60 secondi prima di ricontrollare | |
50 | else | |
51 | - | torna_base() |
51 | + | -- Se il blocco non è né un albero né una piantina |
52 | print("Oggetto rilevato, ma non è un albero né un arboscello.") | |
53 | print("Attendo 10 secondi prima di riprovare...") -- Messaggio di attesa | |
54 | sleep(10) -- Attende 10 secondi prima di riprovare | |
55 | end | |
56 | else | |
57 | -- Se non è stato trovato nessun blocco davanti alla tartaruga | |
58 | print("Nessun blocco rilevato davanti alla tartaruga.") | |
59 | print("Attendo 10 secondi prima di riprovare...") -- Messaggio di attesa | |
60 | sleep(10) -- Attende 10 secondi prima di riprovare | |
61 | end | |
62 | end | |
63 | end | |
64 | ||
65 | -- Messaggio di avvio del programma | |
66 | print("Programma Taglialegna v2.3") | |
67 | ||
68 | -- Chiede all'utente se vuole eseguire il programma una sola volta o in modo continuo | |
69 | print("Vuoi eseguire il programma una sola volta o in modo continuo?") | |
70 | print("Digita '1' per una sola volta, '2' per continuo:") | |
71 | ||
72 | -- Legge la scelta dell'utente | |
73 | local scelta = read() | |
74 | ||
75 | -- Se l'utente sceglie di eseguire il programma una sola volta | |
76 | if scelta == "1" then | |
77 | controlloCrescita() -- Chiama la funzione di controllo per una sola volta | |
78 | -- Se l'utente sceglie di eseguire il programma in modo continuo | |
79 | elseif scelta == "2" then | |
80 | -- Il ciclo continua per eseguire il controllo in loop infinito | |
81 | while true do | |
82 | controlloCrescita() -- Chiama la funzione di controllo in modo continuo | |
83 | end | |
84 | -- Se l'utente inserisce una scelta non valida | |
85 | else | |
86 | print("Scelta non valida. Termino il programma.") -- Messaggio di errore | |
87 | end | |
88 |