mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 19:43:45 +01:00
Fixed saplings growing into trees (thanks so much, Kahrl!)
Put the random interval back to 1 in 50 chance. It's not as rare as rats, but rarer than grass.
This commit is contained in:
parent
f19919546d
commit
319f43e6d2
@ -929,17 +929,30 @@ void ServerEnvironment::step(float dtime)
|
|||||||
*/
|
*/
|
||||||
if(n.getContent() == CONTENT_SAPLING)
|
if(n.getContent() == CONTENT_SAPLING)
|
||||||
{
|
{
|
||||||
if(myrand()%2 == 0)
|
if(myrand()%50 == 0)
|
||||||
{
|
{
|
||||||
core::map<v3s16, MapBlock*> modified_blocks;
|
core::map<v3s16, MapBlock*> modified_blocks;
|
||||||
v3s16 tree_p = p;
|
v3s16 tree_p = p;
|
||||||
MapEditEvent event;
|
|
||||||
event.type = MEET_OTHER;
|
|
||||||
ManualMapVoxelManipulator vmanip(m_map);
|
ManualMapVoxelManipulator vmanip(m_map);
|
||||||
v3s16 tree_blockp = getNodeBlockPos(tree_p);
|
v3s16 tree_blockp = getNodeBlockPos(tree_p);
|
||||||
vmanip.initialEmerge(tree_blockp - v3s16(1,1,1), tree_blockp + v3s16(1,1,1));
|
vmanip.initialEmerge(tree_blockp - v3s16(1,1,1), tree_blockp + v3s16(1,1,1));
|
||||||
bool is_apple_tree = myrand()%4 == 0;
|
bool is_apple_tree = myrand()%4 == 0;
|
||||||
mapgen::make_tree(vmanip, tree_p, is_apple_tree);
|
mapgen::make_tree(vmanip, tree_p, is_apple_tree);
|
||||||
|
vmanip.blitBackAll(&modified_blocks);
|
||||||
|
|
||||||
|
// update lighting
|
||||||
|
core::map<v3s16, MapBlock*> lighting_modified_blocks;
|
||||||
|
for(core::map<v3s16, MapBlock*>::Iterator
|
||||||
|
i = modified_blocks.getIterator();
|
||||||
|
i.atEnd() == false; i++)
|
||||||
|
{
|
||||||
|
lighting_modified_blocks.insert(i.getNode()->getKey(), i.getNode()->getValue());
|
||||||
|
}
|
||||||
|
m_map->updateLighting(lighting_modified_blocks, modified_blocks);
|
||||||
|
|
||||||
|
// Send a MEET_OTHER event
|
||||||
|
MapEditEvent event;
|
||||||
|
event.type = MEET_OTHER;
|
||||||
for(core::map<v3s16, MapBlock*>::Iterator
|
for(core::map<v3s16, MapBlock*>::Iterator
|
||||||
i = modified_blocks.getIterator();
|
i = modified_blocks.getIterator();
|
||||||
i.atEnd() == false; i++)
|
i.atEnd() == false; i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user