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
:FIRST are 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
:BEFORE are applied
- All patches with
:FOR are applied
- All patches with
:AFTER are applied
- All patches with
:LAST are applied in order
- All patches with
:FINAL are 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.
Currently, we have the following Parch Ordering:
:FIRSTare applied.:FIRST,:BEFORE,:FOR,:AFTER,:LAST,:FINAL) are applied.:BEFOREare applied:FORare applied:AFTERare applied:LASTare applied in order:FINALare appliedOn the https://github.com/net-lisias-ksp/MM-FORNEEDS-ProofOfConcept repository, a proposal for a better handling of
:FORwas proposed, as well the use of a hypothetical:THISclausule 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.