SHOW:
|
|
- or go back to the newest paste.
| 1 | - | os.loadAPI("libstruct")
|
| 1 | + | fs.delete("aware.current")
|
| 2 | os.loadAPI("aware")
| |
| 3 | - | b=libstruct |
| 3 | + | |
| 4 | function block(endblock) | |
| 5 | - | args = {...}
|
| 5 | + | for i=1,endblock do |
| 6 | turtle.select(i) | |
| 7 | - | if #args < 5 then |
| 7 | + | if turtle.compareDown() then |
| 8 | - | error("Arguments: <height> <width> <depth> <inventory> <name>")
|
| 8 | + | turtle.digDown() |
| 9 | return i | |
| 10 | - | |
| 10 | + | |
| 11 | - | height=tonumber(args[1]) |
| 11 | + | |
| 12 | - | width=tonumber(args[2]) |
| 12 | + | -- destroy unknown blocks |
| 13 | - | depth=tonumber(args[3]) |
| 13 | + | turtle.digDown() |
| 14 | - | -- last block in inventory to use |
| 14 | + | return 0 |
| 15 | - | endblock=tonumber(args[4]) |
| 15 | + | |
| 16 | - | name=args[5] |
| 16 | + | |
| 17 | - | |
| 17 | + | function place(i) |
| 18 | - | t={}
|
| 18 | + | if (i > 0) then |
| 19 | - | --print("Setting start")
|
| 19 | + | turtle.select(i) |
| 20 | - | a.setposition("start")
|
| 20 | + | if (not turtle.compareDown()) then |
| 21 | -- remove wrong block | |
| 22 | - | height=height-1 |
| 22 | + | turtle.digDown() |
| 23 | - | width=width-1 |
| 23 | + | if (turtle.getItemCount(i) < 2 ) then |
| 24 | - | depth=depth-1 |
| 24 | + | print("Sleeping while waiting for refill in slot " .. i)
|
| 25 | - | parwidth=(width %2 == 0) -- width er partall |
| 25 | + | while (turtle.getItemCount(i) < 2 ) do |
| 26 | - | moveleft = true |
| 26 | + | os.sleep(15) |
| 27 | end | |
| 28 | - | for h=0,height do |
| 28 | + | |
| 29 | - | t[h] = {}
|
| 29 | + | if (not turtle.placeDown()) then |
| 30 | - | for w=0,width do |
| 30 | + | error("Unable to place")
|
| 31 | - | t[h][w] = {}
|
| 31 | + | |
| 32 | - | end |
| 32 | + | |
| 33 | end | |
| 34 | end | |
| 35 | - | function line() |
| 35 | + | |
| 36 | - | --print("Mapping line")
|
| 36 | + | function ml() |
| 37 | - | for d=0,depth do |
| 37 | + | a.l() |
| 38 | - | pos = a.getposition("current")
|
| 38 | + | a.df() |
| 39 | - | --print("Pos: h" .. pos[3]*-1 .. "-w" .. pos[1] .. "-d" .. pos[2])
|
| 39 | + | a.r() |
| 40 | - | t[pos[3]*-1][pos[1]][pos[2]] = b.block(endblock) |
| 40 | + | |
| 41 | - | if(d<depth) then |
| 41 | + | |
| 42 | - | a.df() |
| 42 | + | function mr() |
| 43 | a.r() | |
| 44 | a.df() | |
| 45 | a.l() | |
| 46 | end | |
| 47 | - | function turn() |
| 47 | + | |
| 48 | - | if(moveleft) then |
| 48 | + | function t180() |
| 49 | - | --print("Moving left")
|
| 49 | + | a.r() |
| 50 | - | a.l() |
| 50 | + | a.r() |
| 51 | - | a.df() |
| 51 | + | |
| 52 | - | a.l() |
| 52 | + | |
| 53 | - | else |
| 53 | + | function save(table,name) |
| 54 | - | --print("Moving right")
|
| 54 | + | local file = fs.open(name,"w") |
| 55 | - | a.r() |
| 55 | + | file.write(textutils.serialize(table)) |
| 56 | - | a.df() |
| 56 | + | file.close() |
| 57 | - | a.r() |
| 57 | + | |
| 58 | ||
| 59 | - | moveleft = not moveleft |
| 59 | + | function load(name) |
| 60 | local file = fs.open(name,"r") | |
| 61 | local data = file.readAll() | |
| 62 | - | function layer() |
| 62 | + | file.close() |
| 63 | - | --print("Mapping layer")
|
| 63 | + | return textutils.unserialize(data) |
| 64 | - | for w=0,width do |
| 64 | + | |
| 65 | - | line() |
| 65 | + | function awarecleanup() |
| 66 | - | if(w<width) then |
| 66 | + | fs.delete("aware.current")
|
| 67 | - | turn() |
| 67 | + | fs.delete("aware.start")
|
| 68 | end |