Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- video http://youtu.be/mkOB_U7ITjM
- -- inventaire vide sauf case 1 tome Alkahest
- -- coffre dessous 64 fer
- -- coffre dessus 64 lapis
- -- coffre face vide (sortie)
- -- coffre gauche redstone
- -- block derriere
- -- droite vide
- -- demande de x fer
- -- ferNb quantite
- function fer(ferNb)
- -- direction du coffre de redstone
- turtle.turnLeft()
- -- Calcul quantite de lapis
- local lapisNb=ferNb*4
- local lapisStack=math.floor(lapisNb/64)
- local lapisReste=lapisNb%64
- -- boucle pour crafter chaque stack de lapis
- lapisI = 0
- while lapisI<lapisStack do
- lapis(64,lapisI*64,lapisNb)
- lapisI=lapisI+1
- end
- -- craft du reste de lapis
- if lapisReste ~= 0 then
- lapis(lapisReste,lapisStack*64,lapisNb)
- end
- -- direction du coffre de sortie
- turtle.turnRight()
- -- Calcul quantite de fer
- local ferStack=math.floor(ferNb/64)
- local ferReste=ferNb%64
- -- boucle pour crafter chaque stack de fer
- local ferI = 0
- while ferI<ferStack do
- ferCraf(64,ferI*64,ferNb)
- ferI=ferI+1
- end
- -- craft fin de fer
- if ferReste ~= 0 then
- ferCraf(ferReste,ferI*64,ferNb)
- end
- info("Fini")
- end
- -- fonction interne, craft du fer
- -- qte : quantite
- -- deja : quantite deja crafte
- -- total : total demande (fonction fer())
- function ferCraf(qte,deja,total)
- info("FER "..deja.."/"..total.." : chargement lapis ("..qte..")")
- suck(5,qte,"up")
- suck(6,qte,"up")
- suck(9,qte,"up")
- suck(10,qte,"up")
- info("FER "..deja.."/"..total.." : chargement fer ("..qte..")")
- suck(2,qte,"down")
- -- Craft fer 1
- turtle.select(13)
- i = 1
- while i <= qte do
- dejafait= deja+i
- info("FER "..dejafait.."/"..total.." : craft fer")
- turtle.craft()
- -- 1 vers la sortie
- turtle.drop(1)
- -- 1 buffer pour copie
- turtle.dropDown(1)
- i = i + 1
- end
- end
- -- fonction interne, craft du lapis
- -- qte : quantite
- -- deja : quantite deja crafte
- -- total : total demande (fonction fer())
- function lapis(qte,deja,total)
- info("LAPIS "..deja.."/"..total.." : Chargement redstone ("..qte..")")
- suck(5,qte,"")
- suck(6,qte,"")
- suck(9,qte,"")
- suck(10,qte,"")
- info("LAPIS "..deja.."/"..total.." : Chargement lapis ("..qte..")")
- suck(2,qte,"up")
- -- craft
- turtle.select(13)
- i = 1
- while i <= qte do
- dejafait= deja+i
- info("LAPIS "..dejafait.."/"..total.." : craft")
- turtle.craft()
- turtle.dropUp()
- i = i + 1
- end
- end
- -- fonction récupere dans un coffre
- -- slot = slot de reception
- -- qte = quantite demande
- -- ou = emplacement du coffre
- function suck(slot,qte,ou)
- turtle.select(slot)
- total=0
- -- boucle jusqu'a quantite demande
- while total~=qte do
- if ou=="down" then
- turtle.suckDown()
- elseif ou=="up" then
- turtle.suckUp()
- else
- turtle.suck()
- end
- -- suppression de l’excedent
- total = turtle.getItemCount(slot)
- i = total - qte
- if i > 0 then
- if ou=="down" then
- turtle.dropDown(i)
- elseif ou=="up" then
- turtle.dropUp(i)
- else
- turtle.drop(i)
- end
- total=qte
- end
- end
- -- Verification si un trop plein sur le slot suivant
- total = turtle.getItemCount(slot+1)
- if total ~= 0 then
- turtle.select(slot+1)
- if ou=="down" then
- turtle.dropDown()
- elseif ou=="up" then
- turtle.dropUp()
- else
- turtle.drop()
- end
- end
- end
- -- fonction affichage
- function info(text)
- term.clear()
- term.setCursorPos(1,1)
- print(text)
- end
- -- Mise en place de la tortue vers le vide
- info("Alignement turtle")
- while turtle.detect() do
- turtle.turnLeft()
- end
- -- direction sortie
- turtle.turnLeft()
- -- demande de quantite
- info("Combien ?")
- nb = read()
- fer(tonumber(nb))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement