-
- u16 indices[] = {0,1,2,2,3,0};
- // Add to mesh collector
- collector.append(material_water1, vertices, 4, indices, 6);
- }
- }
- /*
- Add water sources to mesh if using new style
- */
- else if(n.getContent() == CONTENT_WATERSOURCE && new_style_water)
- {
- //bool top_is_water = false;
- bool top_is_air = false;
- MapNode n = data->m_vmanip.getNodeNoEx(blockpos_nodes + v3s16(x,y+1,z));
- /*if(n.getContent() == CONTENT_WATER || n.getContent() == CONTENT_WATERSOURCE)
- top_is_water = true;*/
- if(n.getContent() == CONTENT_AIR)
- top_is_air = true;
-
- /*if(top_is_water == true)
- continue;*/
- if(top_is_air == false)
- continue;
-
- u8 l = decode_light(n.getLightBlend(data->m_daynight_ratio));
- video::SColor c = MapBlock_LightColor(WATER_ALPHA, l);
-
- video::S3DVertex vertices[4] =
- {
- /*video::S3DVertex(-BS/2,0,-BS/2, 0,0,0, c, 0,1),
- video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c, 1,1),
- video::S3DVertex(BS/2,0,BS/2, 0,0,0, c, 1,0),
- video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c, 0,0),*/
- video::S3DVertex(-BS/2,0,BS/2, 0,0,0, c,
- pa_water1.x0(), pa_water1.y1()),
- video::S3DVertex(BS/2,0,BS/2, 0,0,0, c,
- pa_water1.x1(), pa_water1.y1()),
- video::S3DVertex(BS/2,0,-BS/2, 0,0,0, c,
- pa_water1.x1(), pa_water1.y0()),
- video::S3DVertex(-BS/2,0,-BS/2, 0,0,0, c,
- pa_water1.x0(), pa_water1.y0()),
- };
-
- for(s32 i=0; i<4; i++)
- {
- vertices[i].Pos.Y += (-0.5+node_water_level)*BS;
- vertices[i].Pos += intToFloat(p + blockpos_nodes, BS);
- }
-
- u16 indices[] = {0,1,2,2,3,0};
- // Add to mesh collector
- collector.append(material_water1, vertices, 4, indices, 6);
- }
- /*
- Add leaves if using new style
- */
- else if(n.getContent() == CONTENT_LEAVES && new_style_leaves)
- {
- /*u8 l = decode_light(n.getLightBlend(data->m_daynight_ratio));*/
- u8 l = decode_light(undiminish_light(n.getLightBlend(data->m_daynight_ratio)));
- video::SColor c = MapBlock_LightColor(255, l);
-
- for(u32 j=0; j<6; j++)
- {
- video::S3DVertex vertices[4] =
- {
- /*video::S3DVertex(-BS/2,-BS/2,BS/2, 0,0,0, c, 0,1),
- video::S3DVertex(BS/2,-BS/2,BS/2, 0,0,0, c, 1,1),
- video::S3DVertex(BS/2,BS/2,BS/2, 0,0,0, c, 1,0),
- video::S3DVertex(-BS/2,BS/2,BS/2, 0,0,0, c, 0,0),*/
- video::S3DVertex(-BS/2,-BS/2,BS/2, 0,0,0, c,
- pa_leaves1.x0(), pa_leaves1.y1()),
- video::S3DVertex(BS/2,-BS/2,BS/2, 0,0,0, c,
- pa_leaves1.x1(), pa_leaves1.y1()),
- video::S3DVertex(BS/2,BS/2,BS/2, 0,0,0, c,
- pa_leaves1.x1(), pa_leaves1.y0()),
- video::S3DVertex(-BS/2,BS/2,BS/2, 0,0,0, c,
- pa_leaves1.x0(), pa_leaves1.y0()),
- };
-
- if(j == 0)
- {
- for(u16 i=0; i<4; i++)
- vertices[i].Pos.rotateXZBy(0);
- }
- else if(j == 1)
- {
- for(u16 i=0; i<4; i++)
- vertices[i].Pos.rotateXZBy(180);
- }
- else if(j == 2)
- {
- for(u16 i=0; i<4; i++)
- vertices[i].Pos.rotateXZBy(-90);
- }
- else if(j == 3)
- {
- for(u16 i=0; i<4; i++)
- vertices[i].Pos.rotateXZBy(90);
- }
- else if(j == 4)