tutorial:mixin_introduction
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tutorial:mixin_introduction [2025/10/06 02:06] – Move decoration-related footnote to parentheses, add recommendation toward MCDev plugin. Misc. rewordings trying to be more accurate to functionality. gauntrecluse | tutorial:mixin_introduction [2025/10/06 03:03] (current) – misc. rephrasings, replaced itemized list with table, add mention of MCDev gauntrecluse | ||
---|---|---|---|
Line 8: | Line 8: | ||
Mixin is a complex subsystem which merges a mod's Mixin " | Mixin is a complex subsystem which merges a mod's Mixin " | ||
((Mixin classes are not classes in the same way as " | ((Mixin classes are not classes in the same way as " | ||
- | into the targeted classes' | + | into the targeted classes' |
- | It is not recommended to try and learn how Mixin works or how to use it without having some notion of what Bytecode | + | It is not recommended to try and learn how Mixin works or how to use it without having some notion of what Java bytecode |
Similarly, Mixin and this documentation expects the user to already be familiar with [[tutorial: | Similarly, Mixin and this documentation expects the user to already be familiar with [[tutorial: | ||
It is recommended to leverage the [[https:// | It is recommended to leverage the [[https:// | ||
Line 18: | Line 18: | ||
There are different tools Mixin and MixinExtras | There are different tools Mixin and MixinExtras | ||
((Since Fabric Loader 0.15, MixinExtras is bundled with Fabric. Since Loader version 0.17.0, MixinExtras major version 0.5.0 is included, and allows access to [[https:// | ((Since Fabric Loader 0.15, MixinExtras is bundled with Fabric. Since Loader version 0.17.0, MixinExtras major version 0.5.0 is included, and allows access to [[https:// | ||
- | provide for modifying source code. Those tools are usable by the users in the form of Java annotations, | + | provide for modifying source code. Those tools are usable by the users in the form of Java annotations, |
+ | |||
+ | Here is a cursory | ||
FIXME //There ought to be dedicated pages going more in depth about the different tools annotations later on. This segment as it is edited should be kept to a cursory overview of Mixin(Extras) features.// | FIXME //There ought to be dedicated pages going more in depth about the different tools annotations later on. This segment as it is edited should be kept to a cursory overview of Mixin(Extras) features.// | ||
^ Feature ^ Overview ^ Notes ^ | ^ Feature ^ Overview ^ Notes ^ | ||
- | | | | | | + | | '' |
- | | | | | | + | | Merging | Mixin merges |
- | | | | | | + | | Injectors | Methods and a decorating annotation |
- | | | | | | + | | Redirectors/ |
- | + | | Overwrites | Done via '' | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | * The '' | + | |
- | * Injector | + | |
- | * Redirector Mixin annotations refers to annotations that merge the handler method and replace the targeted injection point with a callback to your handler method. Think of it as overwriting what you targeted and replacing it with a call to the decorated handler method. Whilst a name for them is also Redirect Injectors((As per [[https:// | + | |
- | * Overwriting, | + | |
- | * One of Mixin' | + | |
//For more complete and thorough information on Mixin functionality, | //For more complete and thorough information on Mixin functionality, | ||
- | The Fabric Wiki offers several articles that provide practical examples and explanations of some areas of the Mixin and MixinExtras | + | The Fabric Wiki offers several articles that provide practical examples and explanations of some areas of Mixin and MixinExtras: |
* [[tutorial: | * [[tutorial: | ||
* [[tutorial: | * [[tutorial: |
tutorial/mixin_introduction.1759716393.txt.gz · Last modified: 2025/10/06 02:06 by gauntrecluse