init.lua 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. local board_parts = {
  2. {"1","[colorize:red:200","mys_n_l_1.png",""},
  3. {"2","[colorize:blue:200","mys_n_l_2.png",""},
  4. {"3","[colorize:yellow:200","mys_n_l_3.png","mys_n_l_ladbot.png"},
  5. {"4","[colorize:green:200","mys_n_l_4.png",""},
  6. {"5","[colorize:red:200","mys_n_l_5.png",""},
  7. {"6","[colorize:blue:200","mys_n_l_6.png",""},
  8. {"7","[colorize:yellow:200","mys_n_l_7.png",""},
  9. {"8","[colorize:green:200","mys_n_l_8.png",""},
  10. {"9","[colorize:red:200","mys_n_l_9.png",""},
  11. {"10","[colorize:blue:200","mys_n_l_1.png^mys_n_l_10.png",""},
  12. {"11","[colorize:yellow:200","mys_n_l_1.png^mys_n_l_11.png",""},
  13. {"12","[colorize:green:200","mys_n_l_1.png^mys_n_l_12.png",""},
  14. {"13","[colorize:red:200","mys_n_l_1.png^mys_n_l_13.png","mys_n_l_stail.png"},
  15. {"14","[colorize:blue:200","mys_n_l_1.png^mys_n_l_14.png",""},
  16. {"15","[colorize:yellow:200","mys_n_l_1.png^mys_n_l_15.png",""},
  17. {"16","[colorize:green:200","mys_n_l_1.png^mys_n_l_16.png",""},
  18. {"17","[colorize:red:200","mys_n_l_1.png^mys_n_l_17.png",""},
  19. {"18","[colorize:blue:200","mys_n_l_1.png^mys_n_l_18.png","mys_n_l_ladtop.png"},
  20. {"19","[colorize:yellow:200","mys_n_l_1.png^mys_n_l_19.png",""},
  21. {"20","[colorize:green:200","mys_n_l_2.png^mys_n_l_10.png",""},
  22. {"21","[colorize:red:200","mys_n_l_2.png^mys_n_l_11.png",""},
  23. {"22","[colorize:blue:200","mys_n_l_2.png^mys_n_l_12.png","mys_n_l_stail.png"},
  24. {"23","[colorize:yellow:200","mys_n_l_2.png^mys_n_l_13.png",""},
  25. {"24","[colorize:green:200","mys_n_l_2.png^mys_n_l_14.png",""},
  26. {"25","[colorize:red:200","mys_n_l_2.png^mys_n_l_15.png",""},
  27. {"26","[colorize:blue:200","mys_n_l_2.png^mys_n_l_16.png","mys_n_l_ladbot.png"},
  28. {"27","[colorize:yellow:200","mys_n_l_2.png^mys_n_l_17.png",""},
  29. {"28","[colorize:green:200","mys_n_l_2.png^mys_n_l_18.png","mys_n_l_sturn.png^[transformR180"},
  30. {"29","[colorize:red:200","mys_n_l_2.png^mys_n_l_19.png","mys_n_l_sturn.png"},
  31. {"30","[colorize:blue:200","mys_n_l_3.png^mys_n_l_10.png",""},
  32. {"31","[colorize:red:200","mys_n_l_3.png^mys_n_l_11.png",""},
  33. {"32","[colorize:blue:200","mys_n_l_3.png^mys_n_l_12.png","mys_n_l_smid.png"},
  34. {"33","[colorize:yellow:200","mys_n_l_3.png^mys_n_l_13.png",""},
  35. {"34","[colorize:green:200","mys_n_l_3.png^mys_n_l_14.png",""},
  36. {"35","[colorize:red:200","mys_n_l_3.png^mys_n_l_15.png","mys_n_l_ladmid.png"},
  37. {"36","[colorize:blue:200","mys_n_l_3.png^mys_n_l_16.png",""},
  38. {"37","[colorize:yellow:200","mys_n_l_3.png^mys_n_l_17.png",""},
  39. {"38","[colorize:green:200","mys_n_l_3.png^mys_n_l_18.png","mys_n_l_sturn.png"},
  40. {"39","[colorize:red:200","mys_n_l_3.png^mys_n_l_19.png","mys_n_l_sturn.png^[transformR180"},
  41. {"40","[colorize:blue:200","mys_n_l_4.png^mys_n_l_10.png",""},
  42. {"41","[colorize:red:200","mys_n_l_4.png^mys_n_l_11.png","mys_n_l_ladbot.png"},
  43. {"42","[colorize:blue:200","mys_n_l_4.png^mys_n_l_12.png",""},
  44. {"43","[colorize:yellow:200","mys_n_l_4.png^mys_n_l_13.png","mys_n_l_sturn.png^[transformR180"},
  45. {"44","[colorize:green:200","mys_n_l_4.png^mys_n_l_14.png","mys_n_l_sturn.png"},
  46. {"45","[colorize:red:200","mys_n_l_4.png^mys_n_l_15.png",""},
  47. {"46","[colorize:blue:200","mys_n_l_4.png^mys_n_l_16.png","mys_n_l_ladtop.png"},
  48. {"47","[colorize:yellow:200","mys_n_l_4.png^mys_n_l_17.png",""},
  49. {"48","[colorize:green:200","mys_n_l_4.png^mys_n_l_18.png",""},
  50. {"49","[colorize:red:200","mys_n_l_4.png^mys_n_l_19.png","mys_n_l_shead.png"},
  51. {"50","[colorize:blue:200","mys_n_l_5.png^mys_n_l_10.png",""},
  52. {"51","[colorize:red:200","mys_n_l_5.png^mys_n_l_11.png",""},
  53. {"52","[colorize:blue:200","mys_n_l_5.png^mys_n_l_12.png",""},
  54. {"53","[colorize:yellow:200","mys_n_l_5.png^mys_n_l_13.png",""},
  55. {"54","[colorize:green:200","mys_n_l_5.png^mys_n_l_14.png","mys_n_l_ladbot.png"},
  56. {"55","[colorize:red:200","mys_n_l_5.png^mys_n_l_15.png",""},
  57. {"56","[colorize:blue:200","mys_n_l_5.png^mys_n_l_16.png",""},
  58. {"57","[colorize:yellow:200","mys_n_l_5.png^mys_n_l_17.png","mys_n_l_smid.png"},
  59. {"58","[colorize:green:200","mys_n_l_5.png^mys_n_l_18.png",""},
  60. {"59","[colorize:red:200","mys_n_l_5.png^mys_n_l_19.png",""},
  61. {"60","[colorize:blue:200","mys_n_l_6.png^mys_n_l_10.png","mys_n_l_ladmid.png"},
  62. {"61","[colorize:red:200","mys_n_l_6.png^mys_n_l_11.png","mys_n_l_ladtop.png"},
  63. {"62","[colorize:blue:200","mys_n_l_6.png^mys_n_l_12.png",""},
  64. {"63","[colorize:yellow:200","mys_n_l_6.png^mys_n_l_13.png",""},
  65. {"64","[colorize:green:200","mys_n_l_6.png^mys_n_l_14.png","mys_n_l_shead.png"},
  66. {"65","[colorize:red:200","mys_n_l_6.png^mys_n_l_15.png",""},
  67. {"66","[colorize:blue:200","mys_n_l_6.png^mys_n_l_16.png",""},
  68. {"67","[colorize:yellow:200","mys_n_l_6.png^mys_n_l_17.png","mys_n_l_ladmid.png"},
  69. {"68","[colorize:green:200","mys_n_l_6.png^mys_n_l_18.png",""},
  70. {"69","[colorize:red:200","mys_n_l_6.png^mys_n_l_19.png","mys_n_l_stail.png"},
  71. {"70","[colorize:blue:200","mys_n_l_7.png^mys_n_l_10.png",""},
  72. {"71","[colorize:red:200","mys_n_l_7.png^mys_n_l_11.png","mys_n_l_sturn.png"},
  73. {"72","[colorize:blue:200","mys_n_l_7.png^mys_n_l_12.png","mys_n_l_sturn.png^[transformR180"},
  74. {"73","[colorize:yellow:200","mys_n_l_7.png^mys_n_l_13.png",""},
  75. {"74","[colorize:green:200","mys_n_l_7.png^mys_n_l_14.png","mys_n_l_ladmid.png"},
  76. {"75","[colorize:red:200","mys_n_l_7.png^mys_n_l_15.png",""},
  77. {"76","[colorize:blue:200","mys_n_l_7.png^mys_n_l_16.png",""},
  78. {"77","[colorize:yellow:200","mys_n_l_7.png^mys_n_l_17.png",""},
  79. {"78","[colorize:green:200","mys_n_l_7.png^mys_n_l_18.png",""},
  80. {"79","[colorize:red:200","mys_n_l_7.png^mys_n_l_19.png",""},
  81. {"80","[colorize:blue:200","mys_n_l_8.png^mys_n_l_10.png",""},
  82. {"81","[colorize:red:200","mys_n_l_8.png^mys_n_l_11.png",""},
  83. {"82","[colorize:blue:200","mys_n_l_8.png^mys_n_l_12.png",""},
  84. {"83","[colorize:yellow:200","mys_n_l_8.png^mys_n_l_13.png","mys_n_l_ladbot.png"},
  85. {"84","[colorize:green:200","mys_n_l_8.png^mys_n_l_14.png",""},
  86. {"85","[colorize:red:200","mys_n_l_8.png^mys_n_l_15.png","mys_n_l_stail.png^[transformR270"},
  87. {"86","[colorize:blue:200","mys_n_l_8.png^mys_n_l_16.png","mys_n_l_sturn.png"},
  88. {"87","[colorize:yellow:200","mys_n_l_8.png^mys_n_l_17.png","mys_n_l_ladtop.png"},
  89. {"88","[colorize:green:200","mys_n_l_8.png^mys_n_l_18.png",""},
  90. {"89","[colorize:red:200","mys_n_l_8.png^mys_n_l_19.png",""},
  91. {"90","[colorize:blue:200","mys_n_l_9.png^mys_n_l_10.png","mys_n_l_shead.png"},
  92. {"91","[colorize:red:200","mys_n_l_9.png^mys_n_l_11.png",""},
  93. {"92","[colorize:blue:200","mys_n_l_9.png^mys_n_l_12.png",""},
  94. {"93","[colorize:yellow:200","mys_n_l_9.png^mys_n_l_13.png",""},
  95. {"94","[colorize:green:200","mys_n_l_9.png^mys_n_l_14.png",""},
  96. {"95","[colorize:red:200","mys_n_l_9.png^mys_n_l_15.png","mys_n_l_shead.png"},
  97. {"96","[colorize:blue:200","mys_n_l_9.png^mys_n_l_16.png",""},
  98. {"97","[colorize:yellow:200","mys_n_l_9.png^mys_n_l_17.png",""},
  99. {"98","[colorize:green:200","mys_n_l_9.png^mys_n_l_18.png","mys_n_l_ladtop.png"},
  100. {"99","[colorize:red:200","mys_n_l_9.png^mys_n_l_19.png",""},
  101. {"100","[colorize:blue:200","mys_n_l_1.png^mys_n_l_10.png^mys_n_l_100.png",""},
  102. }
  103. for i in ipairs(board_parts) do
  104. local num = board_parts[i][1]
  105. local col = board_parts[i][2]
  106. local number = board_parts[i][3]
  107. local sorl = board_parts[i][4]
  108. minetest.register_node("mys_n_l:board_block"..num,{
  109. description = "Block "..num,
  110. tiles = {
  111. "mys_n_l_base.png^"..col.."^mys_n_l_edge.png^"..sorl.."^"..number,
  112. "mys_n_l_base.png^"..col.."mys_n_l_edge.png",
  113. "mys_n_l_base.png^"..col.."mys_n_l_edge.png",
  114. "mys_n_l_base.png^"..col.."mys_n_l_edge.png",
  115. "mys_n_l_base.png^"..col.."mys_n_l_edge.png",
  116. "mys_n_l_base.png^"..col.."mys_n_l_edge.png"
  117. },
  118. drawtype = "normal",
  119. paramtype = "light",
  120. paramtype2 = "facedir",
  121. groups = {cracky=1,not_in_creative_inventory = 1},
  122. })
  123. end
  124. minetest.register_node("mys_n_l:placer",{
  125. description = "Snakes and Ladders",
  126. inventory_image = "mys_n_l_inv.png",
  127. wield_image = "mys_n_l_inv.png",
  128. tiles = {
  129. "mys_n_l_base.png^mys_n_l_edge.png^mys_n_l_ladmid.png"
  130. },
  131. drawtype = "normal",
  132. paramtype = "light",
  133. paramtype2 = "facedir",
  134. groups = {cracky=3},
  135. on_rightclick = function(pos, node, player, itemstack, pointed_thing)
  136. local schem = minetest.get_modpath("mys_n_l").."/schems/mys_n_l.mts"
  137. minetest.place_schematic({x=pos.x,y=pos.y,z=pos.z},schem,0, "air", true)
  138. end,
  139. after_place_node = function(pos, placer, itemstack, pointed_thing)
  140. if placer and minetest.check_player_privs(placer:get_player_name(), {myboardgames = true}) then
  141. else
  142. minetest.remove_node(pos)
  143. return true
  144. end
  145. end,
  146. })
  147. local pieces = {
  148. {"Red","red","^[colorize:red:120"},
  149. {"Green","green","^[colorize:green:120"},
  150. {"Yellow","yellow","^[colorize:yellow:120"},
  151. {"Blue","blue","^[colorize:blue:120"},
  152. }
  153. for i in ipairs (pieces) do
  154. local desc = pieces[i][1]
  155. local item = pieces[i][2]
  156. local col = pieces[i][3]
  157. minetest.register_node("mys_n_l:"..item,{
  158. description = desc.." Player",
  159. tiles = {"default_gravel.png"..col},
  160. drawtype = "nodebox",
  161. paramtype = "light",
  162. light_source = 11,
  163. groups = {cracky = 1, dig_immediate=3, not_in_creative_inventory=1},
  164. node_box = {
  165. type = "fixed",
  166. fixed = {
  167. {-0.3125, -0.5, -0.3125, 0.3125, -0.3125, 0.3125},
  168. {-0.125, -0.3125, -0.125, 0.125, 0.125, 0.125},
  169. {-0.1875, 0.125, -0.1875, 0.1875, 0.3125, 0.1875},
  170. }
  171. }
  172. })
  173. end
  174. dofile(minetest.get_modpath("mys_n_l").."/dice.lua")