station_woodworking.lua 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. local woodworking_table_functions = simplecrafting_lib.generate_table_functions('woodworking', {
  2. show_guides = true,
  3. alphabetize_items = true,})
  4. local woodworking_table_def = {
  5. description = 'Woodworking Station',
  6. drawtype = 'mesh',
  7. mesh = 'stations_woodworking.obj',
  8. tiles = {'stations_woodworking.png'},
  9. use_texture_alpha = 'opaque',
  10. sounds = default.node_sound_wood_defaults(),
  11. paramtype2 = 'facedir',
  12. paramtype = 'light',
  13. selection_box = {
  14. type = 'fixed',
  15. fixed = {-.5, -.5, -.5, 1.5, .5, .5},
  16. },
  17. collision_box = {
  18. type = 'fixed',
  19. fixed = {-.5, -.5, -.5, 1.5, .5, .5},
  20. },
  21. groups = {oddly_breakable_by_hand = 1, choppy=3},
  22. after_place_node = function(pos, placer, itemstack)
  23. if not epic.space_to_side(pos) then
  24. minetest.remove_node(pos)
  25. return itemstack
  26. end
  27. local meta = minetest.get_meta(pos)
  28. meta:set_string('infotext', 'Woodworking Station')
  29. end,
  30. after_dig_node = function(pos, oldnode, oldmetadata, digger)
  31. epic.remove_side_node(pos, oldnode)
  32. end,
  33. on_rotate = function(pos, node)
  34. return false
  35. end,
  36. }
  37. for k, v in pairs(woodworking_table_functions) do
  38. woodworking_table_def[k] = v
  39. end
  40. minetest.register_node('stations:woodworking', woodworking_table_def)
  41. local woodworking_locked_functions = simplecrafting_lib.generate_table_functions('woodworking', {
  42. show_guides = true,
  43. alphabetize_items = true,
  44. protect_inventory = true})
  45. local woodworking_locked_def = {
  46. description = 'Woodworking Station (locked)',
  47. drawtype = 'mesh',
  48. mesh = 'stations_woodworking.obj',
  49. tiles = {'stations_woodworking.png'},
  50. use_texture_alpha = 'opaque',
  51. sounds = default.node_sound_wood_defaults(),
  52. paramtype2 = 'facedir',
  53. paramtype = 'light',
  54. selection_box = {
  55. type = 'fixed',
  56. fixed = {-.5, -.5, -.5, 1.5, .5, .5},
  57. },
  58. collision_box = {
  59. type = 'fixed',
  60. fixed = {-.5, -.5, -.5, 1.5, .5, .5},
  61. },
  62. groups = {oddly_breakable_by_hand = 1, choppy=3},
  63. after_place_node = function(pos, placer, itemstack)
  64. if not epic.space_to_side(pos) then
  65. minetest.remove_node(pos)
  66. return itemstack
  67. end
  68. local meta = minetest.get_meta(pos)
  69. meta:set_string('infotext', 'Woodworking Station (locked)')
  70. end,
  71. after_dig_node = function(pos, oldnode, oldmetadata, digger)
  72. epic.remove_side_node(pos, oldnode)
  73. end,
  74. on_rotate = function(pos, node)
  75. return false
  76. end,
  77. }
  78. for k, v in pairs(woodworking_locked_functions) do
  79. woodworking_locked_def[k] = v
  80. end
  81. minetest.register_node('stations:woodworking_locked', woodworking_locked_def)
  82. local is_uninv = minetest.global_exists("unified_inventory") or false
  83. if is_uninv then
  84. unified_inventory.register_craft_type("woodworking", {
  85. description = "Woodworking Station",
  86. icon = 'stations_woodworking_icon.png',
  87. width = 4,
  88. height = 2,
  89. uses_crafting_grid = false
  90. })
  91. end