Skip to content

Instantly share code, notes, and snippets.

@davisonio
Last active March 9, 2022 00:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davisonio/6aee2bae22944a8897b3 to your computer and use it in GitHub Desktop.
Save davisonio/6aee2bae22944a8897b3 to your computer and use it in GitHub Desktop.
A random mapgen for minetest
local count = 0
local c_air = minetest.get_content_id("air")
local function count_nodes()
for i,_ in pairs(minetest.registered_nodes) do
count = count+1
end
end
minetest.register_on_generated(function(minp, maxp, seed)
if count == 0 then
count_nodes()
end
local pr = PseudoRandom(seed+68)
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local data = vm:get_data()
local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax}
for i in area:iterp(minp, maxp) do
if data[i] ~= c_air then
data[i] = pr:next(1, count)
end
end
vm:set_data(data)
vm:write_to_map()
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment