MOARdV / AvionicsSystems

MOARdV's Avionics Systems for Kerbal Space Program - a new generation of IVA enhancement.
Other
52 stars 26 forks source link

Interface with WBIVTOLManager #169

Closed MOARdV closed 6 years ago

MOARdV commented 6 years ago

Used on the Kerbal Flying Saucer currently under development.

Basic hover controls should be easy to interface with, from the looks of it.

MOARdV commented 6 years ago

Now that I've looked into this a bit more, I think it makes more sense to have the basic flying saucer controls under fs to toggle the Flying Saucer specific parts, and a separate VTOL controller to interface with the WBIVTOLManager - the latter would then also be able to support VTOL spaceplanes or what-have-you.

MOARdV commented 6 years ago

More redesigning...

VTOL manager is definitely viable, and I've got it working now.

Gravitic engines are descendants of the stock ModuleEngine, so I can notionally just use the stock engine controls for them.

The resource converters (Fusion Reactor and Gravity Wave Generator) are both descendants of ModuleResourceConverter. Instead of hard-coding special cases in MAS for these converters, I should add a general-purpose resource converter category system, where a MASFlightComputer can opt-in to particular converters, like "Assign resource converters that output resource 'x' to group 'n'". I'll write that up as a new feature.

MOARdV commented 6 years ago

Still need to add tilt-rotor support, and query methods to determine when the submodules are installed and available (which requires code changes in WBIVTOLManager).

EDIT: Oh, yeah, and the AirPark manager module.

MOARdV commented 6 years ago

Remaining feature categories are supported, other than the custom controller, which will require a bespoke interface per custom controller, since the VTOL manager doesn't know anything about the custom controller other than it exists (it's custom, after all). The WBIGraviticEngine Crazy Mode is a custom controller type.

The other feature that would be nice for MAS is a way to ask the VTOL manager which features are supported on a given vessel - not every one has a rotation controller, for instance. That will require tweaks to KerbalActuators to expose the query methods. I can fake it with the rotation controller by returning 'true' if either CanRotateMax or CanRotateMin return true, but the other ones don't have a capabilities query. I could fork the code and write the change myself, I suppose.

And one last-last feature - currently, there's no query for the current rotation controller position. I can increase / decrease the value, but I can't report it. I'll see if that's easy to add to KerbalActuators.

MOARdV commented 6 years ago

I think I've got the WBI VTOL Manager covered, now. There are some other Kerbal Actuator features that I may tackle at a later time (such as remote arm manipulation).