From e3f7f7218f7c3a8c249cfaaa6e4e3cabf9292a11 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 7 Dec 2023 01:34:54 +0300 Subject: [PATCH] AABB blocks render fix + new test block: pipe --- res/content/base/blocks/pipe.json | 14 ++++++++++++++ res/content/base/package.json | 3 ++- res/textures/blocks/pipe_hole.png | Bin 0 -> 6391 bytes res/textures/blocks/pipe_side.png | Bin 0 -> 6477 bytes src/graphics/BlocksRenderer.cpp | 14 ++++++++------ 5 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 res/content/base/blocks/pipe.json create mode 100644 res/textures/blocks/pipe_hole.png create mode 100644 res/textures/blocks/pipe_side.png diff --git a/res/content/base/blocks/pipe.json b/res/content/base/blocks/pipe.json new file mode 100644 index 00000000..eaaaff3c --- /dev/null +++ b/res/content/base/blocks/pipe.json @@ -0,0 +1,14 @@ +{ + "texture-faces": [ + "pipe_side", + "pipe_side", + "pipe_hole", + "pipe_hole", + "pipe_side", + "pipe_side" + ], + "model": "aabb", + "hitbox": [0.25, 0.0, 0.25, 0.5, 1.0, 0.5], + "light-passing": true, + "rotation": "pipe" +} diff --git a/res/content/base/package.json b/res/content/base/package.json index 943d64b5..5ba70b1f 100644 --- a/res/content/base/package.json +++ b/res/content/base/package.json @@ -22,6 +22,7 @@ "red_lamp", "green_lamp", "blue_lamp", - "pane" + "pane", + "pipe" ] } \ No newline at end of file diff --git a/res/textures/blocks/pipe_hole.png b/res/textures/blocks/pipe_hole.png new file mode 100644 index 0000000000000000000000000000000000000000..681a5ddf43ec763a9f061a9830a985222c05d760 GIT binary patch literal 6391 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 literal 0 HcmV?d00001 diff --git a/src/graphics/BlocksRenderer.cpp b/src/graphics/BlocksRenderer.cpp index c0579bc4..bbae1c8e 100644 --- a/src/graphics/BlocksRenderer.cpp +++ b/src/graphics/BlocksRenderer.cpp @@ -251,18 +251,20 @@ void BlocksRenderer::blockCubeShaded(const ivec3& icoord, coord += orient.fix; loff -= orient.fix; } + vec3 fX(X); + vec3 fY(Y); vec3 fZ(Z); vec3 local = offset.x*vec3(X)+offset.y*vec3(Y)+offset.z*-fZ; - face(coord, X, Y, Z, Z+loff, local-size.z*fZ, size.x, size.y, size.z, texfaces[5]); - face(coord+X, -X, Y, -Z, Z-Z-X+loff, local-size.z*fZ, size.x, size.y, 0.0f, texfaces[4]); + face(coord, X, Y, Z, Z+loff, local-size.z*fZ, size.x, size.y, size.z, texfaces[5]); // north ;;; + face(coord, -X, Y, -Z, Z-Z-X+loff, local-size.z*fZ+fX*size.x, size.x, size.y, 0.0f, texfaces[4]); // south ;;; - face(coord+Y, X, -Z, Y, Y-Y+loff, local, size.x, size.z, 0.0f, texfaces[3]); - face(coord+X, -X, -Z, -Y, -X-Y+loff, local, size.x, size.z, 0.0f, texfaces[2]); + face(coord+Y, X, -Z, Y, Y-Y+loff, local, size.x, size.z, 0.0f, texfaces[3]); // top ;;; + face(coord+X, -X, -Z, -Y, -X-Y+loff, local+size.x*fX-fX, size.x, size.z, 0.0f, texfaces[2]); // bottom ;;; - face(coord+X, -Z, Y, X, X-X+loff, local, size.z, size.y, 0.0f, texfaces[1]); - face(coord+Y, -Z, -Y, -X, -X-Y+loff, local, size.z, size.y, 0.0f, texfaces[0]); + face(coord+X, -Z, Y, X, X-X+loff, local+size.x*fX-fX, size.z, size.y, 0.0f, texfaces[1]); // west ;;; + face(coord+Y, -Z, -Y, -X, -X-Y+loff, local, size.z, size.y, 0.0f, texfaces[0]); // east ;;; } /* Fastest solid shaded blocks render method */