Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use resultingThrust instead of finalThrust for active engine calculations #140

Open
wants to merge 1 commit into
base: master
from

Conversation

Projects
None yet
1 participant
@amakinen
Copy link

commented Nov 27, 2017

resultingThrust seems to be a temporary intermediate value in stock ModuleEngines. It is only set by RequiredPropellantMass, and only read by the calling function, CalculateThrust. It is not written by SolverEngines mod (used by Advanced Jet Engine and RealFuels), nor is it read by any other mod in my collection than Kerbal Engineer.

finalThrust will most of the time contain the same value as resultingThrust. It is modulated by received fuel fraction (of requested fuel amount), which should be 1.0 except on last tick when running out of fuel, and EnginePower multiplier which seems to be a disabled experience bonus and is also set to 1.0. If either of these features are expanded in another mod or in a future update, finalThrust will most likely be the correct value to use as it is the thrust that actually affects the vessel.

finalThrust is zeroed when time warping or when engine is not active, but in these situations resultingThrust contains a stale value, and is ignored by Kerbal Engineer anyway.


TL;DR: This change should fix the glaring incompatibility between Kerbal Engineer and RealFuels (or AJE), where thrust, acceleration, Isp and even remaining dV on current stage go to zero whenever engines are active.

Use `resultingThrust` instead of `finalThrust` for active engine calc…
…ulations

`resultingThrust` seems to be a temporary intermediate value in stock `ModuleEngines`. It is only set by `RequiredPropellantMass`, and only read by the calling function, `CalculateThrust`. It is not written by SolverEngines mod (used by Advanced Jet Engine and RealFuels), nor is it read by any other mod in my collection than Kerbal Engineer.

`finalThrust` will most of the time contain the same value as `resultingThrust`. It is modulated by received fuel fraction (of requested fuel amount), which should be 1.0 except on last tick when running out of fuel, and EnginePower multiplier which seems to be a disabled experience bonus and is also set to 1.0. If either of these features are expanded in another mod or in a future update, `finalThrust` will most likely be the correct value to use as it is the thrust that actually affects the vessel.

`finalThrust` is zeroed when time warping or when engine is not active, but in these situations `resultingThrust` contains a stale value, and is ignored by Kerbal Engineer anyway.

This change should fix the glaring incompatibility between Kerbal Engineer and RealFuels (or AJE), where thrust, acceleration, Isp and even remaining dV on current stage go to zero whenever engines are active.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.