Reintroduce BeforeBake*
and AfterBake*
model modifiers
#4320
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.
This pull request effectively reverts 2424258 and adds some minor improvements, including a fix for #4310 and documentation improvements.
The decision to reintroduce these events was made due to the following reasons.
OnLoad*
events run. While such mods can still use theOnLoad*
events to accomplish their goal, it requires wrapping the unbaked model unconditionally and doing the real wrapping withinUnbakedModel#bake
orGroupableModel#bake
. This pollutes the vanilla code path with model wrappers even when it's not necessary and can increase the amount of allocations.Additionally, such mods cannot benefit from two of the three main reasons previously used as the basis for the removal of the
*Bake*
events (those being the one related to model resolution and the one related to block model groups).One specific mod for this reason is Continuity, which only wraps models based on which sprites are present in the atlas. Model loading and atlas loading/stitching happen concurrently, but model baking happens after both.