-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Currently, we have the following Parch Ordering:
- Nodes with no operator ('insert') are loaded by the KSP GameDatabase first.
- Patches for modname values in NEEDS, BEFORE, AFTER that don't exist are removed.
- All patches with
:FIRSTare applied. - All patches without an ordering directive (
:FIRST,:BEFORE,:FOR,:AFTER,:LAST,:FINAL) are applied. - For each item in the Unicode-sorted list of modname values:
- All patches with
:BEFOREare applied - All patches with
:FORare applied - All patches with
:AFTERare applied
- All patches with
- All patches with
:LASTare applied in order - All patches with
:FINALare applied
On the https://github.com/net-lisias-ksp/MM-FORNEEDS-ProofOfConcept repository, a proposal for a better handling of :FOR was proposed, as well the use of a hypothetical :THIS clausule to make the handling easier.
So the :THIS[foobar] clausule would declares declares the presence of a Add'On (i.e. creates a tag on the Module Manager's set of installed add'ons), and the :FOR[foobar] clausule would loose the ability to declare them but will retain the temporal (ordering) semantic. So 3rd parties could use :FOR[foobar] to allow patching some add'on at the same time the target add'on, and so anyone using :LAST[foobar] would have these patches available avoiding the need to use crappy solutions as :LAST[zzzz-something] on the patch set.