init.lua 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. -- Mod is to be reloadable.
  2. if not minetest.global_exists("darkage") then darkage = {} end
  3. darkage.modpath = minetest.get_modpath("darkage")
  4. -- Functions.
  5. dofile(darkage.modpath .. "/functions.lua")
  6. if not darkage.run_once then
  7. -- Craftitems.
  8. minetest.register_craftitem("darkage:chalk_powder", {
  9. description = "Chalk Powder",
  10. inventory_image = "darkage_chalk_powder.png",
  11. })
  12. minetest.register_craftitem("darkage:mud_lump", {
  13. description = "Mud Lump",
  14. inventory_image = "darkage_mud_lump.png",
  15. })
  16. minetest.register_craftitem("darkage:silt_lump", {
  17. description = "Silt Lump",
  18. inventory_image = "darkage_silt_lump.png",
  19. })
  20. minetest.register_craftitem("darkage:iron_stick", {
  21. description = "Wrought Iron Rod\n\nCan be used to test protection.\nAlso updates infotext names.",
  22. inventory_image = "darkage_iron_stick.png",
  23. on_use = function(...) return default.strike_protection(...) end,
  24. })
  25. -- Nodes.
  26. minetest.register_node("darkage:straw_bale", {
  27. description = "Straw Bale",
  28. tiles = {"darkage_straw_bale.png"},
  29. paramtype2 = "facedir",
  30. groups = utility.dig_groups("straw", {flammable=4, falling_node=1}),
  31. sounds = default.node_sound_leaves_defaults(),
  32. })
  33. minetest.register_node("darkage:glass", {
  34. description = "Clean Medieval Glass",
  35. drawtype = "glasslike",
  36. tiles = {"darkage_glass.png"},
  37. use_texture_alpha = "blend",
  38. paramtype = "light",
  39. sunlight_propagates = true,
  40. groups = utility.dig_groups("glass"),
  41. sounds = default.node_sound_glass_defaults(),
  42. silverpick_drop = true,
  43. drop = {
  44. max_items = 2,
  45. items = {
  46. {
  47. items = {"vessels:glass_fragments"},
  48. rarity = 1,
  49. },
  50. {
  51. items = {"default:steel_ingot"},
  52. rarity = 3,
  53. },
  54. }
  55. },
  56. })
  57. minetest.register_node("darkage:milk_glass", {
  58. description = "Milky Medieval Glass",
  59. drawtype = "glasslike",
  60. tiles = {"darkage_milk_glass.png"},
  61. use_texture_alpha = "blend",
  62. paramtype = "light",
  63. sunlight_propagates = true,
  64. groups = utility.dig_groups("glass"),
  65. sounds = default.node_sound_glass_defaults(),
  66. silverpick_drop = true,
  67. drop = {
  68. max_items = 2,
  69. items = {
  70. {
  71. items = {"vessels:glass_fragments"},
  72. rarity = 1,
  73. },
  74. {
  75. items = {"default:steel_ingot"},
  76. rarity = 3,
  77. },
  78. }
  79. },
  80. })
  81. minetest.register_node("darkage:glow_glass", {
  82. description = "Medieval Glow Glass",
  83. drawtype = "glasslike",
  84. tiles = {"darkage_glass.png"},
  85. use_texture_alpha = "blend",
  86. paramtype = "light",
  87. sunlight_propagates = true,
  88. light_source = 12,
  89. groups = utility.dig_groups("glass"),
  90. sounds = default.node_sound_glass_defaults(),
  91. silverpick_drop = true,
  92. drop = {
  93. max_items = 2,
  94. items = {
  95. {
  96. items = {"vessels:glass_fragments"},
  97. rarity = 1,
  98. },
  99. {
  100. items = {"default:steel_ingot"},
  101. rarity = 3,
  102. },
  103. {
  104. items = {"xdecor:lantern"},
  105. rarity = 3,
  106. },
  107. }
  108. },
  109. })
  110. minetest.register_node("darkage:glass_round", {
  111. description = "Round Glass",
  112. drawtype = "glasslike",
  113. tiles = {"darkage_glass_round.png"},
  114. paramtype = "light",
  115. use_texture_alpha = "blend",
  116. sunlight_propagates = true,
  117. sounds = default.node_sound_glass_defaults(),
  118. groups = utility.dig_groups("glass"),
  119. silverpick_drop = true,
  120. drop = {
  121. max_items = 2,
  122. items = {
  123. {
  124. items = {"vessels:glass_fragments"},
  125. rarity = 1,
  126. },
  127. {
  128. items = {"default:steel_ingot"},
  129. rarity = 3,
  130. },
  131. }
  132. },
  133. })
  134. minetest.register_node("darkage:milk_glass_round", {
  135. description = "Milky Medieval Round Glass",
  136. drawtype = "glasslike",
  137. tiles = {"darkage_milk_glass_round.png"},
  138. use_texture_alpha = "blend",
  139. paramtype = "light",
  140. sunlight_propagates = true,
  141. groups = utility.dig_groups("glass"),
  142. sounds = default.node_sound_glass_defaults(),
  143. silverpick_drop = true,
  144. drop = {
  145. max_items = 2,
  146. items = {
  147. {
  148. items = {"vessels:glass_fragments"},
  149. rarity = 1,
  150. },
  151. {
  152. items = {"default:steel_ingot"},
  153. rarity = 3,
  154. },
  155. }
  156. },
  157. })
  158. minetest.register_node("darkage:glass_square", {
  159. description = "Square Glass",
  160. drawtype = "glasslike",
  161. tiles = {"darkage_glass_square.png"},
  162. paramtype = "light",
  163. use_texture_alpha = "blend",
  164. sunlight_propagates = true,
  165. sounds = default.node_sound_glass_defaults(),
  166. groups = utility.dig_groups("glass"),
  167. silverpick_drop = true,
  168. drop = {
  169. max_items = 2,
  170. items = {
  171. {
  172. items = {"vessels:glass_fragments"},
  173. rarity = 1,
  174. },
  175. {
  176. items = {"default:steel_ingot"},
  177. rarity = 3,
  178. },
  179. }
  180. },
  181. })
  182. minetest.register_node("darkage:milk_glass_square", {
  183. description = "Milky Medieval Square Glass",
  184. drawtype = "glasslike",
  185. tiles = {"darkage_milk_glass_square.png"},
  186. use_texture_alpha = "blend",
  187. paramtype = "light",
  188. sunlight_propagates = true,
  189. groups = utility.dig_groups("glass"),
  190. sounds = default.node_sound_glass_defaults(),
  191. silverpick_drop = true,
  192. drop = {
  193. max_items = 2,
  194. items = {
  195. {
  196. items = {"vessels:glass_fragments"},
  197. rarity = 1,
  198. },
  199. {
  200. items = {"default:steel_ingot"},
  201. rarity = 3,
  202. },
  203. }
  204. },
  205. })
  206. minetest.register_node("darkage:lamp", {
  207. description = "Lamp Lattice",
  208. tiles = {"darkage_lamp.png"},
  209. paramtype = "light",
  210. light_source = default.LIGHT_MAX - 2,
  211. groups = utility.dig_groups("bigitem", {flammable=1}),
  212. sounds = default.node_sound_glass_defaults(),
  213. })
  214. minetest.register_node("darkage:wood_frame", {
  215. description = "Wood Framed Glass",
  216. drawtype = "glasslike_framed",
  217. tiles = {"darkage_wood_frame.png"},
  218. is_ground_content = false,
  219. paramtype = "light",
  220. sunlight_propagates = true,
  221. groups = utility.dig_groups("glass"),
  222. sounds = default.node_sound_stone_defaults(),
  223. silverpick_drop = true,
  224. drop = {
  225. max_items = 2,
  226. items = {
  227. {
  228. items = {"vessels:glass_fragments", "default:stick"},
  229. rarity = 1,
  230. },
  231. }
  232. },
  233. })
  234. minetest.register_node("darkage:stone_brick", {
  235. description = "Stone Masonry",
  236. tiles = {"darkage_stone_brick.png"},
  237. paramtype2 = "facedir",
  238. groups = utility.dig_groups("brick", {brick=1}),
  239. sounds = default.node_sound_stone_defaults()
  240. })
  241. minetest.register_node("darkage:chalk", {
  242. description = "Chalk",
  243. tiles = {"darkage_chalk.png"},
  244. drop = 'darkage:chalk_powder 4',
  245. _is_bulk_mapgen_stone = true,
  246. groups = utility.dig_groups("clay", {falling_node=1}),
  247. sounds = default.node_sound_stone_defaults()
  248. })
  249. minetest.register_node("darkage:chalked_bricks", {
  250. description = "Chalked Brick",
  251. tiles = {"darkage_chalked_bricks.png"},
  252. paramtype2 = "facedir",
  253. groups = utility.dig_groups("brick", {brick=1}),
  254. sounds = default.node_sound_stone_defaults(),
  255. })
  256. minetest.register_node("darkage:adobe", {
  257. description = "Adobe",
  258. tiles = {"darkage_adobe.png"},
  259. groups = utility.dig_groups("hardclay"),
  260. sounds = default.node_sound_sand_defaults(),
  261. })
  262. minetest.register_node("darkage:cobble_with_plaster", {
  263. description = "Cobblestone With Plaster",
  264. tiles = {
  265. "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_D.png)",
  266. "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_B.png)",
  267. "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_C.png)",
  268. "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_A.png)",
  269. "default_cobble.png",
  270. "darkage_chalk.png",
  271. },
  272. paramtype2 = "facedir",
  273. drop = 'default:cobble',
  274. groups = utility.dig_groups("cobble"),
  275. sounds = default.node_sound_stone_defaults(),
  276. })
  277. minetest.register_node("darkage:chalked_bricks_with_plaster", {
  278. description = "Chalked Bricks With Plaster",
  279. tiles = {
  280. "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_D.png)",
  281. "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_B.png)",
  282. "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_C.png)",
  283. "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_A.png)",
  284. "darkage_chalked_bricks.png",
  285. "darkage_chalk.png",
  286. },
  287. paramtype2 = "facedir",
  288. drop = 'default:cobble',
  289. groups = utility.dig_groups("brick", {brick=1}),
  290. sounds = default.node_sound_stone_defaults(),
  291. })
  292. -- Sterile dirt does not grow plants. This soil is useless for farming.
  293. minetest.register_node("darkage:darkdirt", {
  294. description = "Coarse Sterile Dirt",
  295. tiles = {"darkage_darkdirt.png"},
  296. groups = utility.dig_groups("dirt", {dirt_type = 1, sterile_dirt_type = 1, raw_dirt_type = 1, falling_node = 1}),
  297. sounds = default.node_sound_dirt_defaults(),
  298. })
  299. minetest.register_node("darkage:mud", {
  300. description = "Mud",
  301. tiles = {"darkage_mud_up.png", "darkage_mud.png"},
  302. groups = utility.dig_groups("mud", {falling_node=1}),
  303. drop = 'darkage:mud_lump 4',
  304. sounds = default.node_sound_dirt_defaults(),
  305. movement_speed_multiplier = default.SLOW_SPEED,
  306. })
  307. minetest.register_node("darkage:silt", {
  308. description = "Silt",
  309. tiles = {"darkage_silt.png"},
  310. groups = utility.dig_groups("mud", {falling_node=1}),
  311. drop = 'darkage:silt_lump 4',
  312. sounds = default.node_sound_dirt_defaults(),
  313. movement_speed_multiplier = default.SLOW_SPEED,
  314. })
  315. minetest.register_node("darkage:schist", {
  316. description = "Schist",
  317. tiles = {"darkage_schist.png"},
  318. groups = utility.dig_groups("softstone"),
  319. sounds = default.node_sound_stone_defaults(),
  320. _is_bulk_mapgen_stone = true,
  321. _toolranks = {
  322. ignore = true,
  323. },
  324. })
  325. minetest.register_node("darkage:gneiss", {
  326. description = "Gneiss",
  327. tiles = {"darkage_gneiss.png"},
  328. groups = utility.dig_groups("softstone", {stone=1}),
  329. drop = "darkage:gneiss_rubble",
  330. _is_bulk_mapgen_stone = true,
  331. sounds = default.node_sound_stone_defaults(),
  332. _toolranks = {
  333. ignore = true,
  334. },
  335. })
  336. minetest.register_node("darkage:gneiss_rubble", {
  337. description = "Gneiss Rubble",
  338. tiles = {"darkage_gneiss_rubble.png"},
  339. groups = utility.dig_groups("cobble", {stone=1}),
  340. sounds = default.node_sound_stone_defaults(),
  341. _is_bulk_mapgen_stone = true,
  342. _toolranks = {
  343. ignore = true,
  344. },
  345. })
  346. minetest.register_node("darkage:gneiss_brick", {
  347. description = "Gneiss Brick",
  348. tiles = {"darkage_gneiss_brick.png"},
  349. paramtype2 = "facedir",
  350. groups = utility.dig_groups("brick", {stone=1}),
  351. sounds = default.node_sound_stone_defaults()
  352. })
  353. minetest.register_node("darkage:gneiss_block", {
  354. description = "Gneiss Block",
  355. tiles = {"darkage_gneiss_block.png"},
  356. groups = utility.dig_groups("block", {stone=1}),
  357. sounds = default.node_sound_stone_defaults()
  358. })
  359. minetest.register_node("darkage:marble", {
  360. description = "White Serpentine",
  361. tiles = {"darkage_marble.png"},
  362. groups = utility.dig_groups("hardstone", {stone=1}),
  363. sounds = default.node_sound_stone_defaults()
  364. })
  365. minetest.register_node("darkage:marble_tile", {
  366. description = "White Serpentine Tile",
  367. tiles = {"darkage_marble_tile.png"},
  368. paramtype2 = "facedir",
  369. groups = utility.dig_groups("stone", {brick=1}),
  370. sounds = default.node_sound_stone_defaults()
  371. })
  372. minetest.register_node("darkage:slate", {
  373. description = "Slate",
  374. tiles = {"darkage_slate.png", "darkage_slate.png", "darkage_slate_side.png"},
  375. drop = 'darkage:slate_rubble',
  376. groups = utility.dig_groups("softstone"),
  377. sounds = default.node_sound_stone_defaults(),
  378. _is_bulk_mapgen_stone = true,
  379. _toolranks = {
  380. ignore = true,
  381. },
  382. })
  383. minetest.register_node("darkage:slate_rubble", {
  384. description = "Slate Rubble",
  385. tiles = {"darkage_slate_rubble.png"},
  386. groups = utility.dig_groups("softcobble"),
  387. sounds = default.node_sound_stone_defaults(),
  388. _is_bulk_mapgen_stone = true,
  389. _toolranks = {
  390. ignore = true,
  391. },
  392. })
  393. minetest.register_node("darkage:slate_tile", {
  394. description = "Slate Tile",
  395. tiles = {"darkage_slate_tile.png"},
  396. paramtype2 = "facedir",
  397. groups = utility.dig_groups("cobble"),
  398. sounds = default.node_sound_stone_defaults(),
  399. })
  400. minetest.register_node("darkage:slate_block", {
  401. description = "Slate Block",
  402. tiles = {"darkage_slate_block.png"},
  403. groups = utility.dig_groups("block", {block=1}),
  404. sounds = default.node_sound_stone_defaults(),
  405. })
  406. minetest.register_node("darkage:slate_brick", {
  407. description = "Slate Brick",
  408. tiles = {"darkage_slate_brick.png"},
  409. paramtype2 = "facedir",
  410. groups = utility.dig_groups("brick", {brick=1}),
  411. sounds = default.node_sound_stone_defaults(),
  412. })
  413. minetest.register_node("darkage:shale", {
  414. description = "Shale",
  415. tiles = {"darkage_shale.png", "darkage_shale.png", "darkage_shale_side.png"},
  416. groups = utility.dig_groups("softstone"),
  417. sounds = default.node_sound_stone_defaults(),
  418. _is_bulk_mapgen_stone = true,
  419. _toolranks = {
  420. ignore = true,
  421. },
  422. })
  423. minetest.register_node("darkage:ors", {
  424. description = "Old Red Sandstone",
  425. tiles = {"darkage_ors.png"},
  426. drop = "darkage:ors_rubble",
  427. groups = utility.dig_groups("stone"),
  428. sounds = default.node_sound_stone_defaults(),
  429. _is_bulk_mapgen_stone = true,
  430. _toolranks = {
  431. ignore = true,
  432. },
  433. })
  434. minetest.register_node("darkage:ors_rubble", {
  435. description = "Old Red Sandstone Rubble",
  436. tiles = {"darkage_ors_rubble.png"},
  437. groups = utility.dig_groups("softcobble", {stone = 1}),
  438. sounds = default.node_sound_stone_defaults(),
  439. _is_bulk_mapgen_stone = true,
  440. _toolranks = {
  441. ignore = true,
  442. },
  443. })
  444. minetest.register_node("darkage:ors_brick", {
  445. description = "Old Red Sandstone Brick",
  446. tiles = {"darkage_ors_brick.png"},
  447. paramtype2 = "facedir",
  448. groups = utility.dig_groups("brick", {brick=1}),
  449. sounds = default.node_sound_stone_defaults()
  450. })
  451. minetest.register_node("darkage:ors_block", {
  452. description = "Old Red Sandstone Block",
  453. tiles = {"darkage_ors_block.png"},
  454. groups = utility.dig_groups("block", {stone = 2}),
  455. sounds = default.node_sound_stone_defaults()
  456. })
  457. minetest.register_node("darkage:tuff", {
  458. description = "Tuff",
  459. tiles = {"darkage_tuff.png"},
  460. groups = utility.dig_groups("cobble", {stone = 1}),
  461. drop = 'darkage:tuff_rubble',
  462. sounds = default.node_sound_stone_defaults(),
  463. _is_bulk_mapgen_stone = true,
  464. _toolranks = {
  465. ignore = true,
  466. },
  467. })
  468. minetest.register_node("darkage:tuff_bricks", {
  469. description = "Tuff Bricks",
  470. tiles = {"darkage_tuff_bricks.png"},
  471. paramtype2 = "facedir",
  472. groups = utility.dig_groups("brick", {brick=1}),
  473. sounds = default.node_sound_stone_defaults()
  474. })
  475. minetest.register_node("darkage:tuff_rubble", {
  476. description = "Tuff Rubble",
  477. tiles = {"darkage_tuff_rubble.png"},
  478. groups = utility.dig_groups("cobble", {falling_node = 1}),
  479. sounds = default.node_sound_gravel_defaults(),
  480. _is_bulk_mapgen_stone = true,
  481. _toolranks = {
  482. ignore = true,
  483. },
  484. })
  485. minetest.register_node("darkage:old_tuff_bricks", {
  486. description = "Old Tuff Bricks",
  487. tiles = {"darkage_old_tuff_bricks.png"},
  488. paramtype2 = "facedir",
  489. groups = utility.dig_groups("brick", {brick=1}),
  490. sounds = default.node_sound_stone_defaults()
  491. })
  492. minetest.register_node("darkage:rhyolitic_tuff", {
  493. description = "Rhyolitic Tuff",
  494. tiles = {"darkage_rhyolitic_tuff.png"},
  495. groups = utility.dig_groups("cobble", {stone = 1}),
  496. drop = 'darkage:rhyolitic_tuff_rubble',
  497. sounds = default.node_sound_stone_defaults(),
  498. _is_bulk_mapgen_stone = true,
  499. _toolranks = {
  500. ignore = true,
  501. },
  502. })
  503. minetest.register_node("darkage:rhyolitic_tuff_rubble", {
  504. description = "Rhyolitic Tuff Rubble",
  505. tiles = {"darkage_rhyolitic_tuff_rubble.png"},
  506. groups = utility.dig_groups("softcobble", {falling_node = 1}),
  507. sounds = default.node_sound_gravel_defaults(),
  508. _is_bulk_mapgen_stone = true,
  509. _toolranks = {
  510. ignore = true,
  511. },
  512. })
  513. minetest.register_node("darkage:rhyolitic_tuff_bricks", {
  514. description = "Rhyolitic Tuff Bricks",
  515. tiles = {"darkage_rhyolitic_tuff_bricks.png"},
  516. paramtype2 = "facedir",
  517. groups = utility.dig_groups("brick", {brick=1}),
  518. sounds = default.node_sound_stone_defaults()
  519. })
  520. minetest.register_node("darkage:basaltic", {
  521. --[[
  522. drawtype = "airlike",
  523. paramtype = "light",
  524. sunlight_propagates = true,
  525. light_source = 15,
  526. pointable = false,
  527. --]]
  528. description = "Basaltic Rock",
  529. tiles = {"darkage_basalt.png"},
  530. drop = "darkage:basaltic_rubble",
  531. _is_bulk_mapgen_stone = true,
  532. groups = utility.dig_groups("hardstone", {stone = 1, native_stone = 1}),
  533. sounds = default.node_sound_stone_defaults(),
  534. movement_speed_multiplier = default.ROAD_SPEED,
  535. -- Collapsed stone breaks up into cobble.
  536. on_finish_collapse = function(pos, node)
  537. minetest.swap_node(pos, {name="darkage:basaltic_rubble"})
  538. end,
  539. on_collapse_to_entity = function(pos, node)
  540. minetest.add_item(pos, {name="darkage:basaltic_rubble"})
  541. end,
  542. _toolranks = {
  543. ignore = true,
  544. },
  545. })
  546. minetest.register_node("darkage:unstable_basalt", {
  547. description = "Basaltic Rock (Please Report To Admin)",
  548. tiles = {"darkage_basalt.png"},
  549. drop = "darkage:basaltic_rubble",
  550. _is_bulk_mapgen_stone = true,
  551. groups = utility.dig_groups("hardstone", {stone = 1, falling_node = 1}),
  552. sounds = default.node_sound_stone_defaults(),
  553. movement_speed_multiplier = default.ROAD_SPEED,
  554. -- Collapsed stone breaks up into cobble.
  555. on_finish_collapse = function(pos, node)
  556. minetest.swap_node(pos, {name="darkage:basaltic_rubble"})
  557. end,
  558. on_collapse_to_entity = function(pos, node)
  559. minetest.add_item(pos, {name="darkage:basaltic_rubble"})
  560. end,
  561. -- Player walking on it causes collapse.
  562. on_player_walk_over = function(pos, player)
  563. minetest.check_for_falling(pos)
  564. end,
  565. _toolranks = {
  566. ignore = true,
  567. },
  568. })
  569. minetest.register_node("darkage:basaltic_rubble", {
  570. description = "Basaltic Rubble",
  571. tiles = {{name="darkage_basalt_rubble_32x32.png", align_style="world", scale=2}},
  572. groups = utility.dig_groups("cobble", {stone = 1, native_stone = 1}),
  573. sounds = default.node_sound_stone_defaults(),
  574. _is_bulk_mapgen_stone = true,
  575. _toolranks = {
  576. ignore = true,
  577. },
  578. })
  579. minetest.register_node("darkage:basaltic_brick", {
  580. description = "Basaltic Brick",
  581. tiles = {"darkage_basalt_brick.png"},
  582. paramtype2 = "facedir",
  583. groups = utility.dig_groups("brick", {brick=1}),
  584. sounds = default.node_sound_stone_defaults()
  585. })
  586. minetest.register_node("darkage:basaltic_block", {
  587. description = "Basaltic Block",
  588. tiles = {"darkage_basalt_block.png"},
  589. groups = utility.dig_groups("block", {block=1}),
  590. sounds = default.node_sound_stone_defaults()
  591. })
  592. minetest.register_node("darkage:box", {
  593. description = "Wooden Box",
  594. tiles = {
  595. "darkage_box_top.png",
  596. "darkage_box_top.png",
  597. "darkage_box.png",
  598. },
  599. groups = utility.dig_groups("furniture"),
  600. sounds = default.node_sound_wood_defaults(),
  601. on_rightclick = function(...)
  602. return darkage.on_rightclick(...)
  603. end,
  604. on_construct = function(...)
  605. return darkage.on_construct(...)
  606. end,
  607. after_place_node = function(...)
  608. return darkage.after_place_node(...)
  609. end,
  610. can_dig = function(...)
  611. return darkage.can_dig(...)
  612. end,
  613. allow_metadata_inventory_move = function(...)
  614. return darkage.allow_metadata_inventory_move(...)
  615. end,
  616. allow_metadata_inventory_put = function(...)
  617. return darkage.allow_metadata_inventory_put(...)
  618. end,
  619. allow_metadata_inventory_take = function(...)
  620. return darkage.allow_metadata_inventory_take(...)
  621. end,
  622. on_metadata_inventory_move = function(...)
  623. return darkage.on_metadata_inventory_move(...)
  624. end,
  625. on_metadata_inventory_put = function(...)
  626. return darkage.on_metadata_inventory_put(...)
  627. end,
  628. on_metadata_inventory_take = function(...)
  629. return darkage.on_metadata_inventory_take(...)
  630. end,
  631. on_blast = function(...)
  632. return darkage.on_blast(...)
  633. end,
  634. })
  635. minetest.register_node("darkage:wood_shelves", {
  636. description = "Wooden Shelf",
  637. tiles = {
  638. "darkage_shelves.png",
  639. "darkage_shelves.png",
  640. "darkage_shelves.png",
  641. "darkage_shelves.png",
  642. "darkage_shelves.png",
  643. "darkage_shelves_front.png",
  644. },
  645. paramtype2 = "facedir",
  646. groups = utility.dig_groups("furniture"),
  647. sounds = default.node_sound_wood_defaults(),
  648. on_rightclick = function(...)
  649. return darkage.on_rightclick(...)
  650. end,
  651. on_construct = function(...)
  652. return darkage.on_construct(...)
  653. end,
  654. after_place_node = function(...)
  655. return darkage.after_place_node(...)
  656. end,
  657. can_dig = function(...)
  658. return darkage.can_dig(...)
  659. end,
  660. allow_metadata_inventory_move = function(...)
  661. return darkage.allow_metadata_inventory_move(...)
  662. end,
  663. allow_metadata_inventory_put = function(...)
  664. return darkage.allow_metadata_inventory_put(...)
  665. end,
  666. allow_metadata_inventory_take = function(...)
  667. return darkage.allow_metadata_inventory_take(...)
  668. end,
  669. on_metadata_inventory_move = function(...)
  670. return darkage.on_metadata_inventory_move(...)
  671. end,
  672. on_metadata_inventory_put = function(...)
  673. return darkage.on_metadata_inventory_put(...)
  674. end,
  675. on_metadata_inventory_take = function(...)
  676. return darkage.on_metadata_inventory_take(...)
  677. end,
  678. on_blast = function(...)
  679. return darkage.on_blast(...)
  680. end,
  681. })
  682. minetest.register_on_player_receive_fields(function(...)
  683. return darkage.on_player_receive_fields(...)
  684. end)
  685. -- Register mod as reloadable.
  686. local c = "darkage:core"
  687. local f = darkage.modpath .. "/init.lua"
  688. reload.register_file(c, f, false)
  689. darkage.run_once = true
  690. end