summaryrefslogtreecommitdiff
path: root/src/nodedef.cpp
diff options
context:
space:
mode:
authorHugues Ross <hugues.ross@gmail.com>2020-08-04 14:12:47 -0400
committerGitHub <noreply@github.com>2020-08-04 20:12:47 +0200
commit93ecc589bc49a80187705f6e06df23a71263d3d7 (patch)
treeffb4cacc13843f2b7ef7cb5fcc192c0dfb3816d4 /src/nodedef.cpp
parentd22fd6fc348ecf393f535c9b172410f4a82a2d52 (diff)
downloadminetest-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.cpp21
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;
}
}