Advertisement
Vorakh

Taglialegna v2.3

May 11th, 2025 (edited)
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Funzione che taglia un albero
  2. local function tagliaAlbero()
  3.     -- Stampa un messaggio che indica che l'albero sta per essere tagliato
  4.     print('Taglia albero')
  5.    
  6.     -- La tartaruga scava il blocco davanti a sé (il tronco dell'albero)
  7.     turtle.dig()
  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.     while turtle.detectUp() do
  14.         turtle.digUp()  -- Scava il blocco sopra
  15.         turtle.up()     -- Sale di un livello
  16.     end
  17.    
  18.     -- Scende finché non trova un blocco sotto di sé
  19.     while not turtle.detectDown() do
  20.         turtle.down()   -- Scende di un livello
  21.     end
  22.    
  23.     -- Torna indietro alla posizione iniziale
  24.     turtle.back()
  25. end
  26.  
  27. -- Funzione che controlla la crescita degli alberi
  28. local function controlloCrescita()
  29.     local check = false  -- Variabile di controllo per uscire dal ciclo
  30.  
  31.     -- Il ciclo continua fino a quando un albero maturo non viene trovato
  32.     while not check do
  33.         print('Controllo iniziato...')
  34.        
  35.         -- La tartaruga ispeziona il blocco davanti a sé
  36.         local success, data = turtle.inspect()
  37.        
  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.                 print("Albero maturo rilevato, inizio taglio...")
  43.                 tagliaAlbero()  -- Chiama la funzione per tagliare l'albero
  44.                 check = true    -- Imposta check a true per uscire dal ciclo
  45.             -- Se il blocco è una piantina (albero non maturo)
  46.             elseif data.tags["minecraft:saplings"] then
  47.                 print("Arboscello rilevato. In attesa che cresca...")
  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.                 -- 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.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement