rocedure TRC.SameFace;
begin
if BlockTemplate[B1].Transperent then begin
{front face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
end;
if BlockTemplate[B2].Transperent then begin
{Back Face}
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
end;
if BlockTemplate[B3].Transperent then begin
{Left Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
if BlockTemplate[B4].Transperent then begin
{Rbxght Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
end;
if BlockTemplate[B5].Transperent then begin
{Top Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by, bz);
end;
if BlockTemplate[B6].Transperent then begin
{Bottom Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
end;
procedure TRC.RounDiff;
begin
if BlockTemplate[B5].Transperent then begin
{Top Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by, bz);
end;
inc(TexS);
if BlockTemplate[B6].Transperent then begin
{Bottom Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
inc(TexS);
if BlockTemplate[B1].Transperent then begin
{front face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
end;
if BlockTemplate[B2].Transperent then begin
{Back Face}
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
end;
if BlockTemplate[B3].Transperent then begin
{Left Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
if BlockTemplate[B4].Transperent then begin
{Rbxght Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
end;
end;
procedure TRC.water;
begin
// glcolor4f(1,1,1,0.1);
if B1<>21 then begin
{front face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
end;
if B2<>21 then begin
{Back Face}
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
end;
if B3<>21 then begin
{Left Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
if B4<>21 then begin
{Right Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by, bz);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by-1, bz-1);
end;
if B5<>21 then begin
{Top Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx-1, by, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx-1, by, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx, by, bz);
end;
if B6<>21 then begin
{Bottom Face}
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,3]); glVertex3f( bx-1, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,3]); glVertex3f( bx, by-1, bz-1);
glTexCoord2f( Texpos[TexS,0], Texpos[TexS,1]); glVertex3f( bx, by-1, bz);
glTexCoord2f( Texpos[TexS,2], Texpos[TexS,1]); glVertex3f( bx-1, by-1, bz);
end;
//glcolor4f(1,1,1,1);
end;
end.
2014年12月07日 05点12分
20