diff --git a/lib/navigation.ks b/lib/navigation.ks index 7d80eb5..67bd264 100644 --- a/lib/navigation.ks +++ b/lib/navigation.ks @@ -102,6 +102,9 @@ function BurnTime { local lastStage is false. // We allow a small tolerance to deal with potential floating point errors. until totaldV <= 0.001 { + if s < 0 { + print "Ran out of fuel with " + totaldV + " dV remaining". + } local F is stageThrust(s). local Isp is stageISP(s). local m is stageMass(s). diff --git a/prog/launchpad.ks b/prog/launchpad.ks index a0c3708..a225cdf 100644 --- a/prog/launchpad.ks +++ b/prog/launchpad.ks @@ -3,14 +3,20 @@ // stages, spools up the engines, and then "releases control" // to the main ship computer. // +// *** CONSTRUCTION NOTES *** +// If using this script, put the annabuncheskOS-launchpad.cfg file from the patches/ directory into your GameData/ +// directory. This will ensure the launchpad has a high enough fuel flow rate for the spool-up sequence. +// If your lower stage uses engine plates, be sure to attach the launch pad to one of the *engine* bottom nodes, +// not the Engine Plate's bottom node. Otherwise fuel delivery won't work. +// // *** TAGGING REQUIREMENTS *** // The launchpad object should have the "launchpad" tag. // The ship's main CPU (the one with launch functionality" should be tagged "shipcpu". // Fuel tanks with the "nofuel" tag will have *all* resources temporarily disabled during the pre-launch -// sequence. The main ship computer must re-enable them after staging. NoFuelResources() in lib/systems is ideal -// for this. +// sequence. The main ship computer must re-enable them after staging. NoFuelResources() in lib/systems is ideal +// for this. // Similarly, any crossfeed-capable decouplers tagged "prelaunch" will have crossfeed ENABLED during pre-launch. -// MainCPU should, again, disable these once it stages. PreLaunchCrossfeed() in lib/systems is your friend. +// MainCPU should, again, disable these once it stages. PreLaunchCrossfeed() in lib/systems is your friend. RunOncePath("/lib/systems"). RunOncePath("/lib/ui"). diff --git a/prog/rocket.ks b/prog/rocket.ks index b7e7a0f..91c1fda 100644 --- a/prog/rocket.ks +++ b/prog/rocket.ks @@ -122,7 +122,9 @@ MakeMenu( MakeButton(rows[2], "Node"), List( List("Node dV", "RO", "0"), - List("Node Burn Time", "RO", "0") + List("Node Burn Time", "RO", "0"), + List("Node Lead Time", "RO", "0"), + List("Burn Start ETA", "RO", "0") ), "Execute", { @@ -132,11 +134,18 @@ MakeMenu( { parameter options. if HASNODE { + local burnTime is BurnTime(NEXTNODE:DELTAV:MAG). + local leadTime is BurnTime(NEXTNODE:DELTAV:MAG / 2). + set options["Node dV"]:TEXT to NEXTNODE:DELTAV:MAG:ToString. - set options["Node Burn Time"]:TEXT to BurnTime(NEXTNODE:DELTAV:MAG):ToString. + set options["Node Burn Time"]:TEXT to burnTime:ToString. + set options["Node Lead Time"]:TEXT to leadTime:ToString. + set options["Burn Start ETA"]:TEXT to (NEXTNODE:ETA - leadTime):ToString. } else { set options["Node dV"]:TEXT to "No Node". set options["Node Burn Time"]:TEXT to "No Node". + set options["Node Lead Time"]:TEXT to "No Node". + set options["Burn Start ETA"]:TEXT to "No Node". } } ).