1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-22 17:18:39 +00:00

Refactor texture overrides and add new features (#9600)

* Refactor texture overrides, and add new features:

- Texture overrides can support multiple targets in one line
- Texture override files can have comment lines
- Item images/wield images can be overridden

* Formatting changes

* Address soime feedback

- Pass vectors by const reference
- Log syntax errors as warnings
- Remove 'C' prefix from TextureOverrideSource

* Simplify override target checks with an inline helper function

* make linter happy

* Apply feedback suggestions

Co-Authored-By: rubenwardy <rw@rubenwardy.com>

* Remove remaining != 0 checks

* Update copyright notice

Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: rubenwardy <rw@rubenwardy.com>
This commit is contained in:
Hugues Ross 2020-04-14 14:41:29 -04:00 committed by GitHub
parent 7e21b3cd48
commit 5cf6318117
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 285 additions and 71 deletions

View file

@ -33,6 +33,7 @@ class Client;
#include "itemgroup.h"
#include "sound.h" // SimpleSoundSpec
#include "constants.h" // BS
#include "texture_override.h" // TextureOverride
#include "tileanimation.h"
// PROTOCOL_VERSION >= 37
@ -583,15 +584,12 @@ public:
void updateAliases(IItemDefManager *idef);
/*!
* Reads the used texture pack's override.txt, and replaces the textures
* of registered nodes with the ones specified there.
* Replaces the textures of registered nodes with the ones specified in
* the texturepack's override.txt file
*
* Format of the input file: in each line
* `node_name top|bottom|right|left|front|back|all|*|sides texture_name.png`
*
* @param override_filepath path to 'texturepack/override.txt'
* @param overrides the texture overrides
*/
void applyTextureOverrides(const std::string &override_filepath);
void applyTextureOverrides(const std::vector<TextureOverride> &overrides);
/*!
* Only the client uses this. Loads textures and shaders required for