|
|
|
@ -153,58 +153,60 @@ function translate_biome_defs(def, treename, index)
|
|
|
|
|
return deco_def
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.beech_biome, "beech"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.apple_tree_biome, "apple_tree"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.oak_biome, "oak"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.sequoia_biome, "sequoia"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.palm_biome, "palm"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome, "date_palm", 1))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome_2, "date_palm", 2))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.cedar_biome, "cedar"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.rubber_tree_biome, "rubber_tree"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.willow_biome, "willow"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.birch_biome, "birch"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.spruce_biome, "spruce"))
|
|
|
|
|
if minetest.get_modpath("default") then
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.jungletree_biome, "jungletree"))
|
|
|
|
|
end
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome, "fir", 1))
|
|
|
|
|
if minetest.get_modpath("snow") then
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome_snow, "fir", 2))
|
|
|
|
|
end
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome, "poplar", 1))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_2, "poplar", 2))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_3, "poplar", 3))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome, "poplar_small", 4))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome_2, "poplar_small", 5))
|
|
|
|
|
|
|
|
|
|
--[[
|
|
|
|
|
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
|
|
|
|
if other mods clear the registered decorations
|
|
|
|
|
]]
|
|
|
|
|
minetest.register_on_mods_loaded(function()
|
|
|
|
|
for k, v in pairs(deco_ids) do
|
|
|
|
|
deco_ids[k] = minetest.get_decoration_id(v)
|
|
|
|
|
if moretrees.spawn_enabled then
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.beech_biome, "beech"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.apple_tree_biome, "apple_tree"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.oak_biome, "oak"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.sequoia_biome, "sequoia"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.palm_biome, "palm"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome, "date_palm", 1))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.date_palm_biome_2, "date_palm", 2))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.cedar_biome, "cedar"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.rubber_tree_biome, "rubber_tree"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.willow_biome, "willow"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.birch_biome, "birch"))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.spruce_biome, "spruce"))
|
|
|
|
|
if minetest.get_modpath("default") then
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.jungletree_biome, "jungletree"))
|
|
|
|
|
end
|
|
|
|
|
minetest.set_gen_notify("decoration", deco_ids)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
|
|
|
local g = minetest.get_mapgen_object("gennotify")
|
|
|
|
|
local locations = {}
|
|
|
|
|
for _, id in pairs(deco_ids) do
|
|
|
|
|
local deco_locations = g["decoration#" .. id] or {}
|
|
|
|
|
for _, pos in pairs(deco_locations) do
|
|
|
|
|
locations[#locations+1] = pos
|
|
|
|
|
end
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome, "fir", 1))
|
|
|
|
|
if minetest.get_modpath("snow") then
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.fir_biome_snow, "fir", 2))
|
|
|
|
|
end
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome, "poplar", 1))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_2, "poplar", 2))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_biome_3, "poplar", 3))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome, "poplar_small", 4))
|
|
|
|
|
minetest.register_decoration(translate_biome_defs(moretrees.poplar_small_biome_2, "poplar_small", 5))
|
|
|
|
|
|
|
|
|
|
if #locations == 0 then return end
|
|
|
|
|
for _, pos in ipairs(locations) do
|
|
|
|
|
local timer = minetest.get_node_timer({x=pos.x, y=pos.y+1, z=pos.z})
|
|
|
|
|
timer:start(math.random(2,10))
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
--[[
|
|
|
|
|
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
|
|
|
|
if other mods clear the registered decorations
|
|
|
|
|
]]
|
|
|
|
|
minetest.register_on_mods_loaded(function()
|
|
|
|
|
for k, v in pairs(deco_ids) do
|
|
|
|
|
deco_ids[k] = minetest.get_decoration_id(v)
|
|
|
|
|
end
|
|
|
|
|
minetest.set_gen_notify("decoration", deco_ids)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
|
|
|
local g = minetest.get_mapgen_object("gennotify")
|
|
|
|
|
local locations = {}
|
|
|
|
|
for _, id in pairs(deco_ids) do
|
|
|
|
|
local deco_locations = g["decoration#" .. id] or {}
|
|
|
|
|
for _, pos in pairs(deco_locations) do
|
|
|
|
|
locations[#locations+1] = pos
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if #locations == 0 then return end
|
|
|
|
|
for _, pos in ipairs(locations) do
|
|
|
|
|
local timer = minetest.get_node_timer({x=pos.x, y=pos.y+1, z=pos.z})
|
|
|
|
|
timer:start(math.random(2,10))
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Code to spawn a birch tree
|
|
|
|
|
|
|
|
|
|