mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Mapgen: Add propagate_shadow bool to calcLighting
To terminate unwanted shadows from floatlands or realms above Also add to LuaVoxelManip calc_lighting for use in mapgen mods Remove the 2 argument calcLighting, mapgens now use the 5 argument form to specify the volumes for propagateSunlight and spreadLight In mgsinglenode replace calcLighting with setLighting and clean-up use of tabs and spaces
This commit is contained in:
parent
a78dd7f2b6
commit
49073ba2c3
7 changed files with 34 additions and 44 deletions
|
@ -264,37 +264,20 @@ void Mapgen::lightSpread(VoxelArea &a, v3s16 p, u8 light)
|
|||
}
|
||||
|
||||
|
||||
void Mapgen::calcLighting(v3s16 nmin, v3s16 nmax, v3s16 full_nmin, v3s16 full_nmax)
|
||||
void Mapgen::calcLighting(v3s16 nmin, v3s16 nmax, v3s16 full_nmin, v3s16 full_nmax,
|
||||
bool propagate_shadow)
|
||||
{
|
||||
ScopeProfiler sp(g_profiler, "EmergeThread: mapgen lighting update", SPT_AVG);
|
||||
//TimeTaker t("updateLighting");
|
||||
|
||||
propagateSunlight(nmin, nmax);
|
||||
propagateSunlight(nmin, nmax, propagate_shadow);
|
||||
spreadLight(full_nmin, full_nmax);
|
||||
|
||||
//printf("updateLighting: %dms\n", t.stop());
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Mapgen::calcLighting(v3s16 nmin, v3s16 nmax)
|
||||
{
|
||||
ScopeProfiler sp(g_profiler, "EmergeThread: mapgen lighting update", SPT_AVG);
|
||||
//TimeTaker t("updateLighting");
|
||||
|
||||
propagateSunlight(
|
||||
nmin - v3s16(1, 1, 1) * MAP_BLOCKSIZE,
|
||||
nmax + v3s16(1, 0, 1) * MAP_BLOCKSIZE);
|
||||
|
||||
spreadLight(
|
||||
nmin - v3s16(1, 1, 1) * MAP_BLOCKSIZE,
|
||||
nmax + v3s16(1, 1, 1) * MAP_BLOCKSIZE);
|
||||
|
||||
//printf("updateLighting: %dms\n", t.stop());
|
||||
}
|
||||
|
||||
|
||||
void Mapgen::propagateSunlight(v3s16 nmin, v3s16 nmax)
|
||||
void Mapgen::propagateSunlight(v3s16 nmin, v3s16 nmax, bool propagate_shadow)
|
||||
{
|
||||
//TimeTaker t("propagateSunlight");
|
||||
VoxelArea a(nmin, nmax);
|
||||
|
@ -308,7 +291,8 @@ void Mapgen::propagateSunlight(v3s16 nmin, v3s16 nmax)
|
|||
if (vm->m_data[i].getContent() == CONTENT_IGNORE) {
|
||||
if (block_is_underground)
|
||||
continue;
|
||||
} else if ((vm->m_data[i].param1 & 0x0F) != LIGHT_SUN) {
|
||||
} else if ((vm->m_data[i].param1 & 0x0F) != LIGHT_SUN &&
|
||||
propagate_shadow) {
|
||||
continue;
|
||||
}
|
||||
vm->m_area.add_y(em, i, -1);
|
||||
|
@ -326,7 +310,6 @@ void Mapgen::propagateSunlight(v3s16 nmin, v3s16 nmax)
|
|||
}
|
||||
|
||||
|
||||
|
||||
void Mapgen::spreadLight(v3s16 nmin, v3s16 nmax)
|
||||
{
|
||||
//TimeTaker t("spreadLight");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue