station_sewing.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. local sewing_table_functions = simplecrafting_lib.generate_table_functions('sewing', {
  2. show_guides = true,
  3. alphabetize_items = true,}
  4. )
  5. local sewing_table_def = {
  6. description = 'Sewing Station',
  7. drawtype = 'mesh',
  8. mesh = 'stations_sewing.obj',
  9. tiles = {'stations_sewing.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 = {-.5, -.5, -.5, 1.5, .3, .5},
  17. },
  18. collision_box = {
  19. type = 'fixed',
  20. fixed = {-.5, -.5, -.5, 1.5, .3, .5},
  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. else
  28. local meta = minetest.get_meta(pos)
  29. meta:set_string('infotext', 'Sewing Station')
  30. end
  31. end,
  32. after_dig_node = function(pos, oldnode, oldmetadata, digger)
  33. epic.remove_side_node(pos, oldnode)
  34. end,
  35. on_rotate = function(pos, node)
  36. return false
  37. end,
  38. }
  39. for k, v in pairs(sewing_table_functions) do
  40. sewing_table_def[k] = v
  41. end
  42. minetest.register_node('stations:sewing', sewing_table_def)
  43. local sewing_locked_functions = simplecrafting_lib.generate_table_functions('sewing', {
  44. show_guides = true,
  45. alphabetize_items = true,
  46. protect_inventory = true,}
  47. )
  48. local sewing_locked_def = {
  49. description = 'Sewing Station (locked)',
  50. drawtype = 'mesh',
  51. mesh = 'stations_sewing.obj',
  52. tiles = {'stations_sewing.png'},
  53. use_texture_alpha = 'opaque',
  54. sounds = default.node_sound_wood_defaults(),
  55. paramtype2 = 'facedir',
  56. paramtype = 'light',
  57. selection_box = {
  58. type = 'fixed',
  59. fixed = {-.5, -.5, -.5, 1.5, .3, .5},
  60. },
  61. collision_box = {
  62. type = 'fixed',
  63. fixed = {-.5, -.5, -.5, 1.5, .3, .5},
  64. },
  65. groups = {oddly_breakable_by_hand = 1, choppy=3},
  66. after_place_node = function(pos, placer, itemstack)
  67. if not epic.space_to_side(pos) then
  68. minetest.remove_node(pos)
  69. return itemstack
  70. else
  71. local meta = minetest.get_meta(pos)
  72. meta:set_string('infotext', 'Sewing Station (locked)')
  73. end
  74. end,
  75. after_dig_node = function(pos, oldnode, oldmetadata, digger)
  76. epic.remove_side_node(pos, oldnode)
  77. end,
  78. on_rotate = function(pos, node)
  79. return false
  80. end,
  81. }
  82. for k, v in pairs(sewing_locked_functions) do
  83. sewing_locked_def[k] = v
  84. end
  85. minetest.register_node('stations:sewing_locked', sewing_locked_def)
  86. unified_inventory.register_craft_type("sewing", {
  87. description = "Sewing Station",
  88. icon = 'stations_sewing_icon.png',
  89. width = 4,
  90. height = 2,
  91. uses_crafting_grid = false
  92. })