mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
commit before some more radical changes
This commit is contained in:
parent
06eb0ad4d0
commit
01c2b003e1
12 changed files with 222 additions and 63 deletions
30
src/map.cpp
30
src/map.cpp
|
@ -940,6 +940,15 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
|
|||
n.setLight(bank, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
If node lets sunlight through and is under sunlight, it has
|
||||
sunlight too.
|
||||
*/
|
||||
if(node_under_sunlight && content_features(n.d).sunlight_propagates)
|
||||
{
|
||||
n.setLight(LIGHTBANK_DAY, LIGHT_SUN);
|
||||
}
|
||||
|
||||
/*
|
||||
Set the node on the map
|
||||
*/
|
||||
|
@ -947,13 +956,13 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
|
|||
setNode(p, n);
|
||||
|
||||
/*
|
||||
If node is under sunlight, take all sunlighted nodes under
|
||||
it and clear light from them and from where the light has
|
||||
been spread.
|
||||
If node is under sunlight and doesn't let sunlight through,
|
||||
take all sunlighted nodes under it and clear light from them
|
||||
and from where the light has been spread.
|
||||
TODO: This could be optimized by mass-unlighting instead
|
||||
of looping
|
||||
*/
|
||||
if(node_under_sunlight)
|
||||
if(node_under_sunlight && !content_features(n.d).sunlight_propagates)
|
||||
{
|
||||
s16 y = p.Y - 1;
|
||||
for(;; y--){
|
||||
|
@ -981,7 +990,7 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for(s32 i=0; i<2; i++)
|
||||
{
|
||||
enum LightBank bank = banks[i];
|
||||
|
@ -1687,6 +1696,17 @@ void Map::transformLiquids(core::map<v3s16, MapBlock*> & modified_blocks)
|
|||
//dstream<<"Map::transformLiquids(): loopcount="<<loopcount<<std::endl;
|
||||
}
|
||||
|
||||
NodeMetadata* Map::getNodeMetadataClone(v3s16 p)
|
||||
{
|
||||
v3s16 blockpos = getNodeBlockPos(p);
|
||||
v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE;
|
||||
MapBlock *block = getBlockNoCreateNoEx(blockpos);
|
||||
if(block == NULL)
|
||||
return NULL;
|
||||
NodeMetadata *meta = block->m_node_metadata.getClone(p_rel);
|
||||
return meta;
|
||||
}
|
||||
|
||||
/*
|
||||
ServerMap
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue