shadowmage45 / SSTULabs

Dev repository for testing/unfinished KSP parts/plugins/etc.
Other
62 stars 41 forks source link

ISDC engines recolor #625

Closed Jimbodiah closed 6 years ago

Jimbodiah commented 6 years ago

I thought I made a ticket for this, but can't find it...

Could the ulage engines on the ISDC als be recolored with the rest of the part?

shadowmage45 commented 6 years ago

Apparently this is going to be quite complicated, due to features added after the module was first developed. Namely the 'engine scale' and 'invert engine' features make this a right and proper PITA to implement.

Normally I would just wrap the whole thing in a ModelModule, do a couple lines of setup code, and it would all 'just work'. However those two features make that method not viable (as I can't simply define a quad of engines and rescale them with the fairing diameter; I have to treat each engine separately to account for if it is inverted, or at a non-standard scale).

So this is going to require a very massive codebase change in order to add this functionality. Pretty much going to have to rip up all of the existing code and start from scratch if I want to keep the 'invert engines' and 'engine scale' features.

Doable, yes, but is it really worth it?

taterkerman commented 6 years ago

Pick your battles.

shadowmage45 commented 6 years ago

Well the good news is if I do the rework of the code, it will also add fun features such as 'engine model selection', 'engine texture set', and potentially 'engine vertical offset'. Ohh, and an 'Engine' entry in the recoloring GUI for the part.

shadowmage45 commented 6 years ago

ISDC now supports both engine texture selection, texture recoloring, as well as engine -model- selection. The last bit is pretty huge, as it can allow for different ISDC setups with a click of a button.

Quad-engine screenshot101

Dual-engine screenshot102

A triple engine setup could be added, or even one that simply uses different models. The number of engines, and a few other params, are specified in the 'model definition', and drive various calculations to properly position the models and calc thrust/mass/resources/etc.

(still WIP of the rework, but I mostly have the feature implemented; lots of testing, and a bit of cleanup left; also still need to add actual texture-sets for the engines)

taterkerman commented 6 years ago

LOL.

"Could be a real PITA."

"After some poking around, more awesomeness."

shadowmage45 commented 6 years ago

Heh, yeah, but it really did require changing >25% of the code used by that module. And adding a bunch of new code. And a bunch of new configs.

I'm at 442 lines of changed code/configs, and haven't even added the actual texture sets yet. 356 of those changed lines were in the part-module code itself; the remainder were in the configs to setup the models.

Jimbodiah commented 6 years ago

Mage, I want to make sweet love to you, and I normally don't go for guys....

shadowmage45 commented 6 years ago

Standard (legacy) recoloring support: screenshot103

PBR recoloring support: screenshot104

Jimbodiah commented 6 years ago

Cloaking device?