Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Principia's ModuleManager patches should have a :FOR[] clause #1685

Closed
eggrobin opened this issue Jan 19, 2018 · 2 comments
Closed

Principia's ModuleManager patches should have a :FOR[] clause #1685

eggrobin opened this issue Jan 19, 2018 · 2 comments
Assignees

Comments

@eggrobin
Copy link
Member

They are currently principia_gravity_model:Needs[RealSolarSystem]; they should have a :FOR[Principia] clause so that modders can modify them with an :AFTER[Principia] clause. They should probably also use the % operator, so that modders who add other bodies without modifying the existing ones do not need an :AFTER clause. See https://github.com/mockingbirdnest/Principia/wiki/Principia-configuration-files#annex-a-note-on-modulemanager.

@eggrobin eggrobin self-assigned this Jan 19, 2018
@7ranceaddic7
Copy link

I've been following this for a while, but quite. In the annex, you say:
@principia_initial_state:FOR[AdditionalRealBodies]:NEEDS[RealSolarSystem]:FINAL

The presence of the :FOR[] and :FINAL conditionals will throw errors. The latest release of MM now reveals these, previously silent, errors. Only the first conditional (:FOR[]) will be processed while any others (:FINAL) after will cause the error and be ignored.

Additionally, your :AFTER[Principia], to be used by other modders, will be processed because of the existence of a Principia folder or DLL and won't be affected by the absence of :FOR[Principia].

Sorry, something went wrong.

@eggrobin
Copy link
Member Author

Ah, right, FIRST, BEFORE[], FOR[], AFTER[], and FINAL are mutually exclusive; further, they qualify patches only.
Our principia_initial_state:NEEDS[RealSolarSystem] and principia_gravity_model:NEEDS[RealSolarSystem] nodes are not patches, merely nodes conditioned on a NEEDS[] clause, so if RealSolarSystem is present, they will be added as part of CheckNeeds, before any of the patch passes run; there is no need for patchers to specify ordering.

@7ranceaddic7, Note that FIRST, FOR[], and FINAL are not conditionals, merely ordering directives: a FOR will cause a (non-DLL) mod pass to be added by ModuleManager, and the patch will (unconditionally) run there.
Also note that the DLL called principia is not a managed DLL, and will not be seen by ModuleManager (ksp_plugin_adapter will, but we don't want people to depend on that name). The "mods by directory" feature will indeed find "Principia"; however since we have no patches there is no point for other modders in running in any of our passes. There could be some use for a :NEEDS[Principia] clause, if modders wish to make Principia-only adjustments to their mods.

I have updated the documentation to reflect all of the above; our configurations are fine as they are.

Sorry, something went wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants