Advertisement
Guest User

Untitled

a guest
Jan 7th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.92 KB | None | 0 0
  1. minetest.register_node("testing:panel_sand_bottom", {
  2. description = description,
  3. drawtype = "nodebox",
  4. tiles = {"default_sand.png"},
  5. paramtype = "light",
  6. paramtype2 = "facedir",
  7. pointable = true,
  8. buildable_to = true,
  9. is_ground_content = false,
  10. sunlight_propagates = sunlight,
  11. groups = {dig_immediate=3, crumbly=3, falling_node=1, sand=1},
  12. sounds = default.node_sound_sand_defaults(),
  13. drop = "",
  14. node_box = {
  15. type = "fixed",
  16. fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
  17. },
  18. })
  19.  
  20. minetest.register_abm(
  21. {nodenames = {"default:sand"},
  22. interval = 2,
  23. chance = 1,
  24. action = function(pos)
  25. local x1 = minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z})
  26. local x1b = minetest.get_node({x = pos.x + 1, y = pos.y - 1, z = pos.z})
  27. local x1bd = minetest.registered_nodes[x1b.name]
  28. local x2 = minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z})
  29. local x2b = minetest.get_node({x = pos.x - 1, y = pos.y - 1, z = pos.z})
  30. local x2bd = minetest.registered_nodes[x2b.name]
  31. local z1 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1})
  32. local z1b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z + 1})
  33. local z1bd = minetest.registered_nodes[z1b.name]
  34. local z2 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1})
  35. local z2b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z - 1})
  36. local z2bd = minetest.registered_nodes[z2b.name]
  37.  
  38. local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
  39. if x1.name == "air"
  40. and below.name ~= "air"
  41. and x1bd.drawtype == "normal"
  42. and x1b.name ~= "air"
  43. then
  44. print(dump(nodef))
  45. minetest.set_node({x = pos.x + 1, y = pos.y, z = pos.z}, {name = "testing:panel_sand_bottom",param2 = 3})
  46. end
  47. if x2.name == "air"
  48. and below.name ~= "air"
  49. and x2bd.drawtype == "normal"
  50. and x2b.name ~= "air"
  51. then
  52. minetest.set_node({x = pos.x - 1, y = pos.y, z = pos.z}, {name = "testing:panel_sand_bottom",param2 = 1})
  53. end
  54.  
  55. if z1.name == "air"
  56. and below.name ~= "air"
  57. and z1bd.drawtype == "normal"
  58. and z1b.name ~= "air"
  59. then
  60. minetest.set_node({x = pos.x, y = pos.y, z = pos.z + 1}, {name = "testing:panel_sand_bottom",param2 = 2})
  61. end
  62. if z2.name == "air"
  63. and below.name ~= "air"
  64. and z2bd.drawtype == "normal"
  65. and z2b.name ~= "air"
  66. then
  67. minetest.set_node({x = pos.x, y = pos.y, z = pos.z - 1}, {name = "testing:panel_sand_bottom",param2 = 0})
  68. end
  69. end
  70. })
  71.  
  72. minetest.register_node("testing:panel_dirt_bottom", {
  73. description = description,
  74. drawtype = "nodebox",
  75. tiles = {"default_dirt.png"},
  76. paramtype = "light",
  77. paramtype2 = "facedir",
  78. pointable = true,
  79. buildable_to = true,
  80. is_ground_content = false,
  81. sunlight_propagates = sunlight,
  82. groups = {dig_immediate=3, crumbly=3, falling_node=1, dirt=1},
  83. sounds = default.node_sound_dirt_defaults(),
  84. drop = "",
  85. node_box = {
  86. type = "fixed",
  87. fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
  88. },
  89. })
  90.  
  91. minetest.register_abm(
  92. {nodenames = {"default:dirt"},
  93. interval = 2,
  94. chance = 1,
  95. action = function(pos)
  96. local x1 = minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z})
  97. local x1b = minetest.get_node({x = pos.x + 1, y = pos.y - 1, z = pos.z})
  98. local x1bd = minetest.registered_nodes[x1b.name]
  99. local x2 = minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z})
  100. local x2b = minetest.get_node({x = pos.x - 1, y = pos.y - 1, z = pos.z})
  101. local x2bd = minetest.registered_nodes[x2b.name]
  102. local z1 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1})
  103. local z1b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z + 1})
  104. local z1bd = minetest.registered_nodes[z1b.name]
  105. local z2 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1})
  106. local z2b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z - 1})
  107. local z2bd = minetest.registered_nodes[z2b.name]
  108.  
  109. local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
  110. if x1.name == "air"
  111. and below.name ~= "air"
  112. and x1bd.drawtype == "normal"
  113. and x1b.name ~= "air"
  114. then
  115. print(dump(nodef))
  116. minetest.set_node({x = pos.x + 1, y = pos.y, z = pos.z}, {name = "testing:panel_dirt_bottom",param2 = 3})
  117. end
  118. if x2.name == "air"
  119. and below.name ~= "air"
  120. and x2bd.drawtype == "normal"
  121. and x2b.name ~= "air"
  122. then
  123. minetest.set_node({x = pos.x - 1, y = pos.y, z = pos.z}, {name = "testing:panel_dirt_bottom",param2 = 1})
  124. end
  125.  
  126. if z1.name == "air"
  127. and below.name ~= "air"
  128. and z1bd.drawtype == "normal"
  129. and z1b.name ~= "air"
  130. then
  131. minetest.set_node({x = pos.x, y = pos.y, z = pos.z + 1}, {name = "testing:panel_dirt_bottom",param2 = 2})
  132. end
  133. if z2.name == "air"
  134. and below.name ~= "air"
  135. and z2bd.drawtype == "normal"
  136. and z2b.name ~= "air"
  137. then
  138. minetest.set_node({x = pos.x, y = pos.y, z = pos.z - 1}, {name = "testing:panel_dirt_bottom",param2 = 0})
  139. end
  140. end
  141. })
  142.  
  143. minetest.register_node("testing:panel_dirt_with_grass_bottom", {
  144. description = description,
  145. drawtype = "nodebox",
  146. tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
  147. paramtype = "light",
  148. paramtype2 = "facedir",
  149. pointable = true,
  150. buildable_to = true,
  151. is_ground_content = false,
  152. sunlight_propagates = sunlight,
  153. groups = {dig_immediate=3, crumbly=3, falling_node=1, dirt_with_grass=1},
  154. sounds = default.node_sound_dirt_defaults(),
  155. drop = "",
  156. node_box = {
  157. type = "fixed",
  158. fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
  159. },
  160. })
  161.  
  162. minetest.register_abm(
  163. {nodenames = {"default:dirt_with_grass"},
  164. interval = 2,
  165. chance = 1,
  166. action = function(pos)
  167. local x1 = minetest.get_node({x = pos.x + 1, y = pos.y, z = pos.z})
  168. local x1b = minetest.get_node({x = pos.x + 1, y = pos.y - 1, z = pos.z})
  169. local x1bd = minetest.registered_nodes[x1b.name]
  170. local x2 = minetest.get_node({x = pos.x - 1, y = pos.y, z = pos.z})
  171. local x2b = minetest.get_node({x = pos.x - 1, y = pos.y - 1, z = pos.z})
  172. local x2bd = minetest.registered_nodes[x2b.name]
  173. local z1 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z + 1})
  174. local z1b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z + 1})
  175. local z1bd = minetest.registered_nodes[z1b.name]
  176. local z2 = minetest.get_node({x = pos.x, y = pos.y, z = pos.z - 1})
  177. local z2b = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z - 1})
  178. local z2bd = minetest.registered_nodes[z2b.name]
  179.  
  180. local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
  181. if x1.name == "air"
  182. and below.name ~= "air"
  183. and x1bd.drawtype == "normal"
  184. and x1b.name ~= "air"
  185. then
  186. print(dump(nodef))
  187. minetest.set_node({x = pos.x + 1, y = pos.y, z = pos.z}, {name = "testing:panel_dirt_with_grass_bottom",param2 = 3})
  188. end
  189. if x2.name == "air"
  190. and below.name ~= "air"
  191. and x2bd.drawtype == "normal"
  192. and x2b.name ~= "air"
  193. then
  194. minetest.set_node({x = pos.x - 1, y = pos.y, z = pos.z}, {name = "testing:panel_dirt_with_grass_bottom",param2 = 1})
  195. end
  196.  
  197. if z1.name == "air"
  198. and below.name ~= "air"
  199. and z1bd.drawtype == "normal"
  200. and z1b.name ~= "air"
  201. then
  202. minetest.set_node({x = pos.x, y = pos.y, z = pos.z + 1}, {name = "testing:panel_dirt_with_grass_bottom",param2 = 2})
  203. end
  204. if z2.name == "air"
  205. and below.name ~= "air"
  206. and z2bd.drawtype == "normal"
  207. and z2b.name ~= "air"
  208. then
  209. minetest.set_node({x = pos.x, y = pos.y, z = pos.z - 1}, {name = "testing:panel_dirt_with_grass_bottom",param2 = 0})
  210. end
  211. end
  212. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement