Sky Pilot wrote:Excuse me for being a complete bonehead on this (I'm NOT a software writer!), but could it be possible to create a small application that allows the user to select which add-ons he wants to load, and when he presses the commit button it re-writes the celestia.cfg file (and launches Celestia) to only load those add-ons that were specified in the application?
Yes in theory it is possible, but...The question goes far beyond this. The add-on manager as thought a long time ago should at least be able to allow the user to:
a) select which add-on to use at runtime even without restarting the Celestia program when a change is made;
b) browse, download and install the new add-on from the web repository (now Celestiamotherlode).
In my thoughts I went beyond this introducing the concepts of module and section.
You can consider the module as the name of the add-on aka the package aka a conventional name for the zip file.
You can consider the section as the argument aka the family of the objects included in the add-on.
The section has a type that can be: System, Scientific or Fictional.
So it will possible to have e.g. these kind of Sections:
- "Sun asteroid belt" - "Jupiter minor moons" - "Extrasolar planets" (Scientific) etc.
- "Star wars"-"Babylon5"-"Star trek" - "My personal universe" (Fictional) etc.
The add-on manager should be smart enough to allow to the user to enable-disable at runtime all the objects of the Section types Scientific or Fictional. Or enable-disable a single section or a single module.
To resume the whole thing, a module will contain object definitions, textures, scripts etc. The object definition files will contain sections names. Inside the sections there will be the objects
Code: Select all
File solarsys.ssc in module "Celestia 1.4.0 Default"
Section "Standard 1.4.0"
{
Type "System"
Planet "Mercury" "Sol"
{
Texture "mercury.*"
BumpMap "mercurybump.*"
BumpHeight 2.5
Radius 2440
...
Albedo 0.06
}
Planet "Venus" "Sol"
{
...
}
...
}
Etc. etc. etc.
This is why I think that it will be necessary to rewrite the data model and to break the backward compatibility.
The question involves the server side too, because the Celestiamotherlode must prepare some files with the resume of all the available add-on modules with the status (preliminary, under test, definitive, approved), the number of revision etc.
So the user should tell to the Celestia Add-on manager something like this: Dowload and install automatically all the new or revised and approved add-on modules that has scientific content.
The thing is not very difficult to do but requires a lot of coding time.