moved growing of realtest trees into trees_realtest.lua

master
Sokomine 2020-09-20 11:22:15 +02:00
parent 344e78d63c
commit 2cc9d3fee0
3 changed files with 37 additions and 37 deletions

View File

@ -45,6 +45,10 @@ dofile(mg_villages.modpath.."/nodes.lua")
if(minetest.registered_nodes["default:sapling"]) then
dofile(mg_villages.modpath.."/trees_default.lua")
end
-- RealTest has its own tree growing code
if(minetest.registered_nodes["trees:maple_sapling"]) then
dofile(mg_villages.modpath.."/trees_realtest.lua")
end
dofile(mg_villages.modpath.."/replacements.lua")

View File

@ -1353,40 +1353,3 @@ minetest.register_on_generated(function(minp, maxp, seed)
mg_villages.place_villages_via_voxelmanip( villages, minp, maxp, nil, data_vm, data_param2_data, nil, nil, seed );
end
end)
-- this is taken from the function trees.make_tree in the trees
-- mod in RealTest - modified so that it can work with VoxelManip
-- instead of set/get_node
-- TODO: handle snow
-- TODO: grow moretree trees
-- TODO: move tree-handling into seperate mod
mg_villages.grow_realtest_tree = function(data, a, pos, snow, tree)
local tree = realtest.registered_trees[tree]
if(not(tree)) then
return
end
local c_air = minetest.get_content_id("air")
local c_ignore = minetest.get_content_id("ignore")
local c_sapling = minetest.get_content_id(tree.name.."_sapling")
local c_trunk = minetest.get_content_id(tree.name.."_trunk")
local c_trunk_top = minetest.get_content_id(tree.name.."_trunk_top")
local c_leaves = minetest.get_content_id(tree.name.."_leaves")
local height = tree.height()
for i = 0,height-1 do
local vi = a:index(pos.x, pos.y+i, pos.z)
if(data[vi] == c_air or data[vi] == c_ignore or data[vi] == c_sapling) then
data[vi] = c_trunk
end
end
local vi = a:index(pos.x, pos.y+height, pos.z)
if(data[vi] == c_air or data[vi] == c_ignore) then
data[vi] = c_trunk_top
end
for i = 1,#tree.leaves do
local vi = a:index(pos.x+tree.leaves[i][1], pos.y+height+tree.leaves[i][2], pos.z+tree.leaves[i][3])
if(data[vi] == c_air or data[vi] == c_ignore) then
data[vi] = c_leaves
end
end
end

33
trees_realtest.lua Normal file
View File

@ -0,0 +1,33 @@
-- this is taken from the function trees.make_tree in the trees
-- mod in RealTest - modified so that it can work with VoxelManip
-- instead of set/get_node
-- TODO: handle snow
mg_villages.grow_realtest_tree = function(data, a, pos, snow, tree)
local tree = realtest.registered_trees[tree]
if(not(tree)) then
return
end
local c_air = minetest.get_content_id("air")
local c_ignore = minetest.get_content_id("ignore")
local c_sapling = minetest.get_content_id(tree.name.."_sapling")
local c_trunk = minetest.get_content_id(tree.name.."_trunk")
local c_trunk_top = minetest.get_content_id(tree.name.."_trunk_top")
local c_leaves = minetest.get_content_id(tree.name.."_leaves")
local height = tree.height()
for i = 0,height-1 do
local vi = a:index(pos.x, pos.y+i, pos.z)
if(data[vi] == c_air or data[vi] == c_ignore or data[vi] == c_sapling) then
data[vi] = c_trunk
end
end
local vi = a:index(pos.x, pos.y+height, pos.z)
if(data[vi] == c_air or data[vi] == c_ignore) then
data[vi] = c_trunk_top
end
for i = 1,#tree.leaves do
local vi = a:index(pos.x+tree.leaves[i][1], pos.y+height+tree.leaves[i][2], pos.z+tree.leaves[i][3])
if(data[vi] == c_air or data[vi] == c_ignore) then
data[vi] = c_leaves
end
end
end