Skip to content

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

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

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
Copy Markdown

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.

@ko-lja
Copy link
Copy Markdown
Owner

ko-lja commented Mar 7, 2026

Sorry for the late reply, since it seems that these features are kinda brittle, and either work or don't, with no actual reason for it, i have been making all the widgets guarded, ie if they don't exist the screen will just open without and it'll show a warning at the top of the screen telling you that you're missing some, included with this will be a resource pack which contains all of the widgets, in case it did not work normally

@ko-lja ko-lja closed this Mar 7, 2026
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.

2 participants