SHOW:
|
|
- or go back to the newest paste.
1 | - | os.loadAPI("aware") |
1 | + | os.loadAPI("libstruct") |
2 | a=aware | |
3 | - | height=3 |
3 | + | b=libstruct |
4 | - | width=3 |
4 | + | |
5 | - | depth=3 |
5 | + | args = {...} |
6 | - | filename="test-1" |
6 | + | |
7 | if #args < 5 then | |
8 | error("Arguments: <height> <width> <depth> <inventory> <name>") | |
9 | end | |
10 | ||
11 | height=tonumber(args[1]) | |
12 | width=tonumber(args[2]) | |
13 | depth=tonumber(args[3]) | |
14 | -- last block in inventory to use | |
15 | endblock=tonumber(args[4]) | |
16 | name=args[5] | |
17 | ||
18 | t={} | |
19 | --print("Setting start") | |
20 | a.setposition("start") | |
21 | ||
22 | height=height-1 | |
23 | width=width-1 | |
24 | depth=depth-1 | |
25 | parwidth=(width %2 == 0) -- width er partall | |
26 | moveleft = true | |
27 | ||
28 | for h=0,height do | |
29 | t[h] = {} | |
30 | for w=0,width do | |
31 | t[h][w] = {} | |
32 | end | |
33 | end | |
34 | ||
35 | function line() | |
36 | --print("Mapping line") | |
37 | for d=0,depth do | |
38 | pos = a.getposition("current") | |
39 | --print("Pos: h" .. pos[3]*-1 .. "-w" .. pos[1] .. "-d" .. pos[2]) | |
40 | t[pos[3]*-1][pos[1]][pos[2]] = b.block(endblock) | |
41 | if(d<depth) then | |
42 | a.df() | |
43 | end | |
44 | end | |
45 | end | |
46 | ||
47 | function turn() | |
48 | if(moveleft) then | |
49 | --print("Moving left") | |
50 | a.l() | |
51 | a.df() | |
52 | a.l() | |
53 | else | |
54 | --print("Moving right") | |
55 | a.r() | |
56 | a.df() | |
57 | a.r() | |
58 | end | |
59 | moveleft = not moveleft | |
60 | end | |
61 | ||
62 | function layer() | |
63 | --print("Mapping layer") | |
64 | for w=0,width do | |
65 | line() | |
66 | if(w<width) then | |
67 | turn() | |
68 | end | |
69 | end | |
70 | end | |
71 | ||
72 | for h=0,height do | |
73 | layer() | |
74 | if not (h == height) then | |
75 | a.dd() | |
76 | b.t180() | |
77 | if parwidth then | |
78 | if h%2 == 0 then | |
79 | turnleft=false | |
80 | else | |
81 | turnleft=true | |
82 | end | |
83 | else | |
84 | turnleft=true | |
85 | end | |
86 | end | |
87 | end | |
88 | ||
89 | --print("Finised, going home") | |
90 | a.goto(a.getposition("start")) | |
91 | ||
92 | t["height"]=height | |
93 | t["width"]=width | |
94 | t["depth"]=depth | |
95 | t["endblock"]=endblock | |
96 | ||
97 | b.save(t,name .. ".3d") | |
98 | print("Saved to ".. name .. ".3d") | |
99 | b.awarecleanup() |