This definitely sounds like a much more powerful approach than simply changing the condition_gen_data.csv header row as I originally proposed. It would give modders the ability to truly customize the conditions of some of their more unique planet types.
As for the problematic custom lava/cryovolcanic planets, I believe this approach can be greatly simplified since all you're trying to do is give them the exact same conditions as the original lava/cryovolcanic worlds. If I'm understanding correctly, you would still use the cat_lava/cat_cryovolcanic category types in planet_gen_data.csv as you did originally, and then do something like this in onApplicationLoad():
float value = 0f;
for (Object o : Global.getSettings().getAllSpecs(CategoryGenDataSpec.class)) {
ConditionGenDataSpec spec = (ConditionGenDataSpec) o;
if (spec.hasMultiplier("cryovolcanic"))
{
value = spec.getMultiplier("cyrovolcanic");
spec.getMultipliers().put("fds_cryovolcanic", value);
}
if (spec.hasMultiplier("lava"))
{
value = spec.getMultiplier("lava");
spec.getMultipliers().put("fds_lava", value);
}
}
Theoretically, this should give your custom planets the exact same chance of getting a specific condition that their vanilla equivalent has.
Disclaimer - I am "coding" this in the forum post editor (which makes for a remarkably bad IDE), so it may require some tweaking before it will compile...
