station_food_prep.lua 2.8 KB

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