Kept here to replace TODO.md in the repo. Items marked "(?)" are still under consideration.
Emergency changes
Fabric Loader v0.12.0 introduces a massive refactor on mod loading mechanics, which breaks ThatOrThis completely. A rewrite needs to be done before it's too late. As the rewrite will break compatibility with Fabric Loader v0.11.x, support for these versions will be dropped on ThatOrThis v0.3.0.
[x] Internals rework due to Fabric Loader's new mod resolution algo based on "biases" (FabricMC/fabric-loader#461) (commit de94067)
What if ThatOrThis found a mod with higher biases than the currently loaded one?
[x] Refactor FabricInternals to keep only interfacing code and move inner classes to a new package (commit de94067)
Stuffs to a better & cleaner config schema: (Include in v0.3.0?)
[ ] Improve config schema robustness by allowing optional fields to be unset (Not a easy thing to do with Gson)
[ ] Predicates for rules/options? (#21 has a brilliant idea)
[ ] Add tooltips to GENERATED rules' buttons (text from modmenu.descriptionTranslation.XXX? Format?)
[ ] Customizable/fixed namespace for ruleset translation (make text fields optional in the process)
[ ] Recover from mod conflicts ("safe mode"/load default/last-good choices)
[ ] Online tool for v0.2.x~v0.3.0 transition
[x] Show filtered out mods in debug log (commit 216b4ba)
[x] Check for LanguageAdapters and GrossFabricHacks entrypoints on injecting a mod, and if found, issue a non-fatal error (LanguageAdapter found in "xxx-language-support"! Expect it to break)
[x] (Experimental) support on loading LanguageAdapter mods (commit e6c2361)
[ ] Mark each additional mod's parent as ThatOrThis (or a dummy mod like "Mods loaded by ThatOrThis") for simplifying the mod menu (Set CustomData modmenu.parent; need more reflection hacks)
Maybe inject an non-existent container mod in the discover phase?
[ ] (?) Download mods from CurseForge/Modrinth/Maven/Link (FabricMC/fabric-loader#282)
Kept here to replace
TODO.md
in the repo. Items marked "(?)" are still under consideration.Emergency changesFabric Loader v0.12.0 introduces a massive refactor on mod loading mechanics, which breaks ThatOrThis completely. A rewrite needs to be done before it's too late. As the rewrite will break compatibility with Fabric Loader v0.11.x, support for these versions will be dropped on ThatOrThis v0.3.0.
FabricInternals
to keep only interfacing code and move inner classes to a new package (commit de94067)Stuffs to a better & cleaner config schema: (Include in v0.3.0?)
GENERATED
rules' buttons (text frommodmenu.descriptionTranslation.XXX
? Format?)Check forLanguageAdapter
s and GrossFabricHacks entrypoints on injecting a mod, and if found, issue a non-fatal error (LanguageAdapter found in "xxx-language-support"! Expect it to break
)modmenu.parent
; need more reflection hacks)ArgumentModCandidateFinder
(FabricMC/fabric-loader#470)@xxx.xxx
hack with JSON-based text (Text net.minecraft.text.Text.Serializer.fromJson(String)
)RuleHolder
to be like a container, similar toChoiceHolder
? (Good for consistency but otherwise unnecessary for now)disabled
intoChoiceHolder
(Not possible for now due toMap<>
inheritance, but should be done)CyclingButtonWidget
)