Skip to content

Commit

Permalink
Restore visual_scale support for nodeboxes (and allfaces) (#9906)
Browse files Browse the repository at this point in the history
  • Loading branch information
numberZero committed Jun 6, 2020
1 parent 36099ba commit e746607
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion doc/lua_api.txt
Expand Up @@ -6941,7 +6941,7 @@ Used by `minetest.register_node`.

visual_scale = 1.0,
-- Supported for drawtypes "plantlike", "signlike", "torchlike",
-- "firelike", "mesh".
-- "firelike", "mesh", "nodebox", "allfaces".
-- For plantlike and firelike, the image will start at the bottom of the
-- node. For torchlike, the image will start at the surface to which the
-- node "attaches". For the other drawtypes the image will be centered
Expand Down
11 changes: 10 additions & 1 deletion src/client/content_mapblock.cpp
Expand Up @@ -366,13 +366,22 @@ void MapblockMeshGenerator::generateCuboidTextureCoords(const aabb3f &box, f32 *
void MapblockMeshGenerator::drawAutoLightedCuboid(aabb3f box, const f32 *txc,
TileSpec *tiles, int tile_count)
{
bool scale = std::fabs(f->visual_scale - 1.0f) > 1e-3f;
f32 texture_coord_buf[24];
f32 dx1 = box.MinEdge.X;
f32 dy1 = box.MinEdge.Y;
f32 dz1 = box.MinEdge.Z;
f32 dx2 = box.MaxEdge.X;
f32 dy2 = box.MaxEdge.Y;
f32 dz2 = box.MaxEdge.Z;
if (scale) {
if (!txc) { // generate texture coords before scaling
generateCuboidTextureCoords(box, texture_coord_buf);
txc = texture_coord_buf;
}
box.MinEdge *= f->visual_scale;
box.MaxEdge *= f->visual_scale;
}
box.MinEdge += origin;
box.MaxEdge += origin;
if (!txc) {
Expand Down Expand Up @@ -1323,7 +1332,7 @@ void MapblockMeshGenerator::drawNodeboxNode()

std::vector<aabb3f> boxes;
n.getNodeBoxes(nodedef, &boxes, neighbors_set);
for (const auto &box : boxes)
for (auto &box : boxes)
drawAutoLightedCuboid(box, nullptr, tiles, 6);
}

Expand Down

0 comments on commit e746607

Please sign in to comment.