RealBadAngel
2012-12-13 b8d77627a4d28c624e63423eef317dd09c68e533
commit | author | age
b8d776 1 -- This file is basically most of the old init.lua and only supplies the
R 2 -- old nodes created by the previous verison of Pipeworks.
3 --
4 -- License: WTFPL
5 --
6
7 local nodenames = {
8     "vertical",
9     "horizontal",
10     "junction_xy",
11     "junction_xz",
12     "bend_xy_down",
13     "bend_xy_up",
14     "bend_xz",
15     "crossing_xz",
16     "crossing_xy",
17     "crossing_xyz",
18     "pipe_segment",
19     "cap_neg_x",
20     "cap_pos_x",
21     "cap_neg_y",
22     "cap_pos_y",
23     "cap_neg_z",
24     "cap_pos_z"
25 }
26
27 local descriptions = {
28     "vertical",
29     "horizontal",
30     "junction between X and Y axes",
31     "junction between X and Z axes",
32     "downward bend between X and Y axes",
33     "upward bend between X and Y axes",
34     "bend between X/Z axes",
35     "4-way crossing between X and Z axes",
36     "4-way crossing between X/Z and Y axes",
37     "6-way crossing",
38     "basic segment",
39     "capped, negative X half only",
40     "capped, positive X half only",
41     "capped, negative Y half only",
42     "capped, positive Y half only",
43     "capped, negative Z half only",
44     "capped, positive Z half only"
45 }
46
47 local nodeimages = {
48     {"pipeworks_pipe_end.png",
49      "pipeworks_pipe_end.png",
50      "pipeworks_plain.png",
51      "pipeworks_plain.png",
52      "pipeworks_windowed_XXXXX.png",
53      "pipeworks_windowed_XXXXX.png"},
54
55     {"pipeworks_windowed_XXXXX.png",
56      "pipeworks_windowed_XXXXX.png",
57      "pipeworks_pipe_end.png",
58      "pipeworks_pipe_end.png",
59      "pipeworks_plain.png",
60      "pipeworks_plain.png"},
61
62     {"pipeworks_pipe_end.png",
63      "pipeworks_pipe_end.png",
64      "pipeworks_pipe_end.png",
65      "pipeworks_plain.png",
66      "pipeworks_windowed_XXXXX.png",
67      "pipeworks_windowed_XXXXX.png"},
68
69     {"pipeworks_windowed_XXXXX.png",
70      "pipeworks_windowed_XXXXX.png",
71      "pipeworks_pipe_end.png",
72      "pipeworks_pipe_end.png",
73      "pipeworks_pipe_end.png",
74      "pipeworks_plain.png"},
75
76     {"pipeworks_plain.png",
77      "pipeworks_pipe_end.png",
78      "pipeworks_pipe_end.png",
79      "pipeworks_plain.png",
80      "pipeworks_windowed_XXXXX.png",
81      "pipeworks_windowed_XXXXX.png"},
82
83     {"pipeworks_pipe_end.png",
84      "pipeworks_plain.png",
85      "pipeworks_pipe_end.png",
86      "pipeworks_plain.png",
87      "pipeworks_windowed_XXXXX.png",
88      "pipeworks_windowed_XXXXX.png"},
89
90     {"pipeworks_windowed_XXXXX.png",
91      "pipeworks_windowed_XXXXX.png",
92      "pipeworks_pipe_end.png",
93      "pipeworks_plain.png",
94      "pipeworks_pipe_end.png",
95      "pipeworks_plain.png"},
96
97     {"pipeworks_windowed_XXXXX.png",
98      "pipeworks_windowed_XXXXX.png",
99      "pipeworks_pipe_end.png",
100      "pipeworks_pipe_end.png",
101      "pipeworks_pipe_end.png",
102      "pipeworks_pipe_end.png"},
103
104     {"pipeworks_pipe_end.png",
105      "pipeworks_pipe_end.png",
106      "pipeworks_pipe_end.png",
107      "pipeworks_pipe_end.png",
108      "pipeworks_windowed_XXXXX.png",
109      "pipeworks_windowed_XXXXX.png"},
110
111     {"pipeworks_pipe_end.png",
112      "pipeworks_pipe_end.png",
113      "pipeworks_pipe_end.png",
114      "pipeworks_pipe_end.png",
115      "pipeworks_pipe_end.png",
116      "pipeworks_pipe_end.png"},
117
118 -- horizontal short segment
119
120     {"pipeworks_windowed_XXXXX.png",
121      "pipeworks_windowed_XXXXX.png",
122      "pipeworks_pipe_end.png",
123      "pipeworks_pipe_end.png",
124      "pipeworks_plain.png",
125      "pipeworks_plain.png"},
126
127 -- capped 
128
129     {"pipeworks_windowed_XXXXX.png",
130      "pipeworks_windowed_XXXXX.png",
131      "pipeworks_windowed_XXXXX.png",
132      "pipeworks_pipe_end.png",
133      "pipeworks_windowed_XXXXX.png",
134      "pipeworks_windowed_XXXXX.png"},
135
136     {"pipeworks_windowed_XXXXX.png",
137      "pipeworks_windowed_XXXXX.png",
138      "pipeworks_pipe_end.png",
139      "pipeworks_windowed_XXXXX.png",
140      "pipeworks_windowed_XXXXX.png",
141      "pipeworks_windowed_XXXXX.png"},
142
143     {"pipeworks_windowed_XXXXX.png",
144      "pipeworks_pipe_end.png",
145      "pipeworks_windowed_XXXXX.png",
146      "pipeworks_windowed_XXXXX.png",
147      "pipeworks_windowed_XXXXX.png",
148      "pipeworks_windowed_XXXXX.png"},
149
150     {"pipeworks_pipe_end.png",
151      "pipeworks_windowed_XXXXX.png",
152      "pipeworks_windowed_XXXXX.png",
153      "pipeworks_windowed_XXXXX.png",
154      "pipeworks_windowed_XXXXX.png",
155      "pipeworks_windowed_XXXXX.png"},
156
157     {"pipeworks_windowed_XXXXX.png",
158      "pipeworks_windowed_XXXXX.png",
159      "pipeworks_windowed_XXXXX.png",
160      "pipeworks_windowed_XXXXX.png",
161      "pipeworks_windowed_XXXXX.png",
162      "pipeworks_pipe_end.png"},
163
164     {"pipeworks_windowed_XXXXX.png",
165      "pipeworks_windowed_XXXXX.png",
166      "pipeworks_windowed_XXXXX.png",
167      "pipeworks_windowed_XXXXX.png",
168      "pipeworks_pipe_end.png",
169      "pipeworks_windowed_XXXXX.png"},
170 }
171
172 local selectionboxes = {
173     { -0.15, -0.5, -0.15, 0.15,  0.5, 0.15 },
174     { -0.5, -0.15, -0.15, 0.5, 0.15, 0.15 },
175     { -0.15, -0.5, -0.15, 0.5, 0.5, 0.15 },
176     { -0.5, -0.15, -0.15, 0.5, 0.15, 0.5 },
177     { -0.15, -0.5, -0.15, 0.5, 0.15, 0.15 },
178     { -0.15, -0.15, -0.15, 0.5, 0.5, 0.15 },
179     { -0.15, -0.15, -0.15, 0.5, 0.15, 0.5 },
180     { -0.5, -0.15, -0.5, 0.5, 0.15, 0.5 },
181     { -0.5, -0.5, -0.15, 0.5, 0.5, 0.15 },
182     { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
183     { -0.3, -0.15, -0.15, 0.3, 0.15, 0.15 },
184     { -0.5, -0.15, -0.15, 0, 0.15, 0.15 },
185     { 0, -0.15, -0.15, 0.5, 0.15, 0.15 },
186     { -0.15, -0.5, -0.15, 0.15, 0, 0.15 },
187     { -0.15, 0, -0.15, 0.15, 0.5, 0.15 },
188     { -0.15, -0.15, -0.5, 0.15, 0.15, 0 },
189     { -0.15, -0.15, 0, 0.15, 0.15, 0.5 },
190 }
191
192 local nodeboxes = {
193     {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },    -- vertical
194      { -0.1 , -0.45, -0.1 , 0.1 ,  0.45, 0.1  },
195      { -0.15,  0.45, -0.15, 0.15,  0.5 , 0.15 }},
196
197     {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },    -- horizontal
198      { -0.45, -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
199      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 }},
200
201     {{ -0.15, -0.5 , -0.15,  0.15, -0.45, 0.15 },    -- vertical with X/Z junction
202      { -0.1 , -0.45, -0.1 ,  0.1 ,  0.45, 0.1  },
203      { -0.15,  0.45, -0.15,  0.15,  0.5 , 0.15 },    
204      {  0.1 , -0.1 , -0.1 ,  0.45,  0.1 , 0.1  },
205      {  0.45, -0.15, -0.15,  0.5 ,  0.15, 0.15 }},
206
207     {{ -0.15, -0.15,  0.45,  0.15, 0.15, 0.5  },    -- horizontal with X/Z junction
208      { -0.1 , -0.1 ,  0.1 ,  0.1 , 0.1 , 0.45 },
209      { -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
210      { -0.45, -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
211      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 }},
212
213     {{ -0.15, -0.5 , -0.15,  0.15, -0.45, 0.15 },    -- bend down from X/Z to Y axis
214      { -0.1 , -0.45, -0.1 ,  0.1 ,  0.1 , 0.1  },
215      { -0.1 , -0.1 , -0.1 ,  0.45,  0.1 , 0.1  },
216      {  0.45, -0.15, -0.15,  0.5 ,  0.15, 0.15 }},
217
218     {{ -0.15, 0.45 , -0.15, 0.15,  0.5, 0.15 },    -- bend up from X/Z to Y axis
219      { -0.1 , -0.1 , -0.1 , 0.1 , 0.45, 0.1  },
220      { -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1  },
221      {  0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
222
223     {{ -0.15, -0.15,  0.45,  0.15, 0.15, 0.5  },    -- bend between X and Z axes
224      { -0.1 , -0.1 ,  0.1 ,  0.1 , 0.1 , 0.45 },
225      { -0.1 , -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
226      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 }},
227
228     {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },    -- 4-way crossing between X and Z axes
229      { -0.45, -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
230      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 },
231      { -0.15, -0.15, -0.5 ,  0.15, 0.15, -0.45 },
232      { -0.1 , -0.1 , -0.45,  0.1 , 0.1 ,  0.45 },
233      { -0.15, -0.15,  0.45,  0.15, 0.15,  0.5  }},
234
235     {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },    -- 4-way crossing between X/Z and Y axes
236      { -0.1 , -0.45, -0.1 , 0.1 ,  0.45, 0.1  },
237      { -0.15,  0.45, -0.15, 0.15,  0.5 , 0.15 },
238      { -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
239      { -0.45, -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
240      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 }},
241
242     {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },    -- 6-way crossing (all 3 axes)
243      { -0.45, -0.1 , -0.1 ,  0.45, 0.1 , 0.1  },
244      {  0.45, -0.15, -0.15,  0.5 , 0.15, 0.15 },
245      { -0.15, -0.15, -0.5 ,  0.15, 0.15, -0.45 },
246      { -0.1 , -0.1 , -0.45,  0.1 , 0.1 ,  0.45 },
247      { -0.15, -0.15,  0.45,  0.15, 0.15,  0.5  },
248      { -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
249      { -0.1 , -0.45, -0.1 , 0.1 ,  0.45, 0.1  },
250      { -0.15,  0.45, -0.15, 0.15,  0.5 , 0.15 }},
251
252     {{ -0.3 , -0.15, -0.15, -0.25, 0.15, 0.15 },    -- main center segment
253      { -0.25, -0.1 , -0.1 ,  0.25, 0.1 , 0.1  },
254      {  0.25, -0.15, -0.15,  0.3 , 0.15, 0.15 }},
255
256     {{ -0.5,  -0.15, -0.15, -0.45, 0.15, 0.15 },    -- anchored at -X
257      { -0.45, -0.1,  -0.1,  -0.2,  0.1,  0.1  },
258      { -0.2,  -0.15, -0.15, -0.15, 0.15, 0.15 },
259      { -0.15, -0.12, -0.12, -0.1,  0.12, 0.12 },
260      { -0.1,  -0.08, -0.08, -0.05, 0.08, 0.08 },
261      { -0.05, -0.04, -0.04,  0,    0.04, 0.04 }},
262
263     {{  0.45, -0.15, -0.15, 0.5,  0.15, 0.15 },    -- anchored at +X
264      {  0.2,  -0.1,  -0.1,  0.45, 0.1,  0.1  },
265      {  0.15, -0.15, -0.15, 0.2,  0.15, 0.15 },
266      {  0.1,  -0.12, -0.12, 0.15, 0.12, 0.12 },
267      {  0.05, -0.08, -0.08, 0.1,  0.08, 0.08 },
268      {  0,    -0.04, -0.04, 0.05, 0.04, 0.04 }},
269
270     {{ -0.15,  -0.5, -0.15,  0.15, -0.45, 0.15 },    -- anchored at -Y
271      { -0.1,  -0.45, -0.1,   0.1,  -0.2,  0.1  },
272      { -0.15,  -0.2, -0.15,  0.15, -0.15, 0.15 },
273      { -0.12, -0.15, -0.12,  0.12, -0.1,  0.12 },
274      { -0.08, -0.1,  -0.08,  0.08, -0.05, 0.08 },
275      { -0.04, -0.05, -0.04,  0.04,  0,    0.04 }},
276
277     {{ -0.15,  0.45, -0.15, 0.15, 0.5,  0.15 },    -- anchored at +Y
278      { -0.1,   0.2,  -0.1,  0.1,  0.45, 0.1  },
279      { -0.15,  0.15, -0.15, 0.15, 0.2,  0.15 },
280      { -0.12,  0.1,  -0.12, 0.12, 0.15, 0.12 },
281      { -0.08,  0.05, -0.08, 0.08, 0.1,  0.08 } ,
282      { -0.04,  0,    -0.04, 0.04, 0.05, 0.04 }},
283
284     {{ -0.15, -0.15, -0.5,  0.15, 0.15, -0.45 },    -- anchored at -Z
285      { -0.1,  -0.1,  -0.45, 0.1,  0.1,  -0.2  },
286      { -0.15, -0.15, -0.2,  0.15, 0.15, -0.15 },
287      { -0.12, -0.12, -0.15, 0.12, 0.12, -0.1  },
288      { -0.08, -0.08, -0.1,  0.08, 0.08, -0.05 },
289      { -0.04, -0.04, -0.05, 0.04, 0.04,  0    }},
290
291     {{ -0.15, -0.15,  0.45, 0.15, 0.15, 0.5  },    -- anchored at +Z
292      { -0.1,  -0.1,   0.2,  0.1,  0.1,  0.45 },
293      { -0.15, -0.15,  0.15, 0.15, 0.15, 0.2  },
294      { -0.12, -0.12,  0.1,  0.12, 0.12, 0.15 },
295      { -0.08, -0.08,  0.05, 0.08, 0.08, 0.1  },
296      { -0.04, -0.04,  0,    0.04, 0.04, 0.05 }},
297 }
298
299 function fix_image_names(node, replacement)
300     outtable={}
301     for i in ipairs(nodeimages[node]) do
302         outtable[i]=string.gsub(nodeimages[node][i], "_XXXXX", replacement)
303     end
304
305     return outtable
306 end
307
308 -- Now define the actual nodes
309
310 for node in ipairs(nodenames) do
311
312     if node ~= 2 then
313         pgroups = {snappy=3, pipe=1, not_in_creative_inventory=1}
314     else
315         pgroups = {snappy=3, pipe=1}
316     end
317
318     minetest.register_node("pipeworks:"..nodenames[node], {
319         description = "Empty Pipe ("..descriptions[node]..")",
320         drawtype = "nodebox",
321         tiles = fix_image_names(node, "_empty"),
322         paramtype = "light",
323         paramtype2 = "facedir",
324         selection_box = {
325                       type = "fixed",
326             fixed = selectionboxes[node],
327         },
328         node_box = {
329             type = "fixed",
330             fixed = nodeboxes[node]
331         },
332         groups = pgroups,
333         sounds = default.node_sound_wood_defaults(),
334         walkable = true,
335         stack_max = 99,
336         drop = "pipeworks:pipe"
337     })
338
339     minetest.register_node("pipeworks:"..nodenames[node].."_loaded", {
340         description = "Loaded Pipe ("..descriptions[node]..")",
341         drawtype = "nodebox",
342         tiles = fix_image_names(node, "_loaded"),
343         paramtype = "light",
344         paramtype2 = "facedir",
345         selection_box = {
346                       type = "fixed",
347             fixed = selectionboxes[node],
348         },    
349         node_box = {
350             type = "fixed",
351             fixed = nodeboxes[node]
352         },
353         groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
354         sounds = default.node_sound_wood_defaults(),
355         walkable = true,
356         stack_max = 99,
357         drop = "pipeworks:pipe"
358     })
359 end
360