EverestAPI / EverestAPI/Everest
Proposal: Deprecate __Ext classes
- Dominant language
- C#
- Stars
- 516
- Forks
- 106
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 5
Description
"__Ext" classes (such as [`AreaDataExt`](https://github.com/EverestAPI/Everest/blob/dev/Celeste.Mod.mm/Patches/AreaData.cs#L472-L595)) were originally created because mods were built using Everest as a project reference, and so were unable to access fields or methods added by Everest in `patch_` classes.
For the most part they are no longer needed, since almost all mods are now built against a patched `Celeste.exe`.
I propose that we explicitly deprecate the use of these classes, instead favoring adding members directly to the `patch_` classes. Existing methods that add an API not already available in the `patch_` class can be re-implemented within it, and the "__Ext" classes marked as obsolete.
In the future, most "__Ext" classes could be stubbed out or removed entirely and existing references re-linked to the associated `patch_` class members.
"__Ext" classes that explicitly extend the vanilla functionality, such as [`TextMenuExt`](https://github.com/EverestAPI/Everest/blob/dev/Celeste.Mod.mm/Mod/UI/TextMenuExt.cs) would be kept.
Contributor guide
Assessment
This issue has not been assessed yet.