init.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. local S = minetest.get_translator("bedrock2")
  2. local bedrock = {}
  3. bedrock.layer = -30912 -- determined as appropriate by experiment
  4. bedrock.node = {name = "bedrock2:bedrock"}
  5. local depth = tonumber(minetest.settings:get("bedrock2_y"))
  6. if depth ~= nil then
  7. bedrock.layer = depth
  8. end
  9. minetest.register_on_generated(function(minp, maxp)
  10. if maxp.y >= bedrock.layer and minp.y <= bedrock.layer then
  11. local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
  12. local data = vm:get_data()
  13. local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
  14. local c_bedrock = minetest.get_content_id("bedrock2:bedrock")
  15. for x = minp.x, maxp.x do
  16. for z = minp.z, maxp.z do
  17. local p_pos = area:index(x, bedrock.layer, z)
  18. data[p_pos] = c_bedrock
  19. end
  20. end
  21. vm:set_data(data)
  22. vm:calc_lighting()
  23. vm:update_liquids()
  24. vm:write_to_map()
  25. end
  26. end)
  27. minetest.register_on_generated(function(minp, maxp)
  28. if maxp.y >= 8000 and minp.y <= 8000 then
  29. local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
  30. local data = vm:get_data()
  31. local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
  32. local c_bedrock = minetest.get_content_id("bedrock2:bedrock")
  33. for x = minp.x, maxp.x do
  34. for z = minp.z, maxp.z do
  35. local p_pos = area:index(x, 8000, z)
  36. data[p_pos] = c_bedrock
  37. end
  38. end
  39. vm:set_data(data)
  40. vm:calc_lighting()
  41. vm:update_liquids()
  42. vm:write_to_map()
  43. end
  44. end)
  45. minetest.register_node("bedrock2:bedrock", {
  46. description = S("Bedrock"),
  47. _doc_items_longdesc = S("Bedrock is a very hard block. It cannot be mined, altered, destroyed or moved by any means. It appears at the bottom of the world in a flat layer."),
  48. tiles = {"bedrock2_bedrock.png"},
  49. groups = {immortal=1, not_in_creative_inventory=1, },
  50. sounds = { footstep = { name = "bedrock2_step", gain = 1 } },
  51. is_ground_content = false,
  52. on_blast = function() end,
  53. on_destruct = function () end,
  54. can_dig = function() return false end,
  55. diggable = false,
  56. drop = "",
  57. })