added trees (very glitchy) and changed grass texture

This commit is contained in:
Perttu Ahola 2011-02-28 02:48:31 +02:00
parent a302ae3e08
commit ad9e084e94
3 changed files with 40 additions and 6 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

After

Width:  |  Height:  |  Size: 876 B

@ -1875,6 +1875,8 @@ void make_tree(VoxelManipulator &vmanip, v3s16 p0)
MapNode treenode(CONTENT_TREE); MapNode treenode(CONTENT_TREE);
MapNode leavesnode(CONTENT_LEAVES); MapNode leavesnode(CONTENT_LEAVES);
vmanip.emerge(VoxelArea(p0-v3s16(2,0,2),p0+v3s16(2,6,2)));
s16 trunk_h = myrand_range(3, 6); s16 trunk_h = myrand_range(3, 6);
v3s16 p1 = p0; v3s16 p1 = p0;
for(s16 ii=0; ii<trunk_h; ii++) for(s16 ii=0; ii<trunk_h; ii++)
@ -4421,6 +4423,11 @@ MapBlock * ServerMap::generateBlock(
//dstream<<"generateBlock(): Done"<<std::endl; //dstream<<"generateBlock(): Done"<<std::endl;
// Set to true if has caves.
// Set when some non-air is changed to air when making caves.
bool has_dungeons = false;
#if 0
/* /*
Generate dungeons Generate dungeons
*/ */
@ -4640,10 +4647,6 @@ continue_generating:
} }
#endif #endif
// Set to true if has caves.
// Set when some non-air is changed to air when making caves.
bool has_dungeons = false;
/* /*
Apply temporary cave data to block Apply temporary cave data to block
*/ */
@ -4673,6 +4676,7 @@ continue_generating:
block->setNode(v3s16(x0,y0,z0), n); block->setNode(v3s16(x0,y0,z0), n);
} }
} }
#endif
/* /*
This is used for guessing whether or not the block should This is used for guessing whether or not the block should
@ -4815,7 +4819,7 @@ continue_generating:
} }
/* /*
Add block to sector. Add block to sector
*/ */
sector->insertBlock(block); sector->insertBlock(block);
@ -4830,6 +4834,34 @@ continue_generating:
{ {
block->setLightingExpired(false); block->setLightingExpired(false);
} }
/*
Add trees
*/
if(some_part_underground && !completely_underground)
{
MapVoxelManipulator vm(this);
double a = tree_amount_2d(m_seed, v2s16(p_nodes.X+8, p_nodes.Z+8));
u16 tree_count = (u16)(a*MAP_BLOCKSIZE*MAP_BLOCKSIZE);
for(u16 i=0; i<tree_count; i++)
{
v3s16 tree_p = p_nodes + v3s16(
myrand_range(0,MAP_BLOCKSIZE-1),
8,
myrand_range(0,MAP_BLOCKSIZE-1)
);
double depth_guess;
/*bool is_ground =*/ is_base_ground(m_seed,
intToFloat(tree_p, 1), &depth_guess);
tree_p.Y += depth_guess;
if(tree_p.Y <= WATER_LEVEL)
continue;
make_tree(vm, tree_p);
}
vm.blitBack(changed_blocks);
}
#if 0 #if 0
/* /*

@ -167,7 +167,8 @@ void * EmergeThread::Thread()
only_from_disk, only_from_disk,
changed_blocks, changed_blocks,
lighting_invalidated_blocks); lighting_invalidated_blocks);
#if 0
/* /*
While we're at it, generate some other blocks too While we're at it, generate some other blocks too
*/ */
@ -187,6 +188,7 @@ void * EmergeThread::Thread()
catch(InvalidPositionException &e) catch(InvalidPositionException &e)
{ {
} }
#endif
} }
// If it is a dummy, block was not found on disk // If it is a dummy, block was not found on disk