Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Funzione che taglia un albero
- local function tagliaAlbero()
- -- Stampa un messaggio che indica che l'albero sta per essere tagliato
- print('Taglia albero')
- -- La tartaruga scava il blocco davanti a sé (il tronco dell'albero)
- turtle.dig()
- -- La tartaruga si sposta in avanti per passare al blocco successivo
- turtle.forward()
- -- Esegui un ciclo per scoprire e scavare i blocchi sopra finché non si trova più nulla
- while turtle.detectUp() do
- turtle.digUp() -- Scava il blocco sopra
- turtle.up() -- Sale di un livello
- end
- -- Scende finché non trova un blocco sotto di sé
- while not turtle.detectDown() do
- turtle.down() -- Scende di un livello
- end
- -- Torna indietro alla posizione iniziale
- turtle.back()
- end
- -- Funzione che controlla la crescita degli alberi
- local function controlloCrescita()
- local check = false -- Variabile di controllo per uscire dal ciclo
- -- Il ciclo continua fino a quando un albero maturo non viene trovato
- while not check do
- print('Controllo iniziato...')
- -- La tartaruga ispeziona il blocco davanti a sé
- local success, data = turtle.inspect()
- -- Se la tartaruga è riuscita ad ispezionare un blocco
- if success then
- -- Se il blocco è un tronco (un albero maturo), avvia il taglio
- if data.tags["minecraft:logs"] then
- print("Albero maturo rilevato, inizio taglio...")
- tagliaAlbero() -- Chiama la funzione per tagliare l'albero
- check = true -- Imposta check a true per uscire dal ciclo
- -- Se il blocco è una piantina (albero non maturo)
- elseif data.tags["minecraft:saplings"] then
- print("Arboscello rilevato. In attesa che cresca...")
- print("Stadio di crescita: " .. tostring(data.state.stage)) -- Stampa lo stadio di crescita della piantina
- sleep(60) -- Attende 60 secondi prima di ricontrollare
- else
- -- Se il blocco non è né un albero né una piantina
- print("Oggetto rilevato, ma non è un albero né un arboscello.")
- print("Attendo 10 secondi prima di riprovare...") -- Messaggio di attesa
- sleep(10) -- Attende 10 secondi prima di riprovare
- end
- else
- -- Se non è stato trovato nessun blocco davanti alla tartaruga
- print("Nessun blocco rilevato davanti alla tartaruga.")
- print("Attendo 10 secondi prima di riprovare...") -- Messaggio di attesa
- sleep(10) -- Attende 10 secondi prima di riprovare
- end
- end
- end
- -- Messaggio di avvio del programma
- print("Programma Taglialegna v2.3")
- -- Chiede all'utente se vuole eseguire il programma una sola volta o in modo continuo
- print("Vuoi eseguire il programma una sola volta o in modo continuo?")
- print("Digita '1' per una sola volta, '2' per continuo:")
- -- Legge la scelta dell'utente
- local scelta = read()
- -- Se l'utente sceglie di eseguire il programma una sola volta
- if scelta == "1" then
- controlloCrescita() -- Chiama la funzione di controllo per una sola volta
- -- Se l'utente sceglie di eseguire il programma in modo continuo
- elseif scelta == "2" then
- -- Il ciclo continua per eseguire il controllo in loop infinito
- while true do
- controlloCrescita() -- Chiama la funzione di controllo in modo continuo
- end
- -- Se l'utente inserisce una scelta non valida
- else
- print("Scelta non valida. Termino il programma.") -- Messaggio di errore
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement