Update init.lua
parent
2547fe7369
commit
d087f56714
43
init.lua
43
init.lua
|
@ -1,34 +1,37 @@
|
|||
randomizer = {}
|
||||
randomizer = {
|
||||
-- distinguish between nodes that can be replaced and nodes that CAN replace something
|
||||
-- some node drawtypes cause low fps (e.g. plantlikes)
|
||||
can_be_replaced = {},
|
||||
can_replace = {},
|
||||
}
|
||||
|
||||
local id = minetest.get_content_id
|
||||
|
||||
local function allowed_node(node, def)
|
||||
local allowed = node ~= "" and node ~= "air" and node ~= "ignore" and node ~= "unknown"
|
||||
and def and def.description and def.description ~= ""
|
||||
and not string.match(node, "stair") and not string.match(node, "slab")
|
||||
and not string.match(node, "fence") and not string.match(node, "bed")
|
||||
and not string.match(node, "door") and def.light_source == 0
|
||||
and def.groups.not_in_creative_inventory ~= 1
|
||||
and node ~= "mcl_core:bedrock" and node ~= "default:water_source"
|
||||
and node ~= "default:water_flowing" and node ~= "default:river_water_source"
|
||||
and node ~= "default:river_water_flowing" and node ~= "default:lava_source"
|
||||
and node ~= "default:lava_flowing" and node ~= "mcl_core:water_source"
|
||||
and node ~= "mcl_core:water_flowing" and node ~= "mcl_core:lava_source"
|
||||
and node ~= "mcl_core:lava_flowing" and node ~= "mcl_mobspawners:spawner"
|
||||
local function can_be_replaced(node, def)
|
||||
local allowed = node ~= "mcl_core:bedrock" and node ~= "air" and node ~= "mcl_mobspawners:spawner"
|
||||
and def.drawtype ~= "liquid" and def.drawtype ~= "flowingliquid"
|
||||
return allowed
|
||||
end
|
||||
|
||||
local function can_replace(node, def)
|
||||
local allowed = def.drawtype == "normal" and def.groups.not_in_creative_inventory ~= 1
|
||||
return allowed
|
||||
end
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
for node, def in pairs(minetest.registered_nodes) do
|
||||
if allowed_node(node, def) then
|
||||
table.insert(randomizer, node)
|
||||
if can_be_replaced(node, def) then
|
||||
table.insert(randomizer.can_be_replaced, node)
|
||||
end
|
||||
if can_replace(node, def) then
|
||||
table.insert(randomizer.can_replace, node)
|
||||
end
|
||||
end
|
||||
for _, node in pairs(randomizer) do
|
||||
for _, node in pairs(randomizer.can_be_replaced) do
|
||||
-- this is faster then check for all nodes in the randomizer list
|
||||
-- in a loop in the minetest.register_on_generated function
|
||||
minetest.override_item(node, {
|
||||
randomizer = randomizer[math.random(#randomizer)]
|
||||
randomizer = randomizer.can_replace[math.random(#randomizer.can_replace)]
|
||||
})
|
||||
end
|
||||
end)
|
||||
|
@ -37,8 +40,8 @@ local data = {}
|
|||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
|
||||
local area = VoxelArea:new{ MinEdge = emin, MaxEdge = emax }
|
||||
vm:get_data(data)
|
||||
local area = VoxelArea:new{ MinEdge = emin, MaxEdge = emax }
|
||||
vm:get_data(data)
|
||||
local data = vm:get_data()
|
||||
for z = minp.z, maxp.z do
|
||||
for y = minp.y, maxp.y do
|
||||
|
|
Loading…
Reference in New Issue