Anyways, I'm taking the liberty to reprint here part of an email I just got from Ryder, because a) I don't have the answers, and b) because the features of his inquiry are features my mod will need, just as well.
They relate to modules out of which space stations will be built. For background, what Ryder first thought of is creating a set of connectable modules out of which space-stations can be assembled. This way, we could have virtually infinite variety in space stations by reusing the same basic modules in different ways. Here's the email text:
Not farfetched at all, I say:Ryder wrote: One thing I was thinking of- and maybe you could help me on this since
you have more of a handle on the whole coding thing- was setting up a
relation between the mod-station's physical design and its game
properties- so that, say, each storage unit the displayed model has
translates to fifty or a hundred units of cargo that the station can
hold, where maybe there's different storage unit types linked to
different general categories of cargo (i.e. pressurized structures for
biomatter, big tanks for fuels and liquids, etc.), that having a "bar"
module or a "shipyard" module determines whether one can access a bar or
shipyard when docked to that station, etc., that ultimately if mining
and exploration and all get implemented certain stations will have
specialized modules necessary for such specialized activities.
Ideally, ultimately I'd like to have a setup where not only does the
station's visual appearance and layout tell you a lot about its internal
composition and traits, but where environmental factors come into play;
where stations might slowly add on modules and get bigger the longer
that system is at peace and occupied by the same faction and the closer
it is to the factional homeworld, and where the kinds of modules
incorporating the station varies depending on what the environment of
that particular system calls for most- a lot of defense pods for a
system under regular raids, a station that stocks mostly raw materials
when most of the nearby worlds are mining-centric barren planets, etc.
Should give the stations a more 'real' feel as well as futher improving
the sense of variety the whole modular station thing is supposed to
introduce. What do you think, too farfetched?
Modules, I believe, would be sub-units; but they'd lack some properties of general units, and have some unique ones. A bit of polymorphism to deal with...
So, for example, a clinic/first-aid module has "storage volume?" which, to the extent that it is filled with respirators, surgical tables and whatnot, it rises in healing potential; not that you cannot store llamas in it, but llamas won't increase its healing potential.
One feature we'd need for this is a way to script unit types on a per system or per-gravitational well region, to avoid having a 50 megabyte units.csv, which can call for sub-units (modules) from a master units.csv. This local .csv should be run-time writable, so that modules could be added, moved, removed, damaged, destroyed, fixed, filled, emptied or repainted during the timespan of the game
Another feature it would need is integration of functional behavior in a unit (space station) of the services and outputs and capacities of sub-units. So, like in Ryder's example, if a station has a bar module, you can find a way to it; otherwise you don't. To dock to it, it must have a docking subunit with hatch type compatible with the docking hatches of your ship; otherwise you need to pull a connecting tube kind of docking. AI and economics should also be sub-unit aware.
Another feature needed is integrating inheritance in physics: A space station's mass and moment of inertia should be the sum of the masses and a three axis integration of the masses of sub-units, and change whenever a new subunit is added, or an old one removed, respectively.
I thought of posting this to Features Requests; but I'm not sure whether that forum is for engine feature requests, or VS mod features requests.
Just to clarify, at least speaking for myself, I'm putting these features requests here as a safe place in which to store them; no immediate need, and probably I'll let the features accumulate and then put them all together into a full specification, rather than suggest a piece-meal approach. IOW, food for thought, for now.