With the way OXP loading works, that's not too difficult. The loading manager gets an ordered list of directories containing OXP data. It then just uses that list whenever it comes up. All you'd need to do is push that list to a sort function once you've loaded the requires.plist information, and make sure you process requires.plist first.submersible wrote:and of course that raises the question of how to stamp OXPs with that information without fully loading them first.
(Writing the sort function, dependency management, loop detection, etc. would be more difficult. You'd also need a "provides" block in requires.plist so that Oolite knew which OXP folder "Cabal_Common_Comms" was, and then probably the various niceties package managers have such as >= dependencies, conflicts, etc.)
Most dependencies between OXPs are still load-order independent (or in JS have the self-deleting startUp trick), which may be why it doesn't come up much.submersible wrote:I wonder if it is important to anyone other than me.
Hmm, that inspires a possible solution for this case: include a small worldscript in v2, which checks on
startUp
and on playerEnteredNewGalaxy
if System.infoForSystem(0,7).texture
is the patched version, and sets it to it if not.