@@ -3022,13 +3022,16 @@ private NumericVariableEvaluator AngleOfAttack()
30223022 {
30233023 Func < double > accessor = null ;
30243024
3025- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetAngleOfAttack" , typeof ( Func < double > ) ) ;
3026- if ( accessor != null )
3025+ if ( JSIFAR . farFound )
30273026 {
3028- double value = accessor ( ) ;
3029- if ( double . IsNaN ( value ) )
3027+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetAngleOfAttack" , typeof ( Func < double > ) ) ;
3028+ if ( accessor != null )
30303029 {
3031- accessor = null ;
3030+ double value = accessor ( ) ;
3031+ if ( double . IsNaN ( value ) )
3032+ {
3033+ accessor = null ;
3034+ }
30323035 }
30333036 }
30343037
@@ -3049,20 +3052,28 @@ private NumericVariableEvaluator DeltaV()
30493052 {
30503053 Func < double > accessor = null ;
30513054
3052- accessor = ( Func < double > ) GetInternalMethod ( "JSIMechJeb:GetDeltaV" , typeof ( Func < double > ) ) ;
3053- if ( accessor != null )
3055+ if ( JSIMechJeb . IsInstalled )
30543056 {
3055- double value = accessor ( ) ;
3056- if ( double . IsNaN ( value ) )
3057+ accessor = ( Func < double > ) GetInternalMethod ( "JSIMechJeb:GetDeltaV" , typeof ( Func < double > ) ) ;
3058+ if ( accessor != null )
30573059 {
3058- accessor = null ;
3060+ double value = accessor ( ) ;
3061+ if ( double . IsNaN ( value ) )
3062+ {
3063+ accessor = null ;
3064+ }
30593065 }
30603066 }
30613067
30623068 if ( accessor == null )
30633069 {
30643070 return ( RPMVesselComputer comp ) =>
30653071 {
3072+ // TODO: use the stock deltav calculator instead
3073+ if ( comp ? . vessel ? . VesselDeltaV != null )
3074+ {
3075+ return comp . vessel . VesselDeltaV . TotalDeltaVActual ;
3076+ }
30663077 return ( comp . actualAverageIsp * RPMGlobals . gee ) * Math . Log ( comp . totalShipWetMass / ( comp . totalShipWetMass - comp . resources . PropellantMass ( false ) ) ) ;
30673078 } ;
30683079 }
@@ -3090,6 +3101,10 @@ private NumericVariableEvaluator DeltaVStage()
30903101 {
30913102 return ( RPMVesselComputer comp ) =>
30923103 {
3104+ if ( comp ? . vessel . VesselDeltaV != null )
3105+ {
3106+ return comp . vessel . VesselDeltaV . GetStage ( comp . vessel . currentStage ) . deltaVActual ;
3107+ }
30933108 return ( comp . actualAverageIsp * RPMGlobals . gee ) * Math . Log ( comp . totalShipWetMass / ( comp . totalShipWetMass - comp . resources . PropellantMass ( true ) ) ) ;
30943109 } ;
30953110 }
@@ -3103,13 +3118,16 @@ private NumericVariableEvaluator DragAccel()
31033118 {
31043119 Func < double > accessor = null ;
31053120
3106- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDragForce" , typeof ( Func < double > ) ) ;
3107- if ( accessor != null )
3121+ if ( JSIFAR . farFound )
31083122 {
3109- double value = accessor ( ) ;
3110- if ( double . IsNaN ( value ) )
3123+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDragForce" , typeof ( Func < double > ) ) ;
3124+ if ( accessor != null )
31113125 {
3112- accessor = null ;
3126+ double value = accessor ( ) ;
3127+ if ( double . IsNaN ( value ) )
3128+ {
3129+ accessor = null ;
3130+ }
31133131 }
31143132 }
31153133
@@ -3133,13 +3151,16 @@ private NumericVariableEvaluator DragForce()
31333151 {
31343152 Func < double > accessor = null ;
31353153
3136- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDragForce" , typeof ( Func < double > ) ) ;
3137- if ( accessor != null )
3154+ if ( JSIFAR . farFound )
31383155 {
3139- double value = accessor ( ) ;
3140- if ( double . IsNaN ( value ) )
3156+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDragForce" , typeof ( Func < double > ) ) ;
3157+ if ( accessor != null )
31413158 {
3142- accessor = null ;
3159+ double value = accessor ( ) ;
3160+ if ( double . IsNaN ( value ) )
3161+ {
3162+ accessor = null ;
3163+ }
31433164 }
31443165 }
31453166
@@ -3160,13 +3181,16 @@ private NumericVariableEvaluator DynamicPressure()
31603181 {
31613182 Func < double > accessor = null ;
31623183
3163- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDynamicPressure" , typeof ( Func < double > ) ) ;
3164- if ( accessor != null )
3184+ if ( JSIFAR . farFound )
31653185 {
3166- double value = accessor ( ) ;
3167- if ( double . IsNaN ( value ) )
3186+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetDynamicPressure" , typeof ( Func < double > ) ) ;
3187+ if ( accessor != null )
31683188 {
3169- accessor = null ;
3189+ double value = accessor ( ) ;
3190+ if ( double . IsNaN ( value ) )
3191+ {
3192+ accessor = null ;
3193+ }
31703194 }
31713195 }
31723196
@@ -3224,13 +3248,16 @@ private NumericVariableEvaluator LiftAccel()
32243248 {
32253249 Func < double > accessor = null ;
32263250
3227- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetLiftForce" , typeof ( Func < double > ) ) ;
3228- if ( accessor != null )
3251+ if ( JSIFAR . farFound )
32293252 {
3230- double value = accessor ( ) ;
3231- if ( double . IsNaN ( value ) )
3253+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetLiftForce" , typeof ( Func < double > ) ) ;
3254+ if ( accessor != null )
32323255 {
3233- accessor = null ;
3256+ double value = accessor ( ) ;
3257+ if ( double . IsNaN ( value ) )
3258+ {
3259+ accessor = null ;
3260+ }
32343261 }
32353262 }
32363263
@@ -3254,13 +3281,16 @@ private NumericVariableEvaluator LiftForce()
32543281 {
32553282 Func < double > accessor = null ;
32563283
3257- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetLiftForce" , typeof ( Func < double > ) ) ;
3258- if ( accessor != null )
3284+ if ( JSIFAR . farFound )
32593285 {
3260- double value = accessor ( ) ;
3261- if ( double . IsNaN ( value ) )
3286+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetLiftForce" , typeof ( Func < double > ) ) ;
3287+ if ( accessor != null )
32623288 {
3263- accessor = null ;
3289+ double value = accessor ( ) ;
3290+ if ( double . IsNaN ( value ) )
3291+ {
3292+ accessor = null ;
3293+ }
32643294 }
32653295 }
32663296
@@ -3281,7 +3311,11 @@ private NumericVariableEvaluator MechJebAvailable()
32813311 {
32823312 Func < bool > accessor = null ;
32833313
3284- accessor = ( Func < bool > ) GetInternalMethod ( "JSIMechJeb:GetMechJebAvailable" , typeof ( Func < bool > ) ) ;
3314+ if ( JSIMechJeb . IsInstalled )
3315+ {
3316+ accessor = ( Func < bool > ) GetInternalMethod ( "JSIMechJeb:GetMechJebAvailable" , typeof ( Func < bool > ) ) ;
3317+ }
3318+
32853319 if ( accessor == null )
32863320 {
32873321 return ( RPMVesselComputer comp ) => { return 0 ; } ;
@@ -3296,13 +3330,16 @@ private NumericVariableEvaluator SideSlip()
32963330 {
32973331 Func < double > accessor = null ;
32983332
3299- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetSideSlip" , typeof ( Func < double > ) ) ;
3300- if ( accessor != null )
3333+ if ( JSIFAR . farFound )
33013334 {
3302- double value = accessor ( ) ;
3303- if ( double . IsNaN ( value ) )
3335+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetSideSlip" , typeof ( Func < double > ) ) ;
3336+ if ( accessor != null )
33043337 {
3305- accessor = null ;
3338+ double value = accessor ( ) ;
3339+ if ( double . IsNaN ( value ) )
3340+ {
3341+ accessor = null ;
3342+ }
33063343 }
33073344 }
33083345
@@ -3325,17 +3362,20 @@ internal double TerminalVelocity(RPMVesselComputer comp)
33253362 {
33263363 Func < double > accessor = null ;
33273364
3328- accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetTerminalVelocity" , typeof ( Func < double > ) ) ;
3329- if ( accessor != null )
3365+ if ( JSIFAR . farFound )
33303366 {
3331- double value = accessor ( ) ;
3332- if ( value < 0.0 )
3367+ accessor = ( Func < double > ) GetInternalMethod ( "JSIFAR:GetTerminalVelocity" , typeof ( Func < double > ) ) ;
3368+ if ( accessor != null )
33333369 {
3334- accessor = null ;
3370+ double value = accessor ( ) ;
3371+ if ( value < 0.0 )
3372+ {
3373+ accessor = null ;
3374+ }
33353375 }
33363376 }
33373377
3338- if ( accessor == null )
3378+ if ( accessor == null && JSIMechJeb . IsInstalled )
33393379 {
33403380 accessor = ( Func < double > ) GetInternalMethod ( "JSIMechJeb:GetTerminalVelocity" , typeof ( Func < double > ) ) ;
33413381 double value = accessor ( ) ;
0 commit comments