init.lua 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. -- [Mod] Angled Stairs [angledstairs] (1.2) by TumeniNodes 05-31-2016
  2. angledstairs = {}
  3. -- Register angledstairs.
  4. -- Node will be called angledstairs:angled_stair_<subname>
  5. function angledstairs.register_angled_stair(subname, recipeitem, groups, images, description, sounds)
  6. groups.angledstair = 1
  7. minetest.register_node(":angledstairs:angled_stair_right" .. subname, {
  8. description = description,
  9. drawtype = "mesh",
  10. mesh = "angled_stairR.obj",
  11. tiles = images,
  12. paramtype = "light",
  13. paramtype2 = "facedir",
  14. facedir = simple,
  15. groups = groups,
  16. sounds = sounds,
  17. collision_box = {
  18. type = "fixed",
  19. fixed = {
  20. {-0.5, -0.5, 0, 0.0625, 0.5, 0.5},
  21. {0.0625, -0.5, 0.0625, 0.125, 0.5, 0.5},
  22. {0.125, -0.5, 0.125, 0.1875, 0.5, 0.5},
  23. {0.1875, -0.5, 0.1875, 0.25, 0.5, 0.5},
  24. {0.25, -0.5, 0.25, 0.3125, 0.5, 0.5},
  25. {0.3125, -0.5, 0.3125, 0.375, 0.5, 0.5},
  26. {0.375, -0.5, 0.375, 0.4375, 0.5, 0.5},
  27. {0.4375, -0.5, 0.4375, 0.5, 0.5, 0.5},
  28. {-0.5, -0.5, -0.5, -0.4375, 0.5, -0.4375},
  29. {-0.5, -0.5, -0.4375, -0.375, 0.5, -0.375},
  30. {-0.5, -0.5, -0.375, -0.3125, 0.5, -0.3125},
  31. {-0.5, -0.5, -0.3125, -0.25, 0.5, -0.25},
  32. {-0.5, -0.5, -0.25, -0.1875, 0.5, -0.1875},
  33. {-0.5, -0.5, -0.1875, -0.125, 0.5, -0.125},
  34. {-0.5, -0.5, -0.125, -0.0625, 0.5, -0.0625},
  35. {-0.5, -0.5, -0.0625, 0, 0.5, 0},
  36. {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
  37. }
  38. }
  39. })
  40. minetest.register_node(":angledstairs:angled_stair_left" .. subname, {
  41. description = description,
  42. drawtype = "mesh",
  43. mesh = "angled_stairL.obj",
  44. tiles = images,
  45. paramtype = "light",
  46. paramtype2 = "facedir",
  47. facedir = simple,
  48. groups = groups,
  49. sounds = sounds,
  50. collision_box = {
  51. type = "fixed",
  52. fixed = {
  53. {-0.0625, -0.5, 0, 0.5, 0.5, 0.5},
  54. {-0.125, -0.5, 0.0625, -0.0625, 0.5, 0.5},
  55. {-0.1875, -0.5, 0.125, -0.125, 0.5, 0.5},
  56. {-0.25, -0.5, 0.1875, -0.1875, 0.5, 0.5},
  57. {-0.3125, -0.5, 0.25, -0.25, 0.5, 0.5},
  58. {-0.375, -0.5, 0.3125, -0.3125, 0.5, 0.5},
  59. {-0.4375, -0.5, 0.375, -0.375, 0.5, 0.5},
  60. {-0.5, -0.5, 0.4375, -0.4375, 0.5, 0.5},
  61. {0.4375, -0.5, -0.5, 0.5, 0.5, -0.4375},
  62. {0.375, -0.5, -0.4375, 0.5, 0.5, -0.375},
  63. {0.3125, -0.5, -0.375, 0.5, 0.5, -0.3125},
  64. {0.25, -0.5, -0.3125, 0.5, 0.5, -0.25},
  65. {0.1875, -0.5, -0.25, 0.5, 0.5, -0.1875},
  66. {0.125, -0.5, -0.1875, 0.5, 0.5, -0.125},
  67. {0.0625, -0.5, -0.125, 0.5, 0.5, -0.0625},
  68. {0, -0.5, -0.0625, 0.5, 0.5, 0},
  69. {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
  70. }
  71. }
  72. })
  73. end
  74. -- Register angledstairs.
  75. -- Node will be called angledstairs:angled_slab_<subname>
  76. function angledstairs.register_angled_slab(subname, recipeitem, groups, images, description, sounds)
  77. groups.angledslab = 1
  78. minetest.register_node(":angledstairs:angled_slab_right" .. subname, {
  79. description = description,
  80. drawtype = "mesh",
  81. mesh = "angled_slabR.obj",
  82. tiles = images,
  83. paramtype = "light",
  84. paramtype2 = "facedir",
  85. groups = groups,
  86. sounds = sounds,
  87. collision_box = {
  88. type = "fixed",
  89. fixed = {
  90. {-0.5, -0.5, 0, 0.0625, 0, 0.5},
  91. {0.0625, -0.5, 0.0625, 0.125, 0, 0.5},
  92. {0.125, -0.5, 0.125, 0.1875, 0, 0.5},
  93. {0.1875, -0.5, 0.1875, 0.25, 0, 0.5},
  94. {0.25, -0.5, 0.25, 0.3125, 0, 0.5},
  95. {0.3125, -0.5, 0.3125, 0.375, 0, 0.5},
  96. {0.375, -0.5, 0.375, 0.4375, 0, 0.5},
  97. {0.4375, -0.5, 0.4375, 0.5, 0, 0.5},
  98. {-0.5, -0.5, -0.5, -0.4375, 0, -0.4375},
  99. {-0.5, -0.5, -0.4375, -0.375, 0, -0.375},
  100. {-0.5, -0.5, -0.375, -0.3125, 0, -0.3125},
  101. {-0.5, -0.5, -0.3125, -0.25, 0, -0.25},
  102. {-0.5, -0.5, -0.25, -0.1875, 0, -0.1875},
  103. {-0.5, -0.5, -0.1875, -0.125, 0, -0.125},
  104. {-0.5, -0.5, -0.125, -0.0625, 0, -0.0625},
  105. {-0.5, -0.5, -0.0625, 0, 0, 0},
  106. }
  107. },
  108. selection_box = {
  109. type = "fixed",
  110. fixed = {
  111. {-.5, -.5, -.5, .5, 0, .5},
  112. }
  113. },
  114. })
  115. minetest.register_node(":angledstairs:angled_slab_left" .. subname, {
  116. description = description,
  117. drawtype = "mesh",
  118. mesh = "angled_slabL.obj",
  119. tiles = images,
  120. paramtype = "light",
  121. paramtype2 = "facedir",
  122. groups = groups,
  123. sounds = sounds,
  124. collision_box = {
  125. type = "fixed",
  126. fixed = {
  127. {-0.0625, -0.5, 0, 0.5, 0, 0.5},
  128. {-0.125, -0.5, 0.0625, -0.0625, 0, 0.5},
  129. {-0.1875, -0.5, 0.125, -0.125, 0, 0.5},
  130. {-0.25, -0.5, 0.1875, -0.1875, 0, 0.5},
  131. {-0.3125, -0.5, 0.25, -0.25, 0, 0.5},
  132. {-0.375, -0.5, 0.3125, -0.3125, 0, 0.5},
  133. {-0.4375, -0.5, 0.375, -0.375, 0, 0.5},
  134. {-0.5, -0.5, 0.4375, -0.4375, 0, 0.5},
  135. {0.4375, -0.5, -0.5, 0.5, 0, -0.4375},
  136. {0.375, -0.5, -0.4375, 0.5, 0, -0.375},
  137. {0.3125, -0.5, -0.375, 0.5, 0, -0.3125},
  138. {0.25, -0.5, -0.3125, 0.5, 0, -0.25},
  139. {0.1875, -0.5, -0.25, 0.5, 0, -0.1875},
  140. {0.125, -0.5, -0.1875, 0.5, 0, -0.125},
  141. {0.0625, -0.5, -0.125, 0.5, 0, -0.0625},
  142. {0, -0.5, -0.0625, 0.5, 0, 0},
  143. }
  144. },
  145. selection_box = {
  146. type = "fixed",
  147. fixed = {
  148. {-.5, -.5, -.5, .5, 0, .5},
  149. }
  150. },
  151. })
  152. end
  153. -- Angled stair/slab registration function.
  154. -- Nodes will be called angledstairs:{angled_stair,angled_slab}_<subname>
  155. function angledstairs.register_angled_stair_and_angled_slab(subname, recipeitem, groups, images,desc_angled_stair, desc_angled_slab, sounds)
  156. angledstairs.register_angled_stair(subname, recipeitem, groups, images, desc_angled_stair, sounds)
  157. angledstairs.register_angled_slab(subname, recipeitem, groups, images, desc_angled_slab, sounds)
  158. end
  159. -- Register angled stairs and slabs
  160. angledstairs.register_angled_stair_and_angled_slab("_acacia_wood", "default:acacia_wood",
  161. {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
  162. {"default_acacia_wood.png"},
  163. "Acacia Wood Stair",
  164. "Acacia Wood Slab",
  165. default.node_sound_wood_defaults())
  166. angledstairs.register_angled_stair_and_angled_slab("_aspen_wood", "default:aspen_wood",
  167. {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
  168. {"default_aspen_wood.png"},
  169. "Aspen Wood Stair",
  170. "Aspen Wood Slab",
  171. default.node_sound_wood_defaults())
  172. angledstairs.register_angled_stair_and_angled_slab("_junglewood", "default:junglewood",
  173. {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
  174. {"default_junglewood.png"},
  175. "Junglewood Angled Stair",
  176. "Junglewood Angled Slab",
  177. default.node_sound_wood_defaults())
  178. angledstairs.register_angled_stair_and_angled_slab("_pine_wood", "default:pine_wood",
  179. {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
  180. {"default_pine_wood.png"},
  181. "Pine Wood Stair",
  182. "Pine Wood Slab",
  183. default.node_sound_wood_defaults())
  184. angledstairs.register_angled_stair_and_angled_slab("_wood", "default:wood",
  185. {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
  186. {"default_wood.png"},
  187. "Wooden Angled Stair",
  188. "Wooden Angled Slab",
  189. default.node_sound_wood_defaults())
  190. angledstairs.register_angled_stair_and_angled_slab("_brick", "default:brick",
  191. {cracky = 3},
  192. {"default_brick.png"},
  193. "Brick Stair",
  194. "Brick Slab",
  195. default.node_sound_stone_defaults())
  196. angledstairs.register_angled_stair_and_angled_slab("_clay", "default:clay",
  197. {cracky = 3},
  198. {"default_clay.png"},
  199. "Clay Stair",
  200. "Clay Slab",
  201. default.node_sound_stone_defaults())
  202. angledstairs.register_angled_stair_and_angled_slab("_cobble", "default:cobble",
  203. {cracky = 3},
  204. {"default_cobble.png"},
  205. "Cobblestone Stair",
  206. "Cobblestone Slab",
  207. default.node_sound_stone_defaults())
  208. angledstairs.register_angled_stair_and_angled_slab("_mossycobble", "default:mossycobble",
  209. {cracky = 3},
  210. {"default_mossycobble.png"},
  211. "Mossy Cobblestone Stair",
  212. "Mossy Cobblestone Slab",
  213. default.node_sound_stone_defaults())
  214. angledstairs.register_angled_stair_and_angled_slab("_desert_cobble", "default:desert_cobble",
  215. {cracky = 3},
  216. {"default_desert_cobble.png"},
  217. "Desert Cobblestone Stair",
  218. "Desert Cobblestone Slab",
  219. default.node_sound_stone_defaults())
  220. angledstairs.register_angled_stair_and_angled_slab("_desert_stone", "default:desert_stone",
  221. {cracky = 3},
  222. {"default_desert_stone.png"},
  223. "Desertstone Stair",
  224. "Desertstone Slab",
  225. default.node_sound_stone_defaults())
  226. angledstairs.register_angled_stair_and_angled_slab("_desert_stone_block", "default:desert_stone_block",
  227. {cracky = 3},
  228. {"default_desert_stone_block.png"},
  229. "Desert Stone Block Stair",
  230. "Desert Stone Block Slab",
  231. default.node_sound_stone_defaults())
  232. angledstairs.register_angled_stair_and_angled_slab("_desert_stonebrick", "default:desert_stonebrick",
  233. {cracky = 3},
  234. {"default_desert_stone_brick.png"},
  235. "Desert Stone Brick Stair",
  236. "Desert Stone Brick Slab",
  237. default.node_sound_stone_defaults())
  238. angledstairs.register_angled_stair_and_angled_slab("_desert_sandstone", "default:desert_sandstone",
  239. {cracky = 3},
  240. {"default_desert_sandstone.png"},
  241. "Desert Sandstone Stair",
  242. "Desert Sandstone Slab",
  243. default.node_sound_stone_defaults())
  244. angledstairs.register_angled_stair_and_angled_slab("_desert_sandstone_block", "default:desert_sandstone_block",
  245. {cracky = 3},
  246. {"default_desert_sandstone_block.png"},
  247. "Desert Sandstone Block Stair",
  248. "Desert Sandstone Block Slab",
  249. default.node_sound_stone_defaults())
  250. angledstairs.register_angled_stair_and_angled_slab("_desert_sandstone_brick", "default:desert_sandstone_brick",
  251. {cracky = 3},
  252. {"default_desert_sandstone_brick.png"},
  253. "Desert Sandstone Brick Stair",
  254. "Desert Sandstone Brick Slab",
  255. default.node_sound_stone_defaults())
  256. angledstairs.register_angled_stair_and_angled_slab("_sandstone", "default:sandstone",
  257. {crumbly = 1, cracky = 3},
  258. {"default_sandstone.png"},
  259. "Sandstone Stair",
  260. "Sandstone Slab",
  261. default.node_sound_stone_defaults())
  262. angledstairs.register_angled_stair_and_angled_slab("_sandstone_block", "default:sandstone_block",
  263. {cracky = 2},
  264. {"default_sandstone_block.png"},
  265. "Sandstone Block Stair",
  266. "Sandstone Block Slab",
  267. default.node_sound_stone_defaults())
  268. angledstairs.register_angled_stair_and_angled_slab("_sandstonebrick", "default:sandstonebrick",
  269. {cracky = 2},
  270. {"default_sandstone_brick.png"},
  271. "Sandstone Brick Stair",
  272. "Sandstone Brick Slab",
  273. default.node_sound_stone_defaults())
  274. angledstairs.register_angled_stair_and_angled_slab("_silver_sandstone", "default:silver_sandstone",
  275. {crumbly = 1, cracky = 3},
  276. {"default_silver_sandstone.png"},
  277. "Silver Sandstone Stair",
  278. "Silver Sandstone Slab",
  279. default.node_sound_stone_defaults())
  280. angledstairs.register_angled_stair_and_angled_slab("_silver_sandstone_block", "default:silver_sandstone_block",
  281. {crumbly = 1, cracky = 3},
  282. {"default_silver_sandstone_block.png"},
  283. "Silver Sandstone Block Stair",
  284. "Silver Sandstone Block Slab",
  285. default.node_sound_stone_defaults())
  286. angledstairs.register_angled_stair_and_angled_slab("_silver_sandstone_brick", "default:silver_sandstone_brick",
  287. {crumbly = 1, cracky = 3},
  288. {"default_silver_sandstone_brick.png"},
  289. "Silver Sandstone Brick Stair",
  290. "Silver Sandstone Brick Slab",
  291. default.node_sound_stone_defaults())
  292. angledstairs.register_angled_stair_and_angled_slab("_stone", "default:stone",
  293. {cracky = 3},
  294. {"default_stone.png"},
  295. "Stone Stair",
  296. "Stone Slab",
  297. default.node_sound_stone_defaults())
  298. angledstairs.register_angled_stair_and_angled_slab("_stone_block", "default:stone_block",
  299. {cracky = 3},
  300. {"default_stone_block.png"},
  301. "Stone Block Stair",
  302. "Stone Block Slab",
  303. default.node_sound_stone_defaults())
  304. angledstairs.register_angled_stair_and_angled_slab("_stonebrick", "default:stonebrick",
  305. {cracky = 3},
  306. {"default_stone_brick.png"},
  307. "Stone Brick Stair",
  308. "Stone Brick Slab",
  309. default.node_sound_stone_defaults())
  310. angledstairs.register_angled_stair_and_angled_slab("_obsidian", "default:obsidian",
  311. {cracky = 1, level = 2},
  312. {"default_obsidian.png"},
  313. "Obsidian Stair",
  314. "Obsidian Slab",
  315. default.node_sound_stone_defaults())
  316. angledstairs.register_angled_stair_and_angled_slab("_obsidian_block", "default:obsidian_block",
  317. {cracky = 1, level = 2},
  318. {"default_obsidian_block.png"},
  319. "Obsidian Block Stair",
  320. "Obsidian Block Slab",
  321. default.node_sound_stone_defaults())
  322. angledstairs.register_angled_stair_and_angled_slab("_obsidianbrick", "default:obsidianbrick",
  323. {cracky = 1, level = 2},
  324. {"default_obsidian_brick.png"},
  325. "Obsidian Brick Stair",
  326. "Obsidian Brick Slab",
  327. default.node_sound_stone_defaults())
  328. angledstairs.register_angled_stair_and_angled_slab("_bronzeblock", "default:bronzeblock",
  329. {cracky = 1, level = 2},
  330. {"default_bronze_block.png"},
  331. "Bronze Block Stair",
  332. "Bronze Block Slab",
  333. default.node_sound_metal_defaults())
  334. angledstairs.register_angled_stair_and_angled_slab("_copperblock", "default:copperblock",
  335. {cracky = 1, level = 2},
  336. {"default_copper_block.png"},
  337. "Copper Block Stair",
  338. "Copper Block Slab",
  339. default.node_sound_metal_defaults())
  340. angledstairs.register_angled_stair_and_angled_slab("_diamondblock", "default:diamondblock",
  341. {cracky = 1},
  342. {"default_diamond_block.png"},
  343. "Diamond Block Stair",
  344. "Diamond Block Slab",
  345. default.node_sound_stone_defaults())
  346. angledstairs.register_angled_stair_and_angled_slab("_goldblock", "default:goldblock",
  347. {cracky = 1},
  348. {"default_gold_block.png"},
  349. "Gold Block Stair",
  350. "Gold Block Slab",
  351. default.node_sound_stone_defaults())
  352. angledstairs.register_angled_stair_and_angled_slab("_meseblock", "default:meseblock",
  353. {cracky = 1, level = 2},
  354. {"default_mese_block.png"},
  355. "Mese Block Stair",
  356. "Mese Block Slab",
  357. default.node_sound_metal_defaults())
  358. angledstairs.register_angled_stair_and_angled_slab("_steelblock", "default:steelblock",
  359. {cracky = 1, level = 2},
  360. {"default_steel_block.png"},
  361. "Steel Block Stair",
  362. "Steel Block Slab",
  363. default.node_sound_metal_defaults())
  364. angledstairs.register_angled_stair_and_angled_slab("_tinblock", "default:tinblock",
  365. {cracky = 1, level = 2},
  366. {"default_tin_block.png"},
  367. "Tin Block Stair",
  368. "Tin Block Slab",
  369. default.node_sound_metal_defaults())
  370. angledstairs.register_angled_stair_and_angled_slab("_dirt", "default:dirt",
  371. {cracky = 1, level = 2},
  372. {"default_dirt.png"},
  373. "Dirt Stair",
  374. "Dirt Slab",
  375. default.node_sound_dirt_defaults())
  376. angledstairs.register_angled_stair_and_angled_slab("_grass", "default:grass",
  377. {cracky = 1, level = 2},
  378. {"default_grass.png"},
  379. "Grass Stair",
  380. "Grass Slab",
  381. default.node_sound_dirt_defaults())
  382. angledstairs.register_angled_stair_and_angled_slab("_ice", "default:ice",
  383. {cracky = 1, level = 2},
  384. {"default_ice.png"},
  385. "Ice Stair",
  386. "Ice Slab",
  387. default.node_sound_glass_defaults())
  388. angledstairs.register_angled_stair_and_angled_slab("_snow", "default:snow",
  389. {cracky = 1, level = 2},
  390. {"default_snow.png"},
  391. "Snow Block Stair",
  392. "Snow Block Slab",
  393. default.node_sound_dirt_defaults())
  394. --- placeholders for glass for a later date they look terrible right now. need to work on the models more eventually
  395. --[[angledstairs.register_angled_stair_and_angled_slab("_glass", "default:glass",
  396. {cracky = 1, level = 2},
  397. {"default_glass.png"},
  398. "Glass Stair",
  399. "Glass Slab",
  400. default.node_sound_glass_defaults())
  401. angledstairs.register_angled_stair_and_angled_slab("_obsidian_glass", "default:obsidian_glass",
  402. {cracky = 1, level = 2},
  403. {"default_obsidian_glass.png"},
  404. "Obsidian Glass Stair",
  405. "Obsidian Glass Slab",
  406. default.node_sound_glass_defaults())]]--
  407. --and lava & water... just because
  408. angledstairs.register_angled_stair_and_angled_slab("_lava", "default:lava",
  409. {cracky = 1, level = 2},
  410. {"default_lava.png"},
  411. "Lava Stair",
  412. "Lava Slab",
  413. default.node_sound_stone_defaults())
  414. angledstairs.register_angled_stair_and_angled_slab("_water", "default:water",
  415. {cracky = 1, level = 2},
  416. {"default_water.png"},
  417. "Water Stair",
  418. "Water Slab",
  419. default.node_sound_stone_defaults())