Skip to content

Fix broken crafting screens and Pattern Provider in forge/1.20.1#63

Open
liquidcatmofu wants to merge 3 commits intoko-lja:forge/1.20.1from
liquidcatmofu:fix/autocraft-gui
Open

Fix broken crafting screens and Pattern Provider in forge/1.20.1#63
liquidcatmofu wants to merge 3 commits intoko-lja:forge/1.20.1from
liquidcatmofu:fix/autocraft-gui

Conversation

@liquidcatmofu
Copy link

Summary

Fixed crafting screens and Pattern Provider functionality that were broken in the latest commits on the forge/1.20.1 branch.

Background

The issue affects both the published CurseForge version 1.3.3 and the latest development version, preventing users from accessing critical crafting features.
#45 #46 #60

Changes Made

  • Changed Mixin injection timing from @At("TAIL") to @At("RETURN") for proper initialization
  • Added null checks in Pattern Provider Menu to prevent crashes
  • Maintained custom UI for Terminal-related screens

Fixed Mixins

  • MixinPatternProviderMenu
  • MixinPatternProviderScreen
  • MixinProcessingEncodingPanel

Testing

All core functionalities have been tested and verified:
✅ Crafting functionality (Next button, CPU, Crafting Status)
✅ Pattern Provider functionality (including Blocking Mode)
✅ Terminal functionality (including multiplier buttons)

Known Limitations

Crafting CPU Custom UI: The custom UI for the Crafting CPU screen has been disabled in this fix. During investigation, even the standard AE2 screen definition failed to load when applied through the custom style system. This appears to be a deeper compatibility issue that requires further investigation. The CPU screen now uses the standard AE2 layout, and all functionality remains intact.

Technical Details

The issue was caused by incorrect Mixin injection points. Using @At("TAIL") injected code before parent class initialization completed, while @At("RETURN") ensures the entire constructor finishes before our code runs. This is critical for GUI components that depend on parent class setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant