init.lua 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. --[[
  2. TechPack Stairway
  3. =================
  4. Copyright (C) 2019-2020 Joachim Stolberg
  5. AGPL v3
  6. See LICENSE.txt for more information
  7. init.lua
  8. ]]--
  9. S = minetest.get_translator("techpack_stairway")
  10. minetest.register_node("techpack_stairway:grating", {
  11. description = S("TechPack Grating"),
  12. tiles = {
  13. 'techpack_stairway_bottom.png',
  14. 'techpack_stairway_bottom.png',
  15. 'techpack_stairway_side.png',
  16. },
  17. drawtype = "nodebox",
  18. node_box = {
  19. type = "fixed",
  20. fixed = {
  21. {-17/32, -15/32, -17/32, 17/32, -14/32, 17/32}
  22. },
  23. },
  24. selection_box = {
  25. type = "fixed",
  26. fixed = {
  27. {-16/32, -16/32, -16/32, 16/32, -10/32, 16/32},
  28. },
  29. },
  30. --climbable = true,
  31. paramtype2 = "facedir",
  32. paramtype = "light",
  33. sunlight_propagates = true,
  34. is_ground_content = false,
  35. groups = {cracky = 2},
  36. sounds = default.node_sound_metal_defaults(),
  37. })
  38. minetest.register_node("techpack_stairway:handrail1", {
  39. description = S("TechPack Handrail 1"),
  40. tiles = {
  41. 'techpack_stairway_bottom.png',
  42. 'techpack_stairway_bottom.png',
  43. 'techpack_stairway_side.png',
  44. },
  45. drawtype = "nodebox",
  46. node_box = {
  47. type = "fixed",
  48. fixed = {
  49. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  50. },
  51. },
  52. selection_box = {
  53. type = "fixed",
  54. fixed = {
  55. { -16/32, -16/32, -16/32, -12/32, -6/32, 16/32},
  56. },
  57. },
  58. --climbable = true,
  59. paramtype2 = "facedir",
  60. paramtype = "light",
  61. sunlight_propagates = true,
  62. is_ground_content = false,
  63. groups = {cracky = 2},
  64. sounds = default.node_sound_metal_defaults(),
  65. })
  66. minetest.register_node("techpack_stairway:handrail2", {
  67. description = S("TechPack Handrail 2"),
  68. tiles = {
  69. 'techpack_stairway_bottom.png',
  70. 'techpack_stairway_bottom.png',
  71. 'techpack_stairway_side.png',
  72. },
  73. drawtype = "nodebox",
  74. node_box = {
  75. type = "fixed",
  76. fixed = {
  77. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  78. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  79. },
  80. },
  81. selection_box = {
  82. type = "fixed",
  83. fixed = {
  84. { 12/32, -16/32, -16/32, 16/32, -6/32, 16/32},
  85. {-16/32, -16/32, -16/32, -12/32, -6/32, 16/32},
  86. },
  87. },
  88. --climbable = true,
  89. paramtype2 = "facedir",
  90. paramtype = "light",
  91. sunlight_propagates = true,
  92. is_ground_content = false,
  93. groups = {cracky = 2},
  94. sounds = default.node_sound_metal_defaults(),
  95. })
  96. minetest.register_node("techpack_stairway:handrail3", {
  97. description = S("TechPack Handrail 3"),
  98. tiles = {
  99. 'techpack_stairway_bottom.png',
  100. 'techpack_stairway_bottom.png',
  101. 'techpack_stairway_side.png',
  102. },
  103. drawtype = "nodebox",
  104. node_box = {
  105. type = "fixed",
  106. fixed = {
  107. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  108. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  109. },
  110. },
  111. selection_box = {
  112. type = "fixed",
  113. fixed = {
  114. { -16/32, -16/32, 12/32, 16/32, -6/32, 16/32},
  115. { -16/32, -16/32, -16/32, -12/32, -6/32, 16/32},
  116. },
  117. },
  118. --climbable = true,
  119. paramtype2 = "facedir",
  120. paramtype = "light",
  121. sunlight_propagates = true,
  122. is_ground_content = false,
  123. groups = {cracky = 2},
  124. sounds = default.node_sound_metal_defaults(),
  125. })
  126. minetest.register_node("techpack_stairway:handrail4", {
  127. description = S("TechPack Handrail 4"),
  128. tiles = {
  129. 'techpack_stairway_bottom.png',
  130. 'techpack_stairway_bottom.png',
  131. 'techpack_stairway_side.png',
  132. },
  133. drawtype = "nodebox",
  134. node_box = {
  135. type = "fixed",
  136. fixed = {
  137. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  138. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  139. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  140. },
  141. },
  142. selection_box = {
  143. type = "fixed",
  144. fixed = {
  145. { 12/32, -16/32, -16/32, 16/32, -6/32, 16/32},
  146. {-16/32, -16/32, -16/32, -12/32, -6/32, 16/32},
  147. {-16/32, -16/32, 12/32, 16/32, -6/32, 16/32},
  148. },
  149. },
  150. --climbable = true,
  151. paramtype2 = "facedir",
  152. paramtype = "light",
  153. sunlight_propagates = true,
  154. is_ground_content = false,
  155. groups = {cracky = 2},
  156. sounds = default.node_sound_metal_defaults(),
  157. })
  158. minetest.register_node("techpack_stairway:bridge1", {
  159. description = S("TechPack Bridge 1"),
  160. tiles = {
  161. 'techpack_stairway_bottom.png',
  162. 'techpack_stairway_bottom.png',
  163. 'techpack_stairway_side.png',
  164. },
  165. drawtype = "nodebox",
  166. node_box = {
  167. type = "fixed",
  168. fixed = {
  169. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  170. {-17/32, -15/32, -17/32, 17/32, -14/32, 17/32}
  171. },
  172. },
  173. selection_box = {
  174. type = "fixed",
  175. fixed = {
  176. {-16/32, -16/32, -16/32, 16/32, -10/32, 16/32},
  177. },
  178. },
  179. --climbable = true,
  180. paramtype2 = "facedir",
  181. paramtype = "light",
  182. sunlight_propagates = true,
  183. is_ground_content = false,
  184. groups = {cracky = 2},
  185. sounds = default.node_sound_metal_defaults(),
  186. })
  187. minetest.register_node("techpack_stairway:bridge2", {
  188. description = S("TechPack Bridge 2"),
  189. tiles = {
  190. 'techpack_stairway_bottom.png',
  191. 'techpack_stairway_bottom.png',
  192. 'techpack_stairway_side.png',
  193. },
  194. drawtype = "nodebox",
  195. node_box = {
  196. type = "fixed",
  197. fixed = {
  198. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  199. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  200. {-17/32, -15/32, -17/32, 17/32, -14/32, 17/32}
  201. },
  202. },
  203. selection_box = {
  204. type = "fixed",
  205. fixed = {
  206. {-16/32, -16/32, -16/32, 16/32, -10/32, 16/32},
  207. },
  208. },
  209. --climbable = true,
  210. paramtype2 = "facedir",
  211. paramtype = "light",
  212. sunlight_propagates = true,
  213. is_ground_content = false,
  214. groups = {cracky = 2},
  215. sounds = default.node_sound_metal_defaults(),
  216. })
  217. minetest.register_node("techpack_stairway:bridge3", {
  218. description = S("TechPack Bridge 3"),
  219. tiles = {
  220. 'techpack_stairway_bottom.png',
  221. 'techpack_stairway_bottom.png',
  222. 'techpack_stairway_side.png',
  223. },
  224. drawtype = "nodebox",
  225. node_box = {
  226. type = "fixed",
  227. fixed = {
  228. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  229. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  230. {-17/32, -15/32, -17/32, 17/32, -14/32, 17/32}
  231. },
  232. },
  233. selection_box = {
  234. type = "fixed",
  235. fixed = {
  236. {-16/32, -16/32, -16/32, 16/32, -10/32, 16/32},
  237. },
  238. },
  239. --climbable = true,
  240. paramtype2 = "facedir",
  241. paramtype = "light",
  242. sunlight_propagates = true,
  243. is_ground_content = false,
  244. groups = {cracky = 2},
  245. sounds = default.node_sound_metal_defaults(),
  246. })
  247. minetest.register_node("techpack_stairway:bridge4", {
  248. description = S("TechPack Bridge 4"),
  249. tiles = {
  250. 'techpack_stairway_bottom.png',
  251. 'techpack_stairway_bottom.png',
  252. 'techpack_stairway_side.png',
  253. },
  254. drawtype = "nodebox",
  255. node_box = {
  256. type = "fixed",
  257. fixed = {
  258. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  259. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  260. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  261. {-17/32, -15/32, -17/32, 17/32, -14/32, 17/32}
  262. },
  263. },
  264. selection_box = {
  265. type = "fixed",
  266. fixed = {
  267. {-16/32, -16/32, -16/32, 16/32, -10/32, 16/32},
  268. },
  269. },
  270. --climbable = true,
  271. paramtype2 = "facedir",
  272. paramtype = "light",
  273. sunlight_propagates = true,
  274. is_ground_content = false,
  275. groups = {cracky = 2},
  276. sounds = default.node_sound_metal_defaults(),
  277. })
  278. minetest.register_node("techpack_stairway:stairway", {
  279. description = S("TechPack Stairway"),
  280. tiles = {
  281. 'techpack_stairway_steps.png',
  282. 'techpack_stairway_steps.png',
  283. 'techpack_stairway_side.png',
  284. },
  285. drawtype = "nodebox",
  286. node_box = {
  287. type = "fixed",
  288. fixed = {
  289. { 15/32, -1/32, -1/32, 17/32, 49/32, 17/32},
  290. {-17/32, -1/32, -1/32, -15/32, 49/32, 17/32},
  291. {-17/32, -1/32, -1/32, 17/32, 1/32, 17/32},
  292. { 15/32, -17/32, -17/32, 17/32, 33/32, 1/32},
  293. {-17/32, -17/32, -17/32, -15/32, 33/32, 1/32},
  294. {-17/32, -17/32, -17/32, 17/32, -15/32, 1/32},
  295. },
  296. },
  297. selection_box = {
  298. type = "fixed",
  299. fixed = {
  300. {-16/32, -16/32, -16/32, 16/32, -10/32, 0/32},
  301. {-16/32, -16/32, 0/32, 16/32, 2/32, 16/32},
  302. },
  303. },
  304. --climbable = true,
  305. paramtype2 = "facedir",
  306. paramtype = "light",
  307. sunlight_propagates = true,
  308. is_ground_content = false,
  309. groups = {cracky = 2},
  310. sounds = default.node_sound_metal_defaults(),
  311. })
  312. minetest.register_node("techpack_stairway:ladder1", {
  313. description = S("TechPack Ladder 1"),
  314. tiles = {
  315. 'techpack_stairway_steps.png',
  316. 'techpack_stairway_steps.png',
  317. 'techpack_stairway_ladder.png',
  318. },
  319. drawtype = "nodebox",
  320. node_box = {
  321. type = "fixed",
  322. fixed = {
  323. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  324. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  325. {-17/32, -17/32, -17/32, 17/32, 17/32, -15/32},
  326. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  327. },
  328. },
  329. selection_box = {
  330. type = "fixed",
  331. fixed = {-8/16, -8/16, -8/16, 8/16, 8/16, 8/16},
  332. },
  333. climbable = true,
  334. paramtype2 = "facedir",
  335. paramtype = "light",
  336. sunlight_propagates = true,
  337. is_ground_content = false,
  338. groups = {cracky = 2},
  339. sounds = default.node_sound_metal_defaults(),
  340. })
  341. minetest.register_node("techpack_stairway:ladder2", {
  342. description = S("TechPack Ladder 2"),
  343. tiles = {
  344. 'techpack_stairway_steps.png',
  345. 'techpack_stairway_steps.png',
  346. 'techpack_stairway_ladder.png',
  347. },
  348. drawtype = "nodebox",
  349. node_box = {
  350. type = "fixed",
  351. fixed = {
  352. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  353. {-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  354. --{-17/32, -17/32, -17/32, 17/32, 17/32, -15/32},
  355. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  356. },
  357. },
  358. selection_box = {
  359. type = "fixed",
  360. fixed = {-8/16, -8/16, -8/16, 8/16, 8/16, 8/16},
  361. },
  362. climbable = true,
  363. paramtype2 = "facedir",
  364. paramtype = "light",
  365. sunlight_propagates = true,
  366. is_ground_content = false,
  367. groups = {cracky = 2},
  368. sounds = default.node_sound_metal_defaults(),
  369. })
  370. minetest.register_node("techpack_stairway:ladder3", {
  371. description = S("TechPack Ladder 3"),
  372. tiles = {
  373. 'techpack_stairway_steps.png',
  374. 'techpack_stairway_steps.png',
  375. 'techpack_stairway_ladder.png',
  376. },
  377. drawtype = "nodebox",
  378. node_box = {
  379. type = "fixed",
  380. fixed = {
  381. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  382. --{-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  383. --{-17/32, -17/32, -17/32, 17/32, 17/32, -15/32},
  384. { 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  385. },
  386. },
  387. selection_box = {
  388. type = "fixed",
  389. fixed = {-8/16, -8/16, -8/16, 8/16, 8/16, 8/16},
  390. },
  391. climbable = true,
  392. paramtype2 = "facedir",
  393. paramtype = "light",
  394. sunlight_propagates = true,
  395. is_ground_content = false,
  396. groups = {cracky = 2},
  397. sounds = default.node_sound_metal_defaults(),
  398. })
  399. minetest.register_node("techpack_stairway:ladder4", {
  400. description = S("TechPack Ladder 4"),
  401. tiles = {
  402. 'techpack_stairway_ladder.png',
  403. },
  404. drawtype = "nodebox",
  405. node_box = {
  406. type = "fixed",
  407. fixed = {
  408. {-17/32, -17/32, 15/32, 17/32, 17/32, 17/32},
  409. --{-17/32, -17/32, -17/32, -15/32, 17/32, 17/32},
  410. --{-17/32, -17/32, -17/32, 17/32, 17/32, -15/32},
  411. --{ 15/32, -17/32, -17/32, 17/32, 17/32, 17/32},
  412. },
  413. },
  414. selection_box = {
  415. type = "fixed",
  416. fixed = {-8/16, -8/16, 6/16, 8/16, 8/16, 8/16},
  417. },
  418. climbable = true,
  419. paramtype2 = "facedir",
  420. paramtype = "light",
  421. sunlight_propagates = true,
  422. is_ground_content = false,
  423. groups = {cracky = 2},
  424. sounds = default.node_sound_metal_defaults(),
  425. })
  426. minetest.register_node("techpack_stairway:lattice", {
  427. description = S("TechPack Lattice"),
  428. tiles = {
  429. 'techpack_stairway_lattice.png',
  430. },
  431. drawtype = "nodebox",
  432. node_box = {
  433. type = "fixed",
  434. fixed = {
  435. {-8/16, -8/16, -8/16, -7/16, 8/16, 8/16},
  436. { 7/16, -8/16, -8/16, 8/16, 8/16, 8/16},
  437. {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16},
  438. {-8/16, 7/16, -8/16, 8/16, 8/16, 8/16},
  439. {-8/16, -8/16, -8/16, 8/16, 8/16, -7/16},
  440. {-8/16, -8/16, 7/16, 8/16, 8/16, 8/16},
  441. },
  442. },
  443. selection_box = {
  444. type = "fixed",
  445. fixed = {-8/16, -8/16, -8/16, 8/16, 8/16, 8/16},
  446. },
  447. paramtype2 = "facedir",
  448. paramtype = "light",
  449. sunlight_propagates = true,
  450. is_ground_content = false,
  451. groups = {cracky = 2},
  452. sounds = default.node_sound_metal_defaults(),
  453. })
  454. minetest.register_node("techpack_stairway:lattice_slop", {
  455. description = S("TechPack Lattice Slope"),
  456. tiles = {
  457. 'techpack_stairway_lattice.png',
  458. },
  459. drawtype = "mesh",
  460. mesh="techpack_stairway_slope.obj",
  461. selection_box = {
  462. type = "fixed",
  463. fixed = {
  464. {-8/16, 4/16, 4/16, 8/16, 8/16, 8/16},
  465. {-8/16, 0/16, 0/16, 8/16, 4/16, 8/16},
  466. {-8/16, -4/16, -4/16, 8/16, 0/16, 8/16},
  467. {-8/16, -8/16, -8/16, 8/16, -4/16, 8/16},
  468. },
  469. },
  470. collision_box = {
  471. type = "fixed",
  472. fixed = {
  473. {-8/16, 4/16, 4/16, 8/16, 8/16, 8/16},
  474. {-8/16, 0/16, 0/16, 8/16, 4/16, 8/16},
  475. {-8/16, -4/16, -4/16, 8/16, 0/16, 8/16},
  476. {-8/16, -8/16, -8/16, 8/16, -4/16, 8/16},
  477. },
  478. },
  479. after_place_node = function(pos, placer, itemstack, pointed_thing)
  480. local node = minetest.get_node(pos)
  481. local dir = minetest.facedir_to_dir(node.param2)
  482. if pointed_thing.under.y >= pointed_thing.above.y then
  483. local newparam2 = ({[0] = 8, [1] = 17, [2] = 22, [3] = 15})[node.param2]
  484. if newparam2 then
  485. node.param2 = newparam2
  486. minetest.swap_node(pos, node)
  487. end
  488. end
  489. end,
  490. paramtype2 = "facedir",
  491. paramtype = "light",
  492. sunlight_propagates = true,
  493. is_ground_content = false,
  494. groups = {cracky = 2},
  495. sounds = default.node_sound_metal_defaults(),
  496. })
  497. minetest.register_craft({
  498. output = "techpack_stairway:grating 4",
  499. recipe = {
  500. {"", "", ""},
  501. {"dye:dark_grey", "", "default:coal_lump"},
  502. {"default:steel_ingot", "default:tin_ingot", "default:steel_ingot"},
  503. },
  504. })
  505. minetest.register_craft({
  506. output = "techpack_stairway:handrail1 4",
  507. recipe = {
  508. {"default:steel_ingot", "default:coal_lump", ""},
  509. {"default:tin_ingot", "", ""},
  510. {"default:steel_ingot", "dye:dark_grey", ""},
  511. },
  512. })
  513. minetest.register_craft({
  514. output = "techpack_stairway:stairway 2",
  515. recipe = {
  516. {"", "", "default:steel_ingot"},
  517. {"dye:dark_grey", "default:tin_ingot", "default:coal_lump"},
  518. {"default:steel_ingot", "", ""},
  519. },
  520. })
  521. minetest.register_craft({
  522. output = "techpack_stairway:ladder1 2",
  523. recipe = {
  524. {"", "default:steel_ingot", ""},
  525. {"dye:dark_grey", "default:tin_ingot", "default:coal_lump"},
  526. {"", "default:steel_ingot", ""},
  527. },
  528. })
  529. minetest.register_craft({
  530. output = "techpack_stairway:ladder3 4",
  531. recipe = {
  532. {"", "", "default:steel_ingot"},
  533. {"dye:dark_grey", "default:tin_ingot", "default:coal_lump"},
  534. {"", "", "default:steel_ingot"},
  535. },
  536. })
  537. minetest.register_craft({
  538. output = "techpack_stairway:ladder4 8",
  539. recipe = {
  540. {"dye:dark_grey", "default:tin_ingot", "default:coal_lump"},
  541. {"", "default:steel_ingot", ""},
  542. {"", "default:steel_ingot", ""},
  543. },
  544. })
  545. minetest.register_craft({
  546. output = "techpack_stairway:lattice 2",
  547. recipe = {
  548. {"default:steel_ingot", "", "default:steel_ingot"},
  549. {"dye:dark_grey", "default:tin_ingot", "default:coal_lump"},
  550. {"default:steel_ingot", "", "default:steel_ingot"},
  551. },
  552. })
  553. minetest.register_craft({
  554. output = "techpack_stairway:lattice_slop 2",
  555. recipe = {{"techpack_stairway:lattice"}},
  556. })
  557. minetest.register_craft({
  558. output = "techpack_stairway:handrail2",
  559. recipe = {
  560. {"", "", ""},
  561. {"techpack_stairway:handrail1", "", "techpack_stairway:handrail1"},
  562. {"", "", ""},
  563. },
  564. })
  565. minetest.register_craft({
  566. output = "techpack_stairway:handrail3",
  567. recipe = {
  568. {"", "techpack_stairway:handrail1", ""},
  569. {"techpack_stairway:handrail1", "", ""},
  570. {"", "", ""},
  571. },
  572. })
  573. minetest.register_craft({
  574. output = "techpack_stairway:handrail4",
  575. recipe = {
  576. {"", "techpack_stairway:handrail1", ""},
  577. {"techpack_stairway:handrail1", "", "techpack_stairway:handrail1"},
  578. {"", "", ""},
  579. },
  580. })
  581. minetest.register_craft({
  582. output = "techpack_stairway:bridge1",
  583. recipe = {
  584. {"", "", ""},
  585. {"techpack_stairway:handrail1", "techpack_stairway:grating", ""},
  586. {"", "", ""},
  587. },
  588. })
  589. minetest.register_craft({
  590. output = "techpack_stairway:bridge2",
  591. recipe = {
  592. {"", "", ""},
  593. {"techpack_stairway:handrail1", "techpack_stairway:grating", "techpack_stairway:handrail1"},
  594. {"", "", ""},
  595. },
  596. })
  597. minetest.register_craft({
  598. output = "techpack_stairway:bridge3",
  599. recipe = {
  600. {"", "techpack_stairway:handrail1", ""},
  601. {"techpack_stairway:handrail1", "techpack_stairway:grating", ""},
  602. {"", "", ""},
  603. },
  604. })
  605. minetest.register_craft({
  606. output = "techpack_stairway:bridge4",
  607. recipe = {
  608. {"", "techpack_stairway:handrail1", ""},
  609. {"techpack_stairway:handrail1", "techpack_stairway:grating", "techpack_stairway:handrail1"},
  610. {"", "", ""},
  611. },
  612. })
  613. minetest.register_craft({
  614. output = "techpack_stairway:ladder2",
  615. recipe = {{"techpack_stairway:ladder1"}},
  616. })
  617. minetest.register_alias("tubelib_stairway:grating", "techpack_stairway:grating")
  618. minetest.register_alias("tubelib_stairway:lattice", "techpack_stairway:lattice")
  619. minetest.register_alias("tubelib_stairway:handrail1", "techpack_stairway:handrail1")
  620. minetest.register_alias("tubelib_stairway:handrail2", "techpack_stairway:handrail3")
  621. minetest.register_alias("tubelib_stairway:handrail3", "techpack_stairway:handrail4")
  622. minetest.register_alias("tubelib_stairway:handrail4", "techpack_stairway:handrail5")
  623. minetest.register_alias("tubelib_stairway:stairway", "techpack_stairway:stairway")
  624. minetest.register_alias("tubelib_stairway:ladder1", "techpack_stairway:ladder1")
  625. minetest.register_alias("tubelib_stairway:ladder2", "techpack_stairway:ladder2")
  626. minetest.register_alias("tubelib_stairway:bridge1", "techpack_stairway:bridge1")
  627. minetest.register_alias("tubelib_stairway:bridge2", "techpack_stairway:bridge2")
  628. minetest.register_alias("tubelib_stairway:bridge3", "techpack_stairway:bridge3")
  629. minetest.register_alias("tubelib_stairway:bridge4", "techpack_stairway:bridge4")