EverestAPI / EverestAPI/Everest

Proposal: Deprecate __Ext classes

Open
#577 1 comment 0 reactions 0 assignees View on GitHub
*: breaking discussion rewrite
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.