inventory
This commit is contained in:
@@ -261,8 +261,8 @@ void Batch2D::blockSprite(float x, float y, float w, float h, int atlasRes, int
|
||||
}
|
||||
|
||||
void Batch2D::rect(float x, float y, float w, float h,
|
||||
float u, float v, float tx, float ty,
|
||||
float r, float g, float b, float a){
|
||||
float u, float v, float tx, float ty,
|
||||
float r, float g, float b, float a){
|
||||
if (index + 6*VERTEX_SIZE >= capacity)
|
||||
render();
|
||||
vertex(x, y, u, v+ty, r,g,b,a);
|
||||
@@ -274,6 +274,66 @@ void Batch2D::rect(float x, float y, float w, float h,
|
||||
vertex(x+w, y+h, u+tx, v, r,g,b,a);
|
||||
}
|
||||
|
||||
void Batch2D::rect(float x, float y, float w, float h,
|
||||
float r0, float g0, float b0,
|
||||
float r1, float g1, float b1,
|
||||
float r2, float g2, float b2,
|
||||
float r3, float g3, float b3,
|
||||
float r4, float g4, float b4, int sh){
|
||||
if (index + 30*VERTEX_SIZE >= capacity)
|
||||
render();
|
||||
vec2 v0 = vec2(x+h/2,y+h/2);
|
||||
vec2 v1 = vec2(x+w-sh,y);
|
||||
vec2 v2 = vec2(x+sh,y);
|
||||
vec2 v3 = vec2(x,y+sh);
|
||||
vec2 v4 = vec2(x,y+h-sh);
|
||||
vec2 v5 = vec2(x+sh,y+h);
|
||||
vec2 v6 = vec2(x+w-h/2,y+h/2);
|
||||
vec2 v7 = vec2(x+w-sh,y+h);
|
||||
vec2 v8 = vec2(x+w,y+h-sh);
|
||||
vec2 v9 = vec2(x+w,y+sh);
|
||||
|
||||
vertex(v0, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v6, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v1, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
|
||||
vertex(v0, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v1, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v2, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
|
||||
vertex(v0, vec2(0, 0), r0,g0,b0,1.0f);
|
||||
vertex(v2, vec2(0, 0), r0,g0,b0,1.0f);
|
||||
vertex(v3, vec2(0, 0), r0,g0,b0,1.0f);
|
||||
|
||||
vertex(v0, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v3, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
vertex(v4, vec2(0, 0), r1,g1,b1,1.0f);
|
||||
|
||||
vertex(v0, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
vertex(v4, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
vertex(v5, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
|
||||
vertex(v0, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v5, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v6, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
|
||||
vertex(v6, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v5, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v7, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
|
||||
vertex(v6, vec2(0, 0), r4,g4,b4,1.0f);
|
||||
vertex(v7, vec2(0, 0), r4,g4,b4,1.0f);
|
||||
vertex(v8, vec2(0, 0), r4,g4,b4,1.0f);
|
||||
|
||||
vertex(v6, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v8, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
vertex(v9, vec2(0, 0), r3,g3,b3,1.0f);
|
||||
|
||||
vertex(v6, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
vertex(v9, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
vertex(v1, vec2(0, 0), r2,g2,b2,1.0f);
|
||||
}
|
||||
|
||||
void Batch2D::render() {
|
||||
mesh->reload(buffer, index / VERTEX_SIZE);
|
||||
mesh->draw(GL_TRIANGLES);
|
||||
|
||||
@@ -49,8 +49,15 @@ public:
|
||||
|
||||
void rect(float x, float y, float w, float h);
|
||||
void rect(float x, float y, float w, float h,
|
||||
float u, float v, float tx, float ty,
|
||||
float r, float g, float b, float a);
|
||||
float u, float v, float tx, float ty,
|
||||
float r, float g, float b, float a);
|
||||
|
||||
void rect(float x, float y, float w, float h,
|
||||
float r0, float g0, float b0,
|
||||
float r1, float g1, float b1,
|
||||
float r2, float g2, float b2,
|
||||
float r3, float g3, float b3,
|
||||
float r4, float g4, float b4, int sh);
|
||||
void render();
|
||||
};
|
||||
|
||||
|
||||
@@ -374,86 +374,62 @@ inline void _renderXBlock(std::vector<float>& buffer, int x, int y, int z, const
|
||||
|
||||
float uvsize = 1.0f/16.0f;
|
||||
|
||||
float lr = LIGHT(x,y,z, 0) / 15.0f;
|
||||
float lg = LIGHT(x,y,z, 1) / 15.0f;
|
||||
float lb = LIGHT(x,y,z, 2) / 15.0f;
|
||||
float ls = LIGHT(x,y,z, 3) / 15.0f;
|
||||
float lr = LIGHT(x,y,z, 0);
|
||||
float lg = LIGHT(x,y,z, 1);
|
||||
float lb = LIGHT(x,y,z, 2);
|
||||
float ls = LIGHT(x,y,z, 3);
|
||||
|
||||
float lr0 = (LIGHT(x,y-1,z,0) + lr*30) / 45.0f;
|
||||
float lr1 = (LIGHT(x,y+1,z,0) + lr*30) / 45.0f;
|
||||
float lr2 = (LIGHT(x,y+1,z,0) + lr*30) / 45.0f;
|
||||
float lr3 = (LIGHT(x,y-1,z,0) + lr*30) / 45.0f;
|
||||
float lr4 = (LIGHT(x,y-1,z,0) + lr*30) / 45.0f;
|
||||
float lr5 = (LIGHT(x,y+1,z,0) + lr*30) / 45.0f;
|
||||
float lr6 = (LIGHT(x,y+1,z,0) + lr*30) / 45.0f;
|
||||
float lr7 = (LIGHT(x,y-1,z,0) + lr*30) / 45.0f;
|
||||
float lr0 = (LIGHT(x,y-1,z,0) + lr*3) / 60.0f;
|
||||
float lr1 = (LIGHT(x,y+1,z,0) + lr*3) / 60.0f;
|
||||
|
||||
float lg0 = (LIGHT(x,y-1,z,1) + lg*30) / 45.0f;
|
||||
float lg1 = (LIGHT(x,y+1,z,1) + lg*30) / 45.0f;
|
||||
float lg2 = (LIGHT(x,y+1,z,1) + lg*30) / 45.0f;
|
||||
float lg3 = (LIGHT(x,y-1,z,1) + lg*30) / 45.0f;
|
||||
float lg4 = (LIGHT(x,y-1,z,1) + lg*30) / 45.0f;
|
||||
float lg5 = (LIGHT(x,y+1,z,1) + lg*30) / 45.0f;
|
||||
float lg6 = (LIGHT(x,y+1,z,1) + lg*30) / 45.0f;
|
||||
float lg7 = (LIGHT(x,y-1,z,1) + lg*30) / 45.0f;
|
||||
float lg0 = (LIGHT(x,y-1,z,1) + lg*3) / 60.0f;
|
||||
float lg1 = (LIGHT(x,y+1,z,1) + lg*3) / 60.0f;
|
||||
|
||||
float lb0 = (LIGHT(x,y-1,z,2) + lb*30) / 45.0f;
|
||||
float lb1 = (LIGHT(x,y+1,z,2) + lb*30) / 45.0f;
|
||||
float lb2 = (LIGHT(x,y+1,z,2) + lb*30) / 45.0f;
|
||||
float lb3 = (LIGHT(x,y-1,z,2) + lb*30) / 45.0f;
|
||||
float lb4 = (LIGHT(x,y-1,z,2) + lb*30) / 45.0f;
|
||||
float lb5 = (LIGHT(x,y+1,z,2) + lb*30) / 45.0f;
|
||||
float lb6 = (LIGHT(x,y+1,z,2) + lb*30) / 45.0f;
|
||||
float lb7 = (LIGHT(x,y-1,z,2) + lb*30) / 45.0f;
|
||||
float lb0 = (LIGHT(x,y-1,z,2) + lb*3) / 60.0f;
|
||||
float lb1 = (LIGHT(x,y+1,z,2) + lb*3) / 60.0f;
|
||||
|
||||
float ls0 = (LIGHT(x,y-1,z,3) + ls*30) / 45.0f;
|
||||
float ls1 = (LIGHT(x,y+1,z,3) + ls*30) / 45.0f;
|
||||
float ls2 = (LIGHT(x,y+1,z,3) + ls*30) / 45.0f;
|
||||
float ls3 = (LIGHT(x,y-1,z,3) + ls*30) / 45.0f;
|
||||
float ls4 = (LIGHT(x,y-1,z,3) + ls*30) / 45.0f;
|
||||
float ls5 = (LIGHT(x,y+1,z,3) + ls*30) / 45.0f;
|
||||
float ls6 = (LIGHT(x,y+1,z,3) + ls*30) / 45.0f;
|
||||
float ls7 = (LIGHT(x,y-1,z,3) + ls*30) / 45.0f;
|
||||
float ls0 = (LIGHT(x,y-1,z,3) + ls*3) / 60.0f;
|
||||
float ls1 = (LIGHT(x,y+1,z,3) + ls*3) / 60.0f;
|
||||
|
||||
{SETUP_UV(block->textureFaces[1]);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z-0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z-0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr2,lg2,lb2,ls2);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z-0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr2,lg2,lb2,ls2);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr3,lg3,lb3,ls3);}
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);}
|
||||
|
||||
{SETUP_UV(block->textureFaces[0]);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z-0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr2,lg2,lb2,ls2);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z-0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr3,lg3,lb3,ls3);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z+0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);}
|
||||
|
||||
{SETUP_UV(block->textureFaces[5]);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr4,lg4,lb4,ls4);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u2,v2, lr5,lg5,lb5,ls5);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr6,lg6,lb6,ls6);
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z+0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr4,lg4,lb4,ls4);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z-0.3535f+zs, u2,v1, lr7,lg7,lb7,ls7);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u2,v2, lr5,lg5,lb5,ls5);}
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z-0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);}
|
||||
|
||||
{SETUP_UV(block->textureFaces[4]);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr4,lg4,lb4,ls4);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z+0.3535f+zs, u2,v2, lr5,lg5,lb5,ls5);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr6,lg6,lb6,ls6);
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x-0.3535f+xs, y+0.5f, z+0.3535f+zs, u2,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr4,lg4,lb4,ls4);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr6,lg6,lb6,ls6);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z-0.3535f+zs, u1,v1, lr7,lg7,lb7,ls7);}
|
||||
VERTEX(index, x-0.3535f+xs, y-0.5f, z+0.3535f+zs, u2,v1, lr0,lg0,lb0,ls0);
|
||||
VERTEX(index, x+0.3535f+xs, y+0.5f, z-0.3535f+zs, u1,v2, lr1,lg1,lb1,ls1);
|
||||
VERTEX(index, x+0.3535f+xs, y-0.5f, z-0.3535f+zs, u1,v1, lr0,lg0,lb0,ls0);}
|
||||
}
|
||||
|
||||
const float* VoxelRenderer::render(Chunk* chunk, const Chunk** chunks, size_t& size){
|
||||
|
||||
Reference in New Issue
Block a user