Converts our ASM in the project to Mixins, for ease of maintainability, and hopefully fixing up some compat.
Mixins and MixinExtras is being pulled from MixinBooter specifically.
A new Package has been created, that being gregtech.mixins and after all ASM has been converted to Mixins, I am planning on moving GregTechLoadingPlugin into this package.
Where applicable, I am just calling the existing Hooks class from the Mixin. Although this can be changed.
For debugging purposes during this conversion, I have the gradle.properties option enableCoreModDebug set to true. This should definitely be set to false before merging. For those interested, this option outputs all transformed classes into run/CLASSLOADER_TEMP, and can be used to compare the code transformed by our ASM and by our Mixins. This does not currently work for inner classes.
[ ] JEI Transformer: There is currently a Mixin present for replicating the JEI Transformer, although it needs to be tested to ensure that all information is shown in the tooltip, in the same place that it was previously.
[x] Concrete Powder Transformer: Works.
[ ] Layer Custom Head Visitor: Should work fine, Just needs verification (in game and in the debug outputs)
[ ] Special Armor Apply Transformer: Should work fine, just needs verification
[ ] Layer Armor Base Transformer: Should work, just needs verification
[ ] Region Render Cache Builder Transformer: Should work, needs verification
[ ] Render Chunk Transformer: Does not currently work I believe
[ ] Block Transformer: Should work, needs to be tested with and without CTM, and put in a separate Refmap, so we can queue it if CTM is not loaded
[ ] World Transformer: (This corresponds to the RenderGlobal Mixin) Should work fine, just needs verification
[ ] Model CTM Transformer: Needs Implementation
[ ] Abstract CTM Baked Model Transformer: Needs Implementation
[ ] Little Tile Transformer: Implemented, needs verification
[x] CCL Transformer: Works
[ ] NuclearCraft Transformer: Considering Removing these, as we broke compat more than what the existing ASM was fixing, so much so that we have to tell people to disable the compat right now
[ ] Render Item Transformer: Got the Lamps part done. Need to implement durability bars
[ ] Recipe Repair Transformer: Needs Verification
[ ] Damage Source Transformer: Implemented, was apparently causing issues though
[ ] The One Probe Transformer: Implemented, should work. For this one though, we need to check if we actually need this any more, especially after the rewrite of our machine/block harvest levels and tools, and the implementation of our tool classes
[ ] Minecraft Transformer: Implemented, work fine. It puts the text in a different place than it was with the ASM, which is a pretty minor thing that someone can work on if they want
[ ] Model Loader Registry Transformer: Implemented, needs verification
[ ] Enchantment Application Transformer: Needs Implementation, going to be somewhat hard
Potential Compatibility Issues
Should be no compat issues, if everything is working correctly
What
Converts our ASM in the project to Mixins, for ease of maintainability, and hopefully fixing up some compat.
Mixins and MixinExtras is being pulled from MixinBooter specifically.
A new Package has been created, that being
gregtech.mixins
and after all ASM has been converted to Mixins, I am planning on movingGregTechLoadingPlugin
into this package.Where applicable, I am just calling the existing
Hooks
class from the Mixin. Although this can be changed.For debugging purposes during this conversion, I have the gradle.properties option
enableCoreModDebug
set to true. This should definitely be set to false before merging. For those interested, this option outputs all transformed classes intorun/CLASSLOADER_TEMP
, and can be used to compare the code transformed by our ASM and by our Mixins. This does not currently work for inner classes.Potential Compatibility Issues
Should be no compat issues, if everything is working correctly