Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- pastebin get UHqpQPfT startup
- -- -------------------------------------------
- -- My excavate -Sinkir-
- -- Version 2.1 (2014/10/2)
- -- slot 1 ender Chest resources +-+-+-+-+
- -- slot 2 ender Chest fuel |C|C|L|F|
- -- slot 3 chuck Loader or anchor |S|D| | |
- -- slot 4 Fuel | | | | |
- -- slot 5 Stone(block to ignore 1) | | | | |
- -- slot 6 Dirt (block to ignore 2) +-+-+-+-+
- -- -------------------------------------------
- -- _____
- -- | ___| _ _ __ ___
- -- | |_ | | | | '_ \ / __|
- -- | _|| |_| | | | | (__
- -- |_| \__,_|_| |_|\___|
- --
- dataFilePath = "data"
- -- Exemple of data file:
- -- --------------------
- -- 1,0,0,n
- -- 2,0,0,n
- -- 3,0,0,n
- -- 4,0,0,n
- -- 4,0,1,n
- -- 4,0,2,n
- -- 4,0,3,n
- -- 4,0,3,s
- -- 3,0,3,s
- -- 2,0,3,s
- -- 1,0,3,s
- -- ...
- -- --------------------
- -- we keep 5 last move
- -- format : x,y,z,facing
- -- (n e s w)
- -- last line keep the info of the actual action
- --
- --
- -- `.+x |-z +y.'
- -- `. | .'
- -- `. |up .'
- -- north`. | .' east
- -- `. | .'
- -- :+:
- -- .' | `.
- -- west.' | `. south
- -- .' | `.
- -- .' |down `.
- -- .'-y +z| -x`.
- --
- -- yes +z is for down
- -- si x est egale a 0 on est sur la colone de bloc devan l'anchor
- -- si x est egale a 8 on est sur la colone de fin
- -- si y est egale a 1 on remonte pour retrouvé l'anchor
- -- si y est egale a 0 on continue de dessendre
- -- si z est egale a 0 on est sur la ligne de bloc de l'anchor
- -- si x = 8 && z == 0 on dessend
- -- si x = 8 && z == 3 on stop dessendre on ce retourne
- -- si x = 0 && z == 3 on dessend
- -- si x = 0 && z == 6 on stop dessendre on ce retourne
- -- si x = 8 && z == 6 on dessend
- -- si x = 8 && z == 9 on stop dessendre on ce retourne
- function testFuel()
- if(fuel() < 16)then
- print('Plus de coco, test de refuel')
- select(4)
- turtle.refuel(1)
- end
- if(count(4) == 0)then
- return false
- end
- return true
- end
- function checkFuel()
- if(turtle.compareTo(4) == true)then
- if(count(4) < 64) then
- turtle.transferTo(4, turtle.getItemSpace(4))
- end
- end
- end
- function go(i)
- if(i == nil)then
- i = 0
- end
- if(turtle.detect()==true)then
- if(turtle.dig()==false)then
- fileSet(dataFilePath.."-IMPORTANT", "move,digUp,up")
- z = z-1
- return false
- else
- sleep(1)
- if(turtle.detect()==true)then
- while(i<50)do
- i=i+1
- if(turtle.dig()==true)then
- sleep(1)
- if(turtle.forward()==true)then
- return true
- else
- return go(i)
- end
- end
- sleep(0.2)
- end
- else
- if(turtle.forward()==true)then
- return true
- else
- return go(i)
- end
- end
- end
- else
- if(turtle.forward()==true)then
- return true
- else
- while(i<50 and turtle.attack() == true)do
- i=i+1
- sleep(0.2)
- end
- return go(0)
- end
- end
- return false
- end
- function up(i)
- if(i == nil)then
- i = 0
- end
- if(turtle.detectUp()==true)then
- select(7)
- if(turtle.digUp()==false)then
- return false
- else
- sleep(1)
- if(turtle.detectUp()==true)then
- while(i<50)do
- i=i+1
- if(turtle.digUp()==true)then
- sleep(1)
- if(turtle.up()==true)then
- return true
- else
- return up(i)
- end
- end
- sleep(0.2)
- end
- else
- if(turtle.up()==true)then
- return true
- else
- return up(i)
- end
- end
- end
- else
- if(turtle.up()==true)then
- return true
- else
- while(i<50 and turtle.attackUp() == true)do
- i=i+1
- sleep(0.2)
- end
- return up(0)
- end
- end
- return false
- end
- function down(i)
- if(i == nil)then
- i = 0
- end
- if(turtle.detectDown()==true)then
- select(7)
- if(turtle.digDown()==false)then
- return false
- elseif(turtle.detectDown()==true)then
- while(i<50)do
- i=i+1
- if(turtle.digDown()==true)then
- if(turtle.down()==true)then
- return true
- else
- return down(i)
- end
- end
- sleep(0.2)
- end
- else
- if(turtle.down()==true)then
- return true
- else
- return down(i)
- end
- end
- else
- if(turtle.down()==true)then
- return true
- else
- while(i<50 and turtle.attackDown() == true)do
- i=i+1
- sleep(0.2)
- end
- return down(0)
- end
- end
- return false
- end
- left = function()
- if(turtle.turnLeft()==false)then
- sleep(1)
- left()
- else
- return true
- end
- end
- right = function()
- if(turtle.turnRight()==false)then
- sleep(1)
- right()
- else
- return true
- end
- end
- function downGps()
- if(down(0)==true)then
- z=z+1
- return savedata()
- else
- print('down return false x ='..x)
- if(x == numberBlock)then
- if(y == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "move,right,go,testUpDown,test,right")
- local ligne1 = x..","..tostring(y+1)..","..z..",s\n"
- local ligne2 = x..","..tostring(y+1)..","..z..",e\n"
- local ligne3 = x..","..y..","..z..",e\n"
- local ligne4 = tabCoord[1][1]..","..tabCoord[1][2]..","..tabCoord[1][3]..","..tabCoord[1][4].."\n"
- local ligne5 = tabCoord[2][1]..","..tabCoord[2][2]..","..tabCoord[2][3]..","..tabCoord[2][4].."\n"
- local ligne6 = numberBlock..",0"
- return fileSet(dataFilePath, ligne1..ligne2..ligne3..ligne4..ligne5..ligne6)
- else
- print("wtf? call DownGps with y ="..y)
- end
- else
- if(y == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "move,left,go,testUpDown,test,left")
- local ligne1 = x..","..tostring(y+1)..","..z..",n\n"
- local ligne2 = x..","..tostring(y+1)..","..z..",e\n"
- local ligne3 = x..","..y..","..z..",e\n"
- local ligne4 = tabCoord[1][1]..","..tabCoord[1][2]..","..tabCoord[1][3]..","..tabCoord[1][4].."\n"
- local ligne5 = tabCoord[2][1]..","..tabCoord[2][2]..","..tabCoord[2][3]..","..tabCoord[2][4].."\n"
- local ligne6 = numberBlock..",0"
- return fileSet(dataFilePath, ligne1..ligne2..ligne3..ligne4..ligne5..ligne6)
- else
- print("wtf? call DownGps with y ="..y)
- end
- end
- return true
- end
- end
- function savedata()
- local ligne1 = x..","..y..","..z..","..f.."\n"
- local ligne2 = tabCoord[1][1]..","..tabCoord[1][2]..","..tabCoord[1][3]..","..tabCoord[1][4].."\n"
- local ligne3 = tabCoord[2][1]..","..tabCoord[2][2]..","..tabCoord[2][3]..","..tabCoord[2][4].."\n"
- local ligne4 = tabCoord[3][1]..","..tabCoord[3][2]..","..tabCoord[3][3]..","..tabCoord[3][4].."\n"
- local ligne5 = tabCoord[4][1]..","..tabCoord[4][2]..","..tabCoord[4][3]..","..tabCoord[4][4].."\n"
- local ligne6 = numberBlock..",0"
- return fileSet(dataFilePath, ligne1..ligne2..ligne3..ligne4..ligne5..ligne6)
- end
- function gps()
- if(x == 0 and y == 0 and z ==0 and f == "n")then
- if(go()==true)then
- x = x+1
- end
- return savedata()
- end
- if(x == 0 and y == 1 and z ==0 and f == "s")then
- if(right()==true)then
- f = "w"
- end
- return savedata()
- end
- if(x == 0 and y == 1 and z ==0 and f == "w")then
- if(go()==true)then
- y=y-1
- end
- return savedata()
- end
- if(x == 0 and y == 0 and z ==0 and f == "w")then
- select(3)
- if(turtle.compareUp() == true)then
- -- on est en dessou du chuck loader, tout va bien :)
- print('My chunck loader <3')
- fileSet(dataFilePath.."-IMPORTANT", "changeLoader,left,left,go,testUpDown,go,testUpDown,test,digUp,placeUp,back,back,digUp,go,go,left")
- return fileSet(dataFilePath, "0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n\n"..numberBlock..",0")
- else
- print("i'm in 0,0,0 and ... no Anchor ? :'(")
- end
- return savedata()
- end
- if(x > 0 and x < numberBlock)then
- if(f=="n")then
- if(go()==true)then
- x = x+1
- end
- elseif(f=="s")then
- if(go()==true)then
- x = x-1
- end
- end
- return savedata()
- end
- if(x == numberBlock)then
- if(f == "e")then
- if(right()==true)then
- f = "s"
- end
- return savedata()
- end
- if(z == 0)then
- if(y == 0)then
- return downGps()
- else
- if(f == "n")then
- if(right()==true)then
- f = "e"
- end
- elseif(f == "e")then
- if(right()==true)then
- f = "s"
- end
- else
- if(go()==true)then
- x = x-1
- end
- end
- end
- return savedata()
- end
- if(z == tonumber(tabCoord[2][3]))then
- -- si z est le meme que au dernier mouvement-1
- if(f == "s")then
- if(go()==true)then
- x = x-1
- end
- else
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- end
- else
- if(tonumber(tabCoord[2][3]) == tonumber(tabCoord[3][3]))then
- -- si, au avant-dernier mouvement on venais du meme z
- -- on continue de dessendre
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- else
- if(tonumber(tabCoord[3][3]) == tonumber(tabCoord[4][3]))then
- -- si, au avant-avant-dernier mouvement on venais du meme z
- -- on dessend encor une fois
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- else
- -- on ce retourne
- if(right()==true)then
- f = "e"
- end
- end
- end
- end
- return savedata()
- end
- if(x == 0)then
- if(f == "e")then
- if(left()==true)then
- f = "n"
- end
- return savedata()
- end
- if(z == 0)then
- if(y == 0)then
- -- change anchor (not your bisnesse gps dude)
- end
- return savedata()
- end
- --print(z.." == "..tabCoord[2][3])
- if(z == tonumber(tabCoord[2][3]))then
- -- si z est le meme que au dernier mouvement-1
- if(f == "n")then
- if(go()==true)then
- x = x+1
- end
- else
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- end
- else
- if(tonumber(tabCoord[2][3]) == tonumber(tabCoord[3][3]))then
- -- si, au avant-dernier mouvement on venais du meme z
- -- on continue de dessendre
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- else
- if(tonumber(tabCoord[3][3]) == tonumber(tabCoord[4][3]))then
- -- si, au avant-avant-dernier mouvement on venais du meme z
- -- on dessend encor une fois
- if(y == 0)then
- return downGps()
- else
- if(up()==true)then
- z = z-1
- end
- end
- else
- -- on ce retourne
- if(left()==true)then
- f = "e"
- end
- end
- end
- end
- return savedata()
- end
- end
- function getCoordinates()
- local r = {}
- local tab = split(fileGet(dataFilePath), "\n")
- for k,v in pairs(tab) do
- table.insert(r,split(v, ","))
- end
- return r
- end
- --
- --
- count = function(id)
- return turtle.getItemCount(id)
- end
- back = function()
- return turtle.back()
- end
- select = function(id)
- return turtle.select(id)
- end
- fuel = function()
- return turtle.getFuelLevel()
- end
- move = function(id, nb)
- return turtle.transferTo(id, nb)
- end
- --
- --
- function fileGet(path)
- if(fs.exists(path))then
- tabFile = fs.open(path, "r")
- text = tabFile.readAll()
- tabFile.close()
- return text
- else
- print("fileGet() File not found.")
- print(path)
- return false
- end
- end
- function fileSet(path, text)
- if(fs.isReadOnly(path))then
- print("fileSet() File is read only.")
- print(path)
- return false
- else
- tabFile = fs.open(path, "w")
- tabFile.write(text)
- tabFile.close()
- return true
- end
- end
- function split(str, pat)
- -- source of the function :
- -- http://lua-users.org/wiki/SplitJoin
- -- Compatibility: Lua-5.1
- local t = {} -- NOTE: use {n = 0} in Lua-5.0
- local fpat = "(.-)" .. pat
- local last_end = 1
- local s, e, cap = str:find(fpat, 1)
- while s do
- if s ~= 1 or cap ~= "" then
- table.insert(t,cap)
- end
- last_end = e+1
- s, e, cap = str:find(fpat, last_end)
- end
- if last_end <= #str then
- cap = str:sub(last_end)
- table.insert(t, cap)
- end
- return t
- end
- function printTab(tab)
- for key, value in pairs(tab) do
- print("[".. key .."]"..value.."")
- end
- end
- --
- --
- function init()
- if(count(1) == 0)then
- print("No ender chest for resources in slot 1.., exit")
- return false
- end
- if(count(2) == 0)then
- print("No ender chest for fuel in slot 2, exit")
- return false
- end
- if(count(3) == 0)then
- print("No chuck loader/anchor in slot 3, exit")
- return false
- end
- if(count(4) == 0)then
- print("No fuel in slot 4, exit")
- return false
- end
- if(count(5) == 0)then
- print("No block to ignore in slot 5, exit")
- return false
- end
- if(count(6) == 0)then
- print("No block to ignore in slot 6, exit")
- return false
- end
- select(3)
- if(count(3) == 2)then
- if(turtle.detectUp() == true)then
- while(turtle.digUp()==true)do
- sleep(2)
- end
- if(turtle.placeUp()==true)then
- return true
- else
- print("Can' placeUp the loader/anchor :'(")
- return false
- end
- else
- if(turtle.placeUp()==true)then
- return true
- else
- print("Can' placeUp the loader/anchor :'(")
- return false
- end
- end
- else
- if(turtle.compareUp()==true)then
- -- ok we are under the chuck loader/anchor
- return true
- else
- print("I'm lost :'(")
- return false
- end
- end
- return true
- end
- function checkSlotVide()
- if(count(16) == 0 and count(15) == 0)then
- return true
- end
- return false
- end
- function checkInv(nbflag)
- -- check si il reste un slot de vide
- if(checkSlotVide() == false) then
- if(videInv(nbflag)==false)then
- return false
- end
- end
- if(testFuel() == false) then
- if(getFuel()==false)then
- return false
- end
- end
- return true
- end
- function getFuel()
- select(7)
- if(turtle.detect()==false)then
- while(turtle.attack()==true)do
- sleep(0.1)
- end
- select(2)
- if(turtle.place() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suck,dig")
- return false
- end
- elseif(turtle.detectUp()==false)then
- while(turtle.attackUp()==true)do
- sleep(0.1)
- end
- select(2)
- if(turtle.placeUp() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suckUp,digUp")
- return false
- end
- elseif(turtle.detectDown()==false)then
- while(turtle.attackDown()==true)do
- sleep(0.1)
- end
- select(2)
- if(turtle.placeDown() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suckDown,digDown")
- return false
- end
- else
- if(back()==true)then
- sleep(0.2)
- if(turtle.detect()==false)then
- select(2)
- if(turtle.place() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suck,dig,go")
- return false
- else
- go()
- getFuel()
- end
- end
- end
- if(turtle.detect()==true)then
- if(turtle.dig()==false)then
- if(up()==true)then
- if(turtle.detectDown()==false)then
- select(2)
- if(turtle.placeDown() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suckDown,digDown,down")
- return false
- else
- down()
- getFuel()
- end
- end
- elseif(down()==true)then
- if(turtle.detectUp()==false)then
- select(2)
- if(turtle.placeUp() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suckUp,digUp,up")
- return false
- else
- up()
- getFuel()
- end
- end
- else
- print("can't go: back,up,down and can't dig")
- while (right()==false)do
- sleep(0.1)
- end
- while (right()==false)do
- sleep(0.1)
- end
- while (dig()==true)do
- sleep(0.1)
- end
- select(1)
- if(turtle.place() == true)then
- fileSet(dataFilePath.."-IMPORTANT", "getFuel,suck,dig,left,left")
- return false
- else
- getFuel()
- end
- end
- else
- getFuel()
- end
- elseif(turtle.digUp()==true)then
- getFuel()
- elseif(turtle.digDown()==true)then
- getFuel()
- end
- end
- return true
- end
- function videInv(nbflag)
- select(7)
- if(turtle.detect()==false)then
- while(turtle.attack()==true)do
- sleep(0.1)
- end
- select(1)
- if(turtle.place() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAll,dig")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAll,dig")
- end
- return false
- end
- elseif(turtle.detectUp()==false)then
- while(turtle.attackUp()==true)do
- sleep(0.1)
- end
- select(1)
- if(turtle.placeUp() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAllUp,digUp")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAllUp,digUp")
- end
- return false
- end
- elseif(turtle.detectDown()==false)then
- while(turtle.attackDown()==true)do
- sleep(0.1)
- end
- select(1)
- if(turtle.placeDown() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAllDown,digDown")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAllDown,digDown")
- end
- return false
- end
- else
- if(back()==true)then
- sleep(0.2)
- if(turtle.detect()==false)then
- select(1)
- if(turtle.place() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAll,dig,go")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAll,dig,go")
- end
- return false
- else
- go()
- videInv(0)
- end
- end
- end
- if(turtle.detect()==true)then
- if(turtle.dig()==false)then
- if(up()==true)then
- if(turtle.detectDown()==false)then
- select(1)
- if(turtle.placeDown() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAllDown,digDown,down")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAllDown,digDown,down")
- end
- return false
- else
- down()
- videInv(0)
- end
- end
- elseif(down()==true)then
- if(turtle.detectUp()==false)then
- select(1)
- if(turtle.placeUp() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAllUp,digUp,up")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAllUp,digUp,up")
- end
- return false
- else
- up()
- videInv(0)
- end
- end
- else
- print("can't go: back,up,down and can't dig")
- while (right()==false)do
- sleep(0.1)
- end
- while (right()==false)do
- sleep(0.1)
- end
- while (dig()==true)do
- sleep(0.1)
- end
- select(1)
- if(turtle.place() == true)then
- if(nbflag == 0)then
- fileSet(dataFilePath.."-IMPORTANT", "videInv,dropAll,dig,left,left")
- else
- fileSet(dataFilePath.."-IMPORTANT2", "videInv,dropAll,dig,left,left")
- end
- return false
- else
- videInv(0)
- end
- end
- else
- videInv(0)
- end
- elseif(select(3)==true and turtle.compareUp() == false and turtle.digUp()==true)then
- videInv(0)
- elseif(turtle.digDown()==true)then
- videInv(0)
- end
- end
- return true
- end
- function testUpDown(nbflag)
- if(turtle.detectUp() == true or turtle.detectDown())then
- select(5)
- flagDown = turtle.compareDown()
- flagUp = turtle.compareUp()
- select(3)
- if(turtle.compareUp()==true)then
- flagUp = true
- end
- select(6)
- if(flagDown == false and turtle.compareDown() == false)then
- repeat
- flag = turtle.suckDown()
- if(flag == true)then
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- until flag == false
- turtle.digDown()
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- if(flagUp == false and turtle.compareUp() == false)then
- repeat
- flag = turtle.suckUp()
- if(flag == true)then
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- until flag == false
- turtle.digUp()
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- end
- return true
- end
- function test(nbflag)
- if(turtle.detect() == true)then
- select(5)
- if(turtle.compare() == false)then
- select(6)
- if(turtle.compare() == false)then
- repeat
- flag = turtle.suck()
- if(flag == true)then
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- until flag == false
- turtle.dig()
- if(checkInv(nbflag)==false)then
- return false
- end
- end
- end
- end
- return true
- end
- function Shaundi()
- local save = function(data, path)
- local str = data[1]..","
- for k,v in ipairs(data)do
- if(k>2)then
- str = str..v
- if(data[k+1] ~= nil)then
- str = str..","
- end
- end
- end
- if(str == data[1]..",")then
- fs.delete(dataFilePath..path)
- else
- fileSet(dataFilePath..path, str)
- end
- end
- local path = "-IMPORTANT"
- if(fs.exists(dataFilePath.."-IMPORTANT2")==true)then
- path = "-IMPORTANT2"
- end
- local data = split(fileGet(dataFilePath..path), ",")
- if(data[1] == "videInv")then
- select(1)
- end
- if(data[1] == "getFuel")then
- select(2)
- end
- if(data[1] == "changeLoader")then
- select(7)
- end
- if(data[2]=="test")then
- if(test(1)==true)then
- save(data, path)
- end
- elseif(data[2]=="testUpDown")then
- if(testUpDown(1)==true)then
- save(data, path)
- end
- elseif(data[2]=="go")then
- if(go()==true)then
- save(data, path)
- end
- elseif(data[2]=="back")then
- if(back()==true)then
- save(data, path)
- end
- elseif(data[2]=="left")then
- if(left()==true)then
- save(data, path)
- end
- elseif(data[2]=="right")then
- if(right()==true)then
- save(data, path)
- end
- elseif(data[2]=="up")then
- if(up()==true)then
- save(data, path)
- end
- elseif(data[2]=="down")then
- if(down()==true)then
- save(data, path)
- end
- elseif(data[2]=="dig")then
- if(turtle.dig()==true)then
- save(data, path)
- end
- elseif(data[2]=="digUp")then
- if(data[1] == "changeLoader")then
- select(3)
- end
- if(turtle.detectUp() == false or turtle.digUp()==true)then
- save(data, path)
- end
- elseif(data[2]=="digDown")then
- if(turtle.digDown()==true)then
- save(data, path)
- end
- elseif(data[2]=="placeUp")then
- if(turtle.detectUp() == true)then
- turtle.digUp()
- else
- if(data[1] == "changeLoader")then
- select(3)
- end
- if(turtle.placeUp()==true)then
- save(data, path)
- end
- end
- end
- if(data[1] == "videInv")then
- if(data[2]=="dropAll")then
- if(dropAll("go")==true)then
- save(data, path)
- end
- elseif(data[2]=="dropAllUp")then
- if(dropAll("up")==true)then
- save(data, path)
- end
- elseif(data[2]=="dropAllDown")then
- if(dropAll("down")==true)then
- save(data, path)
- end
- end
- end
- if(data[1] == "getFuel")then
- if(data[2]=="suck")then
- select(4)
- if(count(4)>0)then
- turtle.transferTo(16, count(4))
- end
- if(suck("go")==true)then
- save(data, path)
- end
- elseif(data[2]=="suckUp")then
- select(4)
- if(count(4)>0)then
- turtle.transferTo(16, count(4))
- end
- if(suck("up")==true)then
- save(data, path)
- end
- elseif(data[2]=="suckDown")then
- select(4)
- if(count(4)>0)then
- turtle.transferTo(16, count(4))
- end
- if(suck("down")==true)then
- save(data, path)
- end
- end
- end
- select(7)
- end
- function suck(dir)
- local flag
- if(dir == "go")then
- flag = turtle.suck()
- elseif(dir == "up")then
- flag = turtle.suckUp()
- elseif(dir == "down")then
- flag = turtle.suckDown()
- end
- if(flag == false)then
- return false
- end
- return true
- end
- function dropAll(dir)
- local flag
- for i=7,16 do
- if(count(i)>0)then
- select(i)
- checkFuel()
- if(dir == "go")then
- flag = turtle.drop()
- elseif(dir == "up")then
- flag = turtle.dropUp()
- elseif(dir == "down")then
- flag = turtle.dropDown()
- end
- if(flag == false)then
- sleep(1)
- i = i-1
- end
- end
- end
- return true
- end
- -- __ __ _ ____
- -- | \/ | __ _(_)_ __ / /\ \
- -- | |\/| |/ _` | | '_ \| | | |
- -- | | | | (_| | | | | | | | |
- -- |_| |_|\__,_|_|_| |_| | | |
- -- \_\/_/
- --fileSet(dataFilePath, "0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n")
- args = { ... }
- if( args[1]==null)then
- args[1] = 16
- --print("Début de 'tree', par defaut, "..args[1].." blocks")
- else
- --print("Début de 'tree', "..args[1].." blocks")
- end
- stop=false
- if(fs.exists(dataFilePath))then
- -- on continue
- tabCoord = getCoordinates()
- numberBlock = tabCoord[6][1]
- else
- if(init()==false) then
- stop=true
- else
- --print("Hi Master, please press any key to start")
- --os.pullEvent("key")
- numberBlock = args[1]
- fileSet(dataFilePath, "0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n\n0,0,0,n\n"..numberBlock..",0")
- end
- end
- testFuel()
- numberBlock = tonumber(numberBlock)
- i = 0
- --while(stop==false)do
- while(stop==false)do
- if(fs.exists(dataFilePath.."-IMPORTANT2")==true)then
- Shaundi()
- elseif(fs.exists(dataFilePath.."-IMPORTANT")==true)then
- Shaundi()
- elseif(testUpDown(0) == true and test(0) == true)then
- tabCoord = getCoordinates()
- x = tonumber(tabCoord[1][1])
- y = tonumber(tabCoord[1][2])
- z = tonumber(tabCoord[1][3])
- f = tabCoord[1][4]
- if(gps()==false)then
- stop = true
- end
- if(testFuel() == false) then
- getFuel()
- else
- checkInv(0)
- end
- --print(i..":"..x..","..y..","..z..","..f)
- end
- select(6)
- sleep(0.2)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement