]> git.lizzy.rs Git - minetest.git/blobdiff - src/content_mapblock.cpp
Optionally specify propagateSunlight area in calcLighting
[minetest.git] / src / content_mapblock.cpp
index 378a344a40a4d69ec1069c9a00c412cf0768b1b4..b84b69629d99082ad6cc490d3da65449e20be7a7 100644 (file)
@@ -1162,15 +1162,16 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                        u16 l = getInteriorLight(n, 1, nodedef);
                        video::SColor c = MapBlock_LightColor(255, l, f.light_source);
                        
-                       float s = BS / 2;
-                       for(u32 j = 0; j < 2; j++)
+                       float s = BS / 2 * f.visual_scale;
+
+                       for (int j = 0; j < 2; j++)
                        {
                                video::S3DVertex vertices[4] =
                                {
-                                       video::S3DVertex(-s,-s, 0, 0,0,0, c, 0,1),
-                                       video::S3DVertex( s,-s, 0, 0,0,0, c, 1,1),
-                                       video::S3DVertex( s, s, 0, 0,0,0, c, 1,0),
-                                       video::S3DVertex(-s, s, 0, 0,0,0, c, 0,0),
+                                       video::S3DVertex(-s,-BS/2, 0, 0,0,0, c, 0,1),
+                                       video::S3DVertex( s,-BS/2, 0, 0,0,0, c, 1,1),
+                                       video::S3DVertex( s,-BS/2 + s*2,0, 0,0,0, c, 1,0),
+                                       video::S3DVertex(-s,-BS/2 + s*2,0, 0,0,0, c, 0,0),
                                };
 
                                if(j == 0)
@@ -1184,10 +1185,10 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
                                                vertices[i].Pos.rotateXZBy(-44 + n.param2 * 2);
                                }
 
-                               for(u16 i = 0; i < 4; i++)
+                               for (int i = 0; i < 4; i++)
                                {
                                        vertices[i].Pos *= f.visual_scale;
-                                       vertices[i].Pos.Y -= s * (1 - f.visual_scale);
+                                       vertices[i].Pos.Y += BS/2 * (f.visual_scale - 1);
                                        vertices[i].Pos += intToFloat(p, BS);
                                }