taniwha / Extraplanetary-Launchpads

GNU General Public License v3.0
54 stars 45 forks source link

RocketParts not drained correctly from InterstellarFuelSwitch tanks #115

Closed EleusisLaArwall closed 4 years ago

EleusisLaArwall commented 8 years ago

KSP: 1.1.1230(x64) clean install; fresh sandbox

Problem: RocketParts not drained correctly from InterstellarFuelSwitch tanks

Mods installed: Module Manager 2.6.22 Extraplanetary Launchpads 5.3.0 Interstellar Fuel Switch 1.24 (modified example file) Community Recource Pack 0.5 (bundled with IFS 1.24)

Changes to InterstellarGasTank-PB-Stack.cfg in line 42-47: resourceGui = Argon;CarbonDioxide;Hydrogen;Krypton;Neon;Nitrogen;Oxygen;Xenon;LifeSupport;Nothing;RocketParts resourceNames = ArgonGas;CarbonDioxide;Hydrogen;KryptonGas;NeonGas;Nitrogen;Oxygen;XenonGas;Oxygen,CarbonDioxide;Structural;RocketParts resourceAmounts = 224000;224000;224000;224000;224000;224000;224000;44800;112000,112000;0;750 basePartMass = 0.5 tankMass = 0.5;0.5;0;0.5;0.5;0.5;0.5;1.1;0.5;0.5;0.5 boilOffTemp = 10;20;30;40;50;60;70;80;90,95;100;1000

Reproduction steps: Build a simple craft with a Launchpad. Attach Interstellar Fuel Switch tanks with RocketParts after the Launchpad is attached. Launch vessel and start building a new vessel with the Launchpad. EL GUI shows the full amount of RocketParts available on the vessel. If the newly constructed craft is expensive enough EL GUI will count down to 0 RocketParts but Interstellar Fuel Switch tanks that have been attached after the Launchpad remain full. Switching to SpaceCenter and back, EL GUI shows the remaining RocketParts and continues construction. I've built the Kerbal 1 (cost: 4735 RocketParts) with just 3000 RocketParts:

Imgur-album

Notes: Originally observed this with KSP 1.0.5, EL 5.2.95, IFS 1.19 and a bunch of other mods. Also had this issue with IFS 1.21 in KSP 1.1.

output_log.txt

taniwha commented 8 years ago

I believe this is a known bug, and not limited to IFS (or any other tank modifiying mod). The easy way to check is to quick-save and quick-load after attaching the tank.

Bill

Leave others their otherness. -- Aratak There is no can't -- Duun

EleusisLaArwall commented 8 years ago

Thanks for the reply and sorry if this has been known already. I couldn't find anything regarding this problem but probably I didn't search good enough =/

Forgot to tell what I usually do to prevent this: Once the craft is done in the VAB/SPH, detach the LaunchPad and delete it. Drag a new Launchpad over from the list and attach it as before. This way all tanks have been attached prior to the Launchpad.

taniwha commented 7 years ago

OK, I think I know what is going on: since ensuring the pad is added last, it seems that IFS modifies the tank resources OnStart(). EL builds its resource list in OnStart(). The order of execution for for OnStart depends on the module order on the part and the part order in the vessel. Thus adding the pad last ensures that its OnStart() executes last. This is quite fixable by delaying the building of the resource list by a frame.