init.lua 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. local board = {
  2. {"cross","Cross"},
  3. {"crossdot","Cross Dot"},
  4. {"bordert","Border T"},
  5. {"borderc","Border C"},
  6. {"blank","Blank"},
  7. }
  8. for i in ipairs(board) do
  9. local itm = board[i][1]
  10. local des = board[i][2]
  11. minetest.register_node("mygomoku:"..itm,{
  12. description = des,
  13. tiles = {
  14. "mygomoku_"..itm..".png",
  15. "mygomoku_blank.png",
  16. "mygomoku_blank.png",
  17. "mygomoku_blank.png",
  18. "mygomoku_blank.png",
  19. "mygomoku_blank.png",
  20. },
  21. paramtype2 = "facedir",
  22. drop = "",
  23. light_source = 5,
  24. groups = {cracky=3, not_in_creative_inventory = 1},
  25. })
  26. end
  27. minetest.register_node("mygomoku:placer",{
  28. description = "Gomoku",
  29. inventory_image = "mygomoku_inv.png",
  30. wield_image = "mygomoku_inv.png",
  31. tiles = {
  32. "mygomoku_restart.png",
  33. "mygomoku_blank.png",
  34. "mygomoku_blank.png",
  35. "mygomoku_blank.png",
  36. "mygomoku_blank.png",
  37. "mygomoku_blank.png",
  38. },
  39. paramtype2 = "facedir",
  40. groups = {cracky=3},
  41. light_source = 5,
  42. on_rightclick = function(pos, node, player, itemstack, pointed_thing)
  43. local schem = minetest.get_modpath("mygomoku").."/schems/mygomoku.mts"
  44. minetest.place_schematic(pos,schem,0, "air", true)
  45. end,
  46. after_place_node = function(pos, placer, itemstack, pointed_thing)
  47. if placer and minetest.check_player_privs(placer:get_player_name(), {myboardgames = true}) then
  48. else
  49. minetest.remove_node(pos)
  50. return true
  51. end
  52. end,
  53. })
  54. minetest.register_alias("mygomoku:stone_brown","mygomoku:stone_black")
  55. minetest.register_node("mygomoku:stone_black", {
  56. description = "Black Go Stone",
  57. tiles = {
  58. "default_obsidian.png^[colorize:#000:100",
  59. },
  60. drawtype = "nodebox",
  61. paramtype = "light",
  62. drop = "",
  63. groups = {dig_immediate = 3,not_in_creative_inventory = 1},
  64. node_box = {
  65. type = "fixed",
  66. fixed = {
  67. {-0.45, -0.425, -0.225, 0.45, -0.35, 0.225},
  68. {-0.225, -0.425, -0.45, 0.225,-0.35, 0.45},
  69. {-0.3375, -0.425, -0.3375, 0.3375, -0.35, 0.3375},
  70. {-0.225, -0.5, -0.225, 0.225, -0.275, 0.225},
  71. {-0.1125,-0.5, -0.3375, 0.1125, -0.275, 0.3375},
  72. {-0.3375,-0.5, -0.1125, 0.3375, -0.275, 0.1125},
  73. }
  74. },
  75. buildable_to = true,
  76. light_source = 8,
  77. })
  78. minetest.register_node("mygomoku:stone_white", {
  79. description = "White Go Stone",
  80. tiles = {
  81. "default_obsidian.png^[colorize:#fff:175",
  82. },
  83. drawtype = "nodebox",
  84. paramtype = "light",
  85. drop = "",
  86. groups = {dig_immediate = 3,not_in_creative_inventory = 1},
  87. node_box = {
  88. type = "fixed",
  89. fixed = {
  90. {-0.45, -0.425, -0.225, 0.45, -0.35, 0.225},
  91. {-0.225, -0.425, -0.45, 0.225,-0.35, 0.45},
  92. {-0.3375, -0.425, -0.3375, 0.3375, -0.35, 0.3375},
  93. {-0.225, -0.5, -0.225, 0.225, -0.275, 0.225},
  94. {-0.1125,-0.5, -0.3375, 0.1125, -0.275, 0.3375},
  95. {-0.3375,-0.5, -0.1125, 0.3375, -0.275, 0.1125},
  96. }
  97. },
  98. buildable_to = true,
  99. light_source = 8,
  100. })
  101. minetest.register_alias("mygomoku:stone_brown_rf","mygomoku:stone_black_rf")
  102. minetest.register_node("mygomoku:stone_black_rf", {
  103. description = "Black Go Stone rf",
  104. tiles = {
  105. "default_obsidian.png^[colorize:#000:100",
  106. },
  107. drawtype = "nodebox",
  108. paramtype = "light",
  109. drop = "mygomoku:stone_brown",
  110. groups = {dig_immediate = 3,not_in_creative_inventory = 1},
  111. node_box = {
  112. type = "fixed",
  113. fixed = {
  114. {-0.45, -0.5, -0.225, 0.45, 0, 0.225},
  115. {-0.225, -0.5, -0.45, 0.225,0, 0.45},
  116. {-0.3375, -0.5, -0.3375, 0.3375, 0, 0.3375},
  117. {-0.225, -0.5, -0.225, 0.225, 0.1375, 0.225},
  118. {-0.1125,-0.5, -0.3375, 0.1125, 0.1375, 0.3375},
  119. {-0.3375,-0.5, -0.1125, 0.3375, 0.1375, 0.1125},
  120. }
  121. },
  122. selection_box = {
  123. type = "fixed",
  124. fixed = {-0.45, -0.5, -0.45, 0.45, 0.1375, 0.45},
  125. },
  126. light_source = 5,
  127. after_destruct = function(pos, oldnode)
  128. minetest.set_node(pos,{name="mygomoku:stone_brown_rf",param2=oldnode.param2})
  129. end,
  130. })
  131. minetest.register_node("mygomoku:stone_white_rf", {
  132. description = "White Go Stone rf",
  133. tiles = {
  134. "default_obsidian.png^[colorize:#fff:175",
  135. },
  136. drawtype = "nodebox",
  137. paramtype = "light",
  138. drop = "mygomoku:stone_white",
  139. groups = {dig_immediate = 3,not_in_creative_inventory = 1},
  140. node_box = {
  141. type = "fixed",
  142. fixed = {
  143. {-0.45, -0.5, -0.225, 0.45, 0, 0.225},
  144. {-0.225, -0.5, -0.45, 0.225,0, 0.45},
  145. {-0.3375, -0.5, -0.3375, 0.3375, 0, 0.3375},
  146. {-0.225, -0.5, -0.225, 0.225, 0.1375, 0.225},
  147. {-0.1125,-0.5, -0.3375, 0.1125, 0.1375, 0.3375},
  148. {-0.3375,-0.5, -0.1125, 0.3375, 0.1375, 0.1125},
  149. }
  150. },
  151. selection_box = {
  152. type = "fixed",
  153. fixed = {-0.45, -0.5, -0.45, 0.45, 0.1375, 0.45},
  154. },
  155. light_source = 5,
  156. after_destruct = function(pos, oldnode)
  157. minetest.set_node(pos,{name="mygomoku:stone_white_rf",param2=oldnode.param2})
  158. end,
  159. })