lualandmg/functions.lua
SmallJoker 1e99bef696 Rename to LuaLandMG
Use minetest.generate_ores instead of own functions
Add cactus, dry shrub and grass decorations automatically
Nicer looking borders for lakes when going into the desert
Higher jitter/spread of the temperature noise
2017-09-22 13:31:22 +02:00

85 lines
2.2 KiB
Lua

lualandmg.registered_trees = {}
lualandmg.registered_biomes = {}
lualandmg.registered_decorations = {}
minetest.after(1, function()
table.sort(lualandmg.registered_biomes, function(a, b)
return a.temperature_min > b.temperature_min
end)
minetest.log("action", "LuaLandMG loaded with "..
#minetest.registered_ores.." ores, "..
#lualandmg.registered_trees.." trees, "..
#lualandmg.registered_biomes.." biomes and "..
#lualandmg.registered_decorations.." decorations")
end)
function vector.floor(v)
return {
x = math.floor(v.x),
y = math.floor(v.y),
z = math.floor(v.z)
}
end
function lualandmg.get_content_id(t)
local n = 0
if type(t) == "table" then
n = {}
for i, v in ipairs(t) do
n[i] = minetest.get_content_id(v)
end
else
n = minetest.get_content_id(t)
end
return n
end
function lualandmg.register_tree(def)
def.node_under = lualandmg.get_content_id(def.node_under)
table.insert(lualandmg.registered_trees, def)
end
function lualandmg.register_biome(def)
def.stone = def.stone or "default:stone"
def.middle = def.middle or "default:dirt"
def.top = def.top or "default:dirt_with_grass"
def.stone = minetest.get_content_id(def.stone)
def.middle = minetest.get_content_id(def.middle)
def.top = minetest.get_content_id(def.top)
def.cover = def.cover and minetest.get_content_id(def.cover)
table.insert(lualandmg.registered_biomes, def)
end
function lualandmg.register_decoration(def)
def.name = minetest.get_content_id(def.name)
def.node_under = lualandmg.get_content_id(def.node_under)
table.insert(lualandmg.registered_decorations, def)
end
function lualandmg.is_valid_ground(t, c)
if type(t) == "table" then
for i, v in ipairs(t) do
if v == c then
return true
end
end
else
return t == c
end
return false
end
-- Perhaps for latter use
function lualandmg.adapt_biomes()
lualandmg.registered_biomes = table.copy(minetest.registered_biomes)
for i, v in pairs(lualandmg.registered_biomes) do
v.node_dust = minetest.get_content_id(v.node_dust)
v.node_top = minetest.get_content_id(v.node_top)
v.node_filler = minetest.get_content_id(v.node_filler)
v.node_stone = minetest.get_content_id(v.node_stone)
end
end