grass edges workin'
This commit is contained in:
parent
626ed6338a
commit
47f76d8a51
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
|
@ -69,7 +69,7 @@ void MapBlock::setNodeParent(v3s16 p, MapNode & n)
|
||||||
}
|
}
|
||||||
|
|
||||||
FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p,
|
FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p,
|
||||||
v3f dir, v3f scale, v3f posRelative_f)
|
v3s16 dir, v3f scale, v3f posRelative_f)
|
||||||
{
|
{
|
||||||
FastFace *f = new FastFace;
|
FastFace *f = new FastFace;
|
||||||
|
|
||||||
|
@ -85,14 +85,21 @@ FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p,
|
||||||
vertex_pos[2] = v3f(-BS/2, BS/2,BS/2);
|
vertex_pos[2] = v3f(-BS/2, BS/2,BS/2);
|
||||||
vertex_pos[3] = v3f( BS/2, BS/2,BS/2);
|
vertex_pos[3] = v3f( BS/2, BS/2,BS/2);
|
||||||
|
|
||||||
/*
|
for(u16 i=0; i<4; i++)
|
||||||
TODO: Rotate it the right way (one side comes upside down)
|
{
|
||||||
*/
|
if(dir == v3s16(0,0,1))
|
||||||
core::CMatrix4<f32> m;
|
vertex_pos[i].rotateXZBy(0);
|
||||||
m.buildRotateFromTo(v3f(0,0,1), dir);
|
else if(dir == v3s16(0,0,-1))
|
||||||
|
vertex_pos[i].rotateXZBy(180);
|
||||||
for(u16 i=0; i<4; i++){
|
else if(dir == v3s16(1,0,0))
|
||||||
m.rotateVect(vertex_pos[i]);
|
vertex_pos[i].rotateXZBy(-90);
|
||||||
|
else if(dir == v3s16(-1,0,0))
|
||||||
|
vertex_pos[i].rotateXZBy(90);
|
||||||
|
else if(dir == v3s16(0,1,0))
|
||||||
|
vertex_pos[i].rotateYZBy(-90);
|
||||||
|
else if(dir == v3s16(0,-1,0))
|
||||||
|
vertex_pos[i].rotateYZBy(90);
|
||||||
|
|
||||||
vertex_pos[i].X *= scale.X;
|
vertex_pos[i].X *= scale.X;
|
||||||
vertex_pos[i].Y *= scale.Y;
|
vertex_pos[i].Y *= scale.Y;
|
||||||
vertex_pos[i].Z *= scale.Z;
|
vertex_pos[i].Z *= scale.Z;
|
||||||
|
@ -112,22 +119,15 @@ FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p,
|
||||||
u8 alpha = 255;
|
u8 alpha = 255;
|
||||||
|
|
||||||
//if(material == CONTENT_WATER || material == CONTENT_OCEAN)
|
//if(material == CONTENT_WATER || material == CONTENT_OCEAN)
|
||||||
if(tile == CONTENT_WATER || tile == CONTENT_OCEAN)
|
//TODO: Umm?
|
||||||
//if(tile == TILE_WATER)
|
//if(tile == CONTENT_WATER || tile == CONTENT_OCEAN)
|
||||||
|
if(tile == TILE_WATER)
|
||||||
{
|
{
|
||||||
alpha = 128;
|
alpha = 128;
|
||||||
}
|
}
|
||||||
|
|
||||||
video::SColor c = video::SColor(alpha,li,li,li);
|
video::SColor c = video::SColor(alpha,li,li,li);
|
||||||
|
|
||||||
/*f->vertices[0] = video::S3DVertex(vertex_pos[0], zerovector, c,
|
|
||||||
core::vector2d<f32>(0,1));
|
|
||||||
f->vertices[1] = video::S3DVertex(vertex_pos[1], zerovector, c,
|
|
||||||
core::vector2d<f32>(abs_scale,1));
|
|
||||||
f->vertices[2] = video::S3DVertex(vertex_pos[2], zerovector, c,
|
|
||||||
core::vector2d<f32>(abs_scale,0));
|
|
||||||
f->vertices[3] = video::S3DVertex(vertex_pos[3], zerovector, c,
|
|
||||||
core::vector2d<f32>(0,0));*/
|
|
||||||
f->vertices[0] = video::S3DVertex(vertex_pos[0], zerovector, c,
|
f->vertices[0] = video::S3DVertex(vertex_pos[0], zerovector, c,
|
||||||
core::vector2d<f32>(0,1));
|
core::vector2d<f32>(0,1));
|
||||||
f->vertices[1] = video::S3DVertex(vertex_pos[1], zerovector, c,
|
f->vertices[1] = video::S3DVertex(vertex_pos[1], zerovector, c,
|
||||||
|
@ -308,14 +308,14 @@ void MapBlock::updateFastFaceRow(v3s16 startpos,
|
||||||
if(mf == 1)
|
if(mf == 1)
|
||||||
{
|
{
|
||||||
f = makeFastFace(tile0, light,
|
f = makeFastFace(tile0, light,
|
||||||
sp, face_dir_f, scale,
|
sp, face_dir, scale,
|
||||||
posRelative_f);
|
posRelative_f);
|
||||||
}
|
}
|
||||||
// If node at sp is less solid (mf == 2)
|
// If node at sp is less solid (mf == 2)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
f = makeFastFace(tile1, light,
|
f = makeFastFace(tile1, light,
|
||||||
sp+face_dir_f, -1*face_dir_f, scale,
|
sp+face_dir_f, -face_dir, scale,
|
||||||
posRelative_f);
|
posRelative_f);
|
||||||
}
|
}
|
||||||
dest.push_back(f);
|
dest.push_back(f);
|
||||||
|
|
|
@ -284,7 +284,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
static FastFace * makeFastFace(u16 tile, u8 light, v3f p,
|
static FastFace * makeFastFace(u16 tile, u8 light, v3f p,
|
||||||
v3f dir, v3f scale, v3f posRelative_f);
|
v3s16 dir, v3f scale, v3f posRelative_f);
|
||||||
|
|
||||||
u8 getFaceLight(v3s16 p, v3s16 face_dir);
|
u8 getFaceLight(v3s16 p, v3s16 face_dir);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue