mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Pass light sources in blue channel of vertex color instead of decoded light for all special drawtypes.
Plus some style fixes and optimizations.
This commit is contained in:
parent
2a5c88bde1
commit
d9df592da8
2 changed files with 29 additions and 40 deletions
|
@ -220,7 +220,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
top_is_same_liquid = true;
|
||||
|
||||
u16 l = getInteriorLight(n, 0, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(f.alpha, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(f.alpha, l, f.light_source);
|
||||
|
||||
/*
|
||||
Generate sides
|
||||
|
@ -383,7 +383,6 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
// it at what it emits, for an increased effect
|
||||
u8 light_source = nodedef->get(n).light_source;
|
||||
if(light_source != 0){
|
||||
//l = decode_light(undiminish_light(light_source));
|
||||
l = decode_light(light_source);
|
||||
l = l | (l<<8);
|
||||
}
|
||||
|
@ -393,7 +392,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
// Otherwise use the light of this node (the liquid)
|
||||
else
|
||||
l = getInteriorLight(n, 0, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(f.alpha, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(f.alpha, l, f.light_source);
|
||||
|
||||
u8 range = rangelim(nodedef->get(c_flowing).liquid_range, 1, 8);
|
||||
|
||||
|
@ -697,7 +696,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
TileSpec tile = getNodeTile(n, p, v3s16(0,0,0), data);
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
for(u32 j=0; j<6; j++)
|
||||
{
|
||||
|
@ -780,7 +779,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
param2 = param2 & 63;
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
v3f pos = intToFloat(p, BS);
|
||||
static const float a = BS / 2;
|
||||
static const float g = a - 0.003;
|
||||
|
@ -985,7 +984,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
v3s16(0,0,0), data);
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
v3f pos = intToFloat(p, BS);
|
||||
aabb3f box(-BS/2,-BS/2,-BS/2,BS/2,BS/2,BS/2);
|
||||
|
@ -1018,7 +1017,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
tile.material_flags |= MATERIAL_FLAG_CRACK_OVERLAY;
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
float s = BS/2*f.visual_scale;
|
||||
// Wall at X+ of node
|
||||
|
@ -1059,7 +1058,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
tile.material_flags |= MATERIAL_FLAG_CRACK_OVERLAY;
|
||||
|
||||
u16 l = getInteriorLight(n, 0, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
float d = (float)BS/16;
|
||||
float s = BS/2*f.visual_scale;
|
||||
|
@ -1102,7 +1101,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
tile.material_flags |= MATERIAL_FLAG_CRACK_OVERLAY;
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
float s = BS/2*f.visual_scale;
|
||||
|
||||
|
@ -1149,7 +1148,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
tile_rot.rotation = 1;
|
||||
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
const f32 post_rad=(f32)BS/8;
|
||||
const f32 bar_rad=(f32)BS/16;
|
||||
|
@ -1398,7 +1397,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
tile.material_flags |= MATERIAL_FLAG_CRACK_OVERLAY;
|
||||
|
||||
u16 l = getInteriorLight(n, 0, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
float d = (float)BS/64;
|
||||
|
||||
|
@ -1436,8 +1435,8 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
|
|||
};
|
||||
TileSpec tiles[6];
|
||||
|
||||
u16 l = getInteriorLight(n, 0, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, decode_light(f.light_source));
|
||||
u16 l = getInteriorLight(n, 1, nodedef);
|
||||
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
|
||||
|
||||
v3f pos = intToFloat(p, BS);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue