diff options
author | Auke Kok <sofar@foo-projects.org> | 2016-01-18 20:44:46 -0800 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2016-01-20 00:36:48 +0000 |
commit | 882a89d65aa78b89cfaf2af054d15cc4c94ad022 (patch) | |
tree | 3cdb76c54ef6b9964bc35b7f1490bf333ca42126 /src/nodedef.cpp | |
parent | 9f988e3b962389e10a7cf010fd4bf0f81d70e31a (diff) | |
download | minetest-882a89d65aa78b89cfaf2af054d15cc4c94ad022.tar.gz minetest-882a89d65aa78b89cfaf2af054d15cc4c94ad022.tar.bz2 minetest-882a89d65aa78b89cfaf2af054d15cc4c94ad022.zip |
Allow per-tiles culling.
Backface culling is enabled by default for all tiles, as this
is how the lua parser initializes each tiledef. We revert to
always using the value from the tiledef since it is always
read and serialized.
Mods that wish to enable culling for e.g. mesh nodes, now can
specify the following to enable backface culling:
tiles = {{ name = "tex.png", backface_culling = true }},
Note the double '{' and use of 'name' key here! In the same
fashion, backface_culling can be disabled for any node now.
I've tested this against the new door models and this properly
allows me to disable culling per node. I've also tested this
against my crops mod which uses mesh nodes where culling needs
to be disabled, and tested also with plantlike drawtype nodes
where we want this to continue to be disabled.
No default setting has changed. The defaults are just migrated
from nodedef.cpp to c_content.cpp.
Diffstat (limited to 'src/nodedef.cpp')
-rw-r--r-- | src/nodedef.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 2ebe1c131..0bcc00e47 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -843,12 +843,7 @@ void CNodeDefManager::updateTextures(IGameDef *gamedef, assert(f->liquid_type == LIQUID_SOURCE); if (opaque_water) f->alpha = 255; - if (new_style_water){ - f->solidness = 0; - } else { - f->solidness = 1; - f->backface_culling = false; - } + f->solidness = new_style_water ? 0 : 1; is_liquid = true; break; case NDT_FLOWINGLIQUID: @@ -899,17 +894,14 @@ void CNodeDefManager::updateTextures(IGameDef *gamedef, break; case NDT_PLANTLIKE: f->solidness = 0; - f->backface_culling = false; if (f->waving == 1) material_type = TILE_MATERIAL_WAVING_PLANTS; break; case NDT_FIRELIKE: - f->backface_culling = false; f->solidness = 0; break; case NDT_MESH: f->solidness = 0; - f->backface_culling = false; break; case NDT_TORCHLIKE: case NDT_SIGNLIKE: @@ -941,7 +933,7 @@ void CNodeDefManager::updateTextures(IGameDef *gamedef, // Tiles (fill in f->tiles[]) for (u16 j = 0; j < 6; j++) { fillTileAttribs(tsrc, &f->tiles[j], &tiledef[j], tile_shader[j], - use_normal_texture, f->backface_culling, f->alpha, material_type); + use_normal_texture, f->tiledef[j].backface_culling, f->alpha, material_type); } // Special tiles (fill in f->special_tiles[]) |