diff options
author | Hugues Ross <hugues.ross@gmail.com> | 2020-08-04 14:12:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-04 20:12:47 +0200 |
commit | 93ecc589bc49a80187705f6e06df23a71263d3d7 (patch) | |
tree | ffb4cacc13843f2b7ef7cb5fcc192c0dfb3816d4 /src/nodedef.cpp | |
parent | d22fd6fc348ecf393f535c9b172410f4a82a2d52 (diff) | |
download | minetest-93ecc589bc49a80187705f6e06df23a71263d3d7.tar.gz minetest-93ecc589bc49a80187705f6e06df23a71263d3d7.tar.bz2 minetest-93ecc589bc49a80187705f6e06df23a71263d3d7.zip |
Implement override.txt support for special tiles (#10140)
Add override targets for all special_tiles entries in node definitions, allowing texture packs to replace these textures. This makes overrides work properly with a variety of drawtypes.
The targets are named special1 through special6, covering the the current length of the special_tiles array.
Diffstat (limited to 'src/nodedef.cpp')
-rw-r--r-- | src/nodedef.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index e5cd2c2a7..82c4581fa 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -1337,6 +1337,7 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o ContentFeatures &nodedef = m_content_features[id]; + // Override tiles if (texture_override.hasTarget(OverrideTarget::TOP)) nodedef.tiledef[0].name = texture_override.texture; @@ -1354,6 +1355,26 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o if (texture_override.hasTarget(OverrideTarget::FRONT)) nodedef.tiledef[5].name = texture_override.texture; + + + // Override special tiles, if applicable + if (texture_override.hasTarget(OverrideTarget::SPECIAL_1)) + nodedef.tiledef_special[0].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_2)) + nodedef.tiledef_special[1].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_3)) + nodedef.tiledef_special[2].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_4)) + nodedef.tiledef_special[3].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_5)) + nodedef.tiledef_special[4].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_6)) + nodedef.tiledef_special[5].name = texture_override.texture; } } |