Only call reinitialize lifecycle methods on modules that need it (those where not doing so would cause the resource to become unidentifiable)
Listen for OnPartModelChanged event to reinitialize model
Ensure that reinitialization happens at the end of a switch cycle, not during it
Send ModuleDataChanged to modules that have had their data changed
Include two attributes in the event details, requestNotifyFARToRevoxelize and requestRecalculateDragCubes, which can be used to request FAR/drag cubes updates at the end of the cycle
Transform move/rotation/scale now affect drag cubes/FAR
Do aero updates in OnStartFinished
Eliminates need for special logic for root part in flight
Eliminates last part logic
Send/listen for DragCubesWereRecalculated and FarWasNotifiedToRevoxelize to make sure actions are only done once per cycle
OnPartModelChanged
event to reinitialize modelModuleDataChanged
to modules that have had their data changedrequestNotifyFARToRevoxelize
andrequestRecalculateDragCubes
, which can be used to request FAR/drag cubes updates at the end of the cycleOnStartFinished
DragCubesWereRecalculated
andFarWasNotifiedToRevoxelize
to make sure actions are only done once per cycle