Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Programme de Minage de zone
- -- http://pastebin.com/CiyHEnUd
- local charbonSlot = 16
- local touchSlot = 15
- local idChannel = 123
- local niveauFuelMini = 5 -- niveau de déplacements auquel on doit refaire le plein de fuel
- local niveauCharbonMini = 5
- local premierSlot = 1 -- foction inventaire
- local dernierSlot = 13
- local thermalChestSlot = 14
- -- fonction refuel
- function verifFuel() -- vérifie si on a assez de fuel (déplacements) en réserve.
- -- 1 charbon = 96 deplacements
- -- On vérifie le niveau de fuel
- local niveauFuel = turtle.getFuelLevel()
- if (niveauFuel ~= "unlimited") then
- if (niveauFuel < niveauFuelMini) then
- -- On a besoin de faire le plein
- turtle.select(charbonSlot)
- turtle.refuel(1) -- on recharge pour 96 deplacements
- end
- end
- end
- function mineDevant()
- while turtle.detect() do turtle.dig() end
- end
- function mineBas()
- while turtle.detectDown() do turtle.digDown() end
- end
- function movForward()
- while not turtle.forward() do
- sleep(1)
- end
- return true
- end
- function movDown()
- while not turtle.down() do
- sleep(1)
- end
- return true
- end
- function videInventaire() -- if turtle.getItemCount(dernierSlot) > 0
- local slot
- turtle.select(thermalChestSlot)
- turtle.placeUp()
- for slot=premierSlot,dernierSlot do
- turtle.select(slot)
- while turtle.getItemCount(slot) > 0 do
- turtle.dropUp(turtle.getItemCount(slot))
- if turtle.getItemCount(slot) > 0 then
- sleep(0.5)
- end
- end
- end
- turtle.select(thermalChestSlot)
- turtle.digUp()
- end
- function turn(Str)
- if Str == "G" then turtle.turnLeft()
- else turtle.turnRight()
- end
- end
- function turninv(Str)
- if Str == "G" then turtle.turnRight()
- else turtle.turnLeft()
- end
- end
- --********************************************--
- --********** Programme principal *************--
- --********************************************--
- modem = peripheral.wrap("left")
- modem.transmit(idChannel,idChannel,"etat:attente")
- print("Entrez la dimensions de la zone a miner ?")
- print("")
- print("Longueur : ")
- longueur = tonumber(read())
- print("")
- print("Largeur : ")
- largeur = tonumber(read())
- print("")
- print("Profondeur : ")
- profondeur = tonumber(read())
- print("Je mine vers la Gauche ou la Droite ?")
- print("")
- print("G ou D : ")
- result = read()
- if(result=="G") then
- print("Appuyez sur [ENTREE] pour commencer !")
- print("!! Noubliez pas le charbon , les torches et le coffre !!")
- read()
- elseif (result=="D") then
- print("Appuyez sur [ENTREE] pour commencer !")
- print("!! Noubliez pas le charbon , les torches et le coffre !!")
- read()
- else
- print("Vous devez écrire G ou D :")
- result = read()
- end
- -- Début du minage
- modem.transmit(idChannel,idChannel,"etat:encours")
- local p=1
- while p<profondeur do -- Minage de la profondeur
- mineBas()
- turtle.down()
- p = p + 1
- local ll=1
- while ll<=largeur do
- ll = ll + 1
- local l=1
- while l<=longueur do -- Minage de la longueur
- print("rentre dans boucle: "..l)
- modem.transmit(idChannel,idChannel,"lPuits:"..l)
- mineDevant()
- verifFuel()
- movForward()
- if turtle.getItemCount(dernierSlot) > 0 then videInventaire() end
- l = l+1
- end
- turtle.turnRight()
- turtle.turnRight()
- -- demi-tour fait et revient
- turtle.select(touchSlot)
- turtle.placeDown()
- l=1
- local t=1
- while l<=longueur do
- verifFuel()
- mineDevant()
- turtle.forward()
- l = l+1
- t = t+1
- if (t>8) and (p==profondeur) then
- turtle.select(touchSlot)
- turtle.placeDown()
- t=0
- end
- end
- turn(result)
- mineDevant()
- turninv(result)
- end
- end
- videInventaire()
- modem.transmit(idChannel,idChannel,"etat:fin")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement