RFC: Embed non-standard skin parts in json skin files and load embedded parts #3142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See #2271.
Skin saving
Embed the png files of non-standard skin parts into the json skin files as base64 encoded strings when saving the skin.
Standard (
SKINFLAG_STANDARD
) means that the skin part was loaded from the save path (the first path listed instorage.cfg
).Skin loading
Skin parts are first loaded based on the filename. If the filename search fails and embedded data is present, skin parts are decoded from the embedded data.
Base64 implementation
PNG loading
LoadPNG
method to load a png file from memory using pnglite, by implementing a pnglite read callback that operates on a memory buffer.Open issues / Questions