View difference between Paste ID: D58jLx6A and 2ScsxGP9
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