Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Turtle coltivatrice diretta by youtube.com/Keledan75
- -- raccoglie tutto il grano, parte solo quando davanti vede un ostacolo (grano cresciuto)
- -- si blocca quando l'ostacolo è una fence, che deve stare nel secondo slot. Al primo giro falcia
- --tutto, al secondo raccoglie tutto
- -- scarica tutti gli oggetti tranne quelli dei primi due slot (semi e fence)
- totaleFalciato = 0
- granoFalciato = 1
- unloaded = 0
- y = 0
- passiAvanti = 0
- pausa = 3600
- -- local tArgs = { ... }
- -- if #tArgs ~= 1 then
- -- print( "Uso: fattore <larghezza campo>" )
- -- return
- -- end
- local function scarica()
- print( "Scaricando Oggetti..." )
- for n=3,16 do
- unloaded = unloaded + turtle.getItemCount(n)
- turtle.select(n)
- turtle.drop()
- end
- collected = 0
- turtle.select(1)
- end
- -- crea uno stack di almeno 64 semi o del massimo numero di
- -- semi disponibile nel primo slot
- function ammassaSemi()
- for n=3,16 do
- turtle.select(1)
- if turtle.compareTo(n) then
- semi = turtle.getItemCount(n)
- -- print (semi)
- turtle.select(n)
- turtle.transferTo(1, semi)
- end
- end
- end
- -- Falcia fino a quando non incontra una fence, restituisce il numero di blocchi falciati
- function falciaAvanti()
- turtle.select(2)
- fence = turtle.compare()
- while not fence do
- turtle.select(1)
- turtle.digDown()
- turtle.placeDown()
- turtle.forward()
- turtle.select(2)
- fence = turtle.compare()
- passiAvanti = passiAvanti + 1
- end
- turtle.digDown()
- turtle.select(1)
- turtle.placeDown()
- ammassaSemi()
- return passiAvanti
- end
- -- Se è a un passaggio pari, gira a sx, va avanti fino in fondo poi gira a sx
- -- Se è un passaggio dispari, gira a dx, va avanti fino in fondo e poi gira a sx e va avanti x -1
- function ritornaChest(x, y)
- -- Passaggio dispari
- if (x % 2) == 1 then
- turtle.turnRight()
- turtle.select(2)
- fence = turtle.compare()
- -- avanti fino in fondo
- while not fence do
- turtle.forward()
- turtle.select(2)
- fence = turtle.compare()
- end
- turtle.turnLeft()
- for i=1,y do
- turtle.forward()
- end
- else
- -- Passaggio pari
- turtle.turnLeft()
- fence = turtle.compare()
- -- avanti fino in fondo
- while not fence do
- turtle.forward()
- turtle.select(2)
- fence = turtle.compare()
- end
- turtle.turnLeft()
- turtle.forward()
- end
- turtle.down()
- end
- -- controlla che ci siano elementi nel primo e nel secondo slot
- function controlloInventario()
- slot1 = 0
- slot2 = 0
- slot1 = turtle.getItemCount(1)
- slot2 = turtle.getItemCount(2)
- print ("slot 1 = " .. slot1 .. "sltot 2 : " .. slot2)
- if (slot1 < 1 or slot2 < 1) then
- return false
- else
- return true
- end
- end
- -- cammina fino al delimitare del campo e ne restituisce le dimensioni
- function dimCampo()
- local dimensioni = {0, 0}
- x = 1
- y = 1
- turtle.up()
- turtle.forward()
- for i = 1, 4 do
- turtle.select(2)
- fence = turtle.compare()
- while not fence do
- turtle.forward()
- if i == 1 then y = y + 1
- elseif i == 2 then x = x + 1 end
- fence = turtle.compare()
- end
- turtle.turnRight()
- end
- turtle.back()
- turtle.down()
- dimensioni = {x,y}
- return dimensioni
- end
- dimensioni = dimCampo()
- print ("Larghezza campo: " .. dimensioni[1])
- print ("Altezza campo: " .. dimensioni[2])
- x = dimensioni[1]
- y = dimensioni[2]
- raccogli = true
- -- ciclo di raccolta
- if not controlloInventario then
- print ("Carica semi nel primo slot e un oggetto delimitatore nel secondo.")
- else
- while raccogli do
- turtle.up()
- turtle.forward()
- for i = 1, x do
- granoFalciato = falciaAvanti()
- totaleFalciato = totaleFalciato + granoFalciato
- -- passaggio dispari
- if (i%2==1) then
- turtle.turnRight()
- turtle.forward()
- turtle.turnRight()
- -- passaggio pari
- else
- turtle.turnLeft()
- turtle.forward()
- turtle.turnLeft()
- end
- end
- ritornaChest(x, y)
- scarica()
- turtle.turnRight()
- turtle.turnRight()
- print ("Totale grano falciato: " .. totaleFalciato)
- sleep (pausa)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment