deckboards.lua 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. minetest.register_node("mydeck:deck_boards", {
  2. description = "Deck Boards",
  3. tiles = {
  4. "mydeck_hwood.png",
  5. "mydeck_hwood.png",
  6. "mydeck_hwood.png",
  7. "mydeck_hwood.png",
  8. "mydeck_hwood.png",
  9. "mydeck_hwood.png",
  10. },
  11. drawtype = "nodebox",
  12. paramtype = "light",
  13. paramtype2 = "facedir",
  14. sunlight_propagates = true,
  15. sounds = default.node_sound_wood_defaults(),
  16. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1,stain=1},
  17. node_box = {
  18. type = "fixed",
  19. fixed = {
  20. {-0.5, -0.375, 0.2725, 0.5, -0.5, 0.5},
  21. {-0.5, -0.375, 0.0225, 0.5, -0.5, 0.25},
  22. {-0.5, -0.375, -0.2275, 0.5, -0.5, 0},
  23. {-0.5, -0.375, -0.4775, 0.5, -0.5, -0.25},
  24. }
  25. },
  26. selection_box = {
  27. type = "fixed",
  28. fixed = {
  29. {-0.5, -0.375, -0.5, 0.5, -0.5, 0.5},
  30. }
  31. },
  32. after_place_node = function(pos, placer, itemstack, pointed_thing)
  33. local deck = minetest.get_node({x=pos.x, y=pos.y, z=pos.z}).name
  34. local node = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
  35. local nodeu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
  36. if nodeu == "mydeck:joists" then
  37. minetest.remove_node(pos)
  38. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists", param2=node.param2})
  39. end
  40. if nodeu == "mydeck:joists_side" then
  41. minetest.remove_node(pos)
  42. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_side", param2=node.param2})
  43. end
  44. if nodeu == "mydeck:joists_beam" then
  45. minetest.remove_node(pos)
  46. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_beam", param2=node.param2})
  47. end
  48. if nodeu == "mydeck:joists_side_beam" then
  49. minetest.remove_node(pos)
  50. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_side_beam", param2=node.param2})
  51. end
  52. if nodeu == "mydeck:joists_end" then
  53. minetest.remove_node(pos)
  54. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_end", param2=node.param2})
  55. end
  56. if nodeu == "mydeck:joists_side_end" then
  57. minetest.remove_node(pos)
  58. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_side_end", param2=node.param2})
  59. end
  60. if nodeu == "mydeck:joists_endr" then
  61. minetest.remove_node(pos)
  62. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_endr", param2=node.param2})
  63. end
  64. if nodeu == "mydeck:joists_side_endr" then
  65. minetest.remove_node(pos)
  66. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_side_endr", param2=node.param2})
  67. end
  68. if nodeu == "mydeck:joists_beam_wbracket" then
  69. minetest.remove_node(pos)
  70. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_beam_wbracket", param2=node.param2})
  71. end
  72. if nodeu == "mydeck:joists_side_beam_wbracket" then
  73. minetest.remove_node(pos)
  74. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_joists_side_beam_wbracket", param2=node.param2})
  75. end
  76. if nodeu == "mydeck:beam" then
  77. minetest.remove_node(pos)
  78. minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = "mydeck:deck_beam", param2=node.param2})
  79. end
  80. end,
  81. })
  82. minetest.register_node("mydeck:deck_beam", {
  83. description = "Deck on Beam",
  84. tiles = {
  85. "mydeck_hwood.png",
  86. "mydeck_hwood.png^[transformR90",
  87. "mydeck_hwood.png",
  88. "mydeck_hwood.png",
  89. "mydeck_hwood.png",
  90. "mydeck_hwood.png",
  91. },
  92. drawtype = "nodebox",
  93. paramtype = "light",
  94. paramtype2 = "facedir",
  95. sunlight_propagates = true,
  96. sounds = default.node_sound_wood_defaults(), drop = {
  97. max_items = 2,
  98. items = {
  99. {
  100. items = {"mydeck:deck_boards"},
  101. },
  102. {
  103. items = {"mydeck:beam"},
  104. },
  105. }
  106. },
  107. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  108. node_box = {
  109. type = "fixed",
  110. fixed = {
  111. {-0.125, -0.5, -0.5, 0.125, -0.125, 0.5},
  112. {-0.5, 0, 0.2725, 0.5, -0.125, 0.5},
  113. {-0.5, 0, 0.0225, 0.5, -0.125, 0.25},
  114. {-0.5, 0, -0.2275, 0.5, -0.125, 0},
  115. {-0.5, 0, -0.4775, 0.5, -0.125, -0.25},
  116. }
  117. },
  118. })
  119. minetest.register_node("mydeck:deck_joists", {
  120. description = "Deck Joists",
  121. tiles = {
  122. "mydeck_hwood.png",
  123. "mydeck_hwood.png",
  124. "mydeck_hwood.png",
  125. "mydeck_hwood.png",
  126. "mydeck_hwood.png",
  127. "mydeck_hwood.png",
  128. },
  129. drawtype = "nodebox",
  130. paramtype = "light",
  131. paramtype2 = "facedir",
  132. sunlight_propagates = true,
  133. sounds = default.node_sound_wood_defaults(),
  134. drop = {
  135. max_items = 2,
  136. items = {
  137. {
  138. items = {"mydeck:deck_boards"},
  139. },
  140. {
  141. items = {"mydeck:joists"},
  142. },
  143. }
  144. },
  145. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  146. node_box = {
  147. type = "fixed",
  148. fixed = {
  149. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  150. {0, 0, -0.5, 0.125, 0.375, 0.5},
  151. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  152. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  153. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  154. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  155. }
  156. },
  157. selection_box = {
  158. type = "fixed",
  159. fixed = {
  160. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  161. }
  162. },
  163. })
  164. minetest.register_node("mydeck:deck_joists_side", {
  165. description = "Deck Joists Side",
  166. tiles = {
  167. "mydeck_hwood.png",
  168. "mydeck_hwood.png",
  169. "mydeck_hwood.png",
  170. "mydeck_hwood.png",
  171. "mydeck_hwood.png",
  172. "mydeck_hwood.png",
  173. },
  174. drawtype = "nodebox",
  175. paramtype = "light",
  176. paramtype2 = "facedir",
  177. sunlight_propagates = true,
  178. sounds = default.node_sound_wood_defaults(),
  179. drop = {
  180. max_items = 2,
  181. items = {
  182. {
  183. items = {"mydeck:deck_boards"},
  184. },
  185. {
  186. items = {"mydeck:joists_side"},
  187. },
  188. }
  189. },
  190. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  191. node_box = {
  192. type = "fixed",
  193. fixed = {
  194. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  195. {0, 0, -0.5, 0.125, 0.375, 0.5},
  196. {0.375, 0, -0.5, 0.5, 0.375, 0.5},
  197. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  198. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  199. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  200. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  201. }
  202. },
  203. selection_box = {
  204. type = "fixed",
  205. fixed = {
  206. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  207. }
  208. },
  209. })
  210. minetest.register_node("mydeck:deck_joists_end", {
  211. description = "Deck Joists with End Plate",
  212. tiles = {
  213. "mydeck_hwood.png",
  214. "mydeck_hwood.png",
  215. "mydeck_hwood.png",
  216. "mydeck_hwood.png",
  217. "mydeck_hwood.png",
  218. "mydeck_hwood.png",
  219. },
  220. drawtype = "nodebox",
  221. paramtype = "light",
  222. paramtype2 = "facedir",
  223. sunlight_propagates = true,
  224. sounds = default.node_sound_wood_defaults(),
  225. drop = {
  226. max_items = 2,
  227. items = {
  228. {
  229. items = {"mydeck:deck_boards"},
  230. },
  231. {
  232. items = {"mydeck:joists_end"},
  233. },
  234. }
  235. },
  236. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  237. node_box = {
  238. type = "fixed",
  239. fixed = {
  240. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  241. {0, 0, -0.5, 0.125, 0.375, 0.5},
  242. {-0.5, 0, 0.375, 0.5, 0.375, 0.5},
  243. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  244. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  245. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  246. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  247. }
  248. },
  249. selection_box = {
  250. type = "fixed",
  251. fixed = {
  252. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  253. }
  254. },
  255. })
  256. minetest.register_node("mydeck:deck_joists_side_end", {
  257. description = "Deck Joists Side with End Plate",
  258. tiles = {
  259. "mydeck_hwood.png",
  260. "mydeck_hwood.png",
  261. "mydeck_hwood.png",
  262. "mydeck_hwood.png",
  263. "mydeck_hwood.png",
  264. "mydeck_hwood.png",
  265. },
  266. drawtype = "nodebox",
  267. paramtype = "light",
  268. paramtype2 = "facedir",
  269. sunlight_propagates = true,
  270. sounds = default.node_sound_wood_defaults(),
  271. drop = {
  272. max_items = 2,
  273. items = {
  274. {
  275. items = {"mydeck:deck_boards"},
  276. },
  277. {
  278. items = {"mydeck:joists_side_end"},
  279. },
  280. }
  281. },
  282. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  283. node_box = {
  284. type = "fixed",
  285. fixed = {
  286. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  287. {0, 0, -0.5, 0.125, 0.375, 0.5},
  288. {-0.5, 0, -0.5, 0.5, 0.375, -0.375},
  289. {0.375, 0, -0.5, 0.5, 0.375, 0.5},
  290. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  291. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  292. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  293. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  294. }
  295. },
  296. selection_box = {
  297. type = "fixed",
  298. fixed = {
  299. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  300. }
  301. },
  302. })
  303. minetest.register_node("mydeck:deck_joists_endr", {
  304. description = "Deck Joists Side with Wall Plate",
  305. tiles = {
  306. "mydeck_hwood.png",
  307. "mydeck_hwood.png",
  308. "mydeck_hwood.png",
  309. "mydeck_hwood.png",
  310. "mydeck_hwood.png",
  311. "mydeck_hwood.png",
  312. },
  313. drawtype = "nodebox",
  314. paramtype = "light",
  315. paramtype2 = "facedir",
  316. sunlight_propagates = true,
  317. sounds = default.node_sound_wood_defaults(),
  318. drop = {
  319. max_items = 2,
  320. items = {
  321. {
  322. items = {"mydeck:deck_boards"},
  323. },
  324. {
  325. items = {"mydeck:joists_endr"},
  326. },
  327. }
  328. },
  329. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  330. node_box = {
  331. type = "fixed",
  332. fixed = {
  333. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  334. {0, 0, -0.5, 0.125, 0.375, 0.5},
  335. {-0.5, 0, -0.5, 0.5, 0.375, -0.375},
  336. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  337. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  338. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  339. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  340. }
  341. },
  342. selection_box = {
  343. type = "fixed",
  344. fixed = {
  345. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  346. }
  347. },
  348. })
  349. minetest.register_node("mydeck:deck_joists_side_endr", {
  350. description = "Deck Joists Side with Wall Plate",
  351. tiles = {
  352. "mydeck_hwood.png",
  353. "mydeck_hwood.png",
  354. "mydeck_hwood.png",
  355. "mydeck_hwood.png",
  356. "mydeck_hwood.png",
  357. "mydeck_hwood.png",
  358. },
  359. drawtype = "nodebox",
  360. paramtype = "light",
  361. paramtype2 = "facedir",
  362. sunlight_propagates = true,
  363. sounds = default.node_sound_wood_defaults(),
  364. drop = {
  365. max_items = 2,
  366. items = {
  367. {
  368. items = {"mydeck:deck_boards"},
  369. },
  370. {
  371. items = {"mydeck:joists_side_endr"},
  372. },
  373. }
  374. },
  375. groups = {cracky = 2, choppy = 2, not_in_creative_inventory=1, flammable = 1},
  376. node_box = {
  377. type = "fixed",
  378. fixed = {
  379. {-0.5, 0, -0.5, -0.375, 0.375, 0.5},
  380. {0, 0, -0.5, 0.125, 0.375, 0.5},
  381. {-0.5, 0, 0.5, 0.5, 0.375, 0.375},
  382. {0.375, 0, -0.5, 0.5, 0.375, 0.5},
  383. {-0.5, 0.375, 0.2725, 0.5, 0.5, 0.5},
  384. {-0.5, 0.375, 0.0225, 0.5, 0.5, 0.25},
  385. {-0.5, 0.375, -0.2275, 0.5, 0.5, 0},
  386. {-0.5, 0.375, -0.4775, 0.5, 0.5, -0.25},
  387. }
  388. },
  389. selection_box = {
  390. type = "fixed",
  391. fixed = {
  392. {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
  393. }
  394. },
  395. })