runoncepath("/lib/navigation"). function launchButtonPressed { // adjust torque settings here... local oldEpsilon is STEERINGMANAGER:TORQUEEPSILONMAX. set STEERINGMANAGER:TORQUEEPSILONMAX to maxEpsilon:TEXT:ToNumber(). local oldStopTime is STEERINGMANAGER:MAXSTOPPINGTIME. set STEERINGMANAGER:MAXSTOPPINGTIME to maxStopTime:TEXT:ToNumber(). run "launch"( targetApo:TEXT:ToNumber(), gravTurnStart:TEXT:ToNumber(), gravPitch:TEXT:ToNumber(), initialPitch:TEXT:ToNumber(), minimumPitch:TEXT:ToNumber() ). set STEERINGMANAGER:TORQUEEPSILONMAX to oldEpsilon. set STEERINGMANAGER:MAXSTOPPINGTIME to oldStopTime.. } function executeNode { run "execnode". } function showLaunchMenu { stk:ShowOnly(launchMenu). } // Main UI. local interface is gui(250, 300). set interface:X to 200. set interface:Y to 700. // Main menu elements in here. local box is interface:AddVBox(). local btn is box:AddButton("TERM"). set btn:TOGGLE to true. set btn:ONTOGGLE to { parameter activate. if activate { CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Open Terminal"). } else { CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Close Terminal"). } }. set btn to box:AddButton("LAUNCH"). set btn:onClick to showLaunchMenu@. set btn to box:AddButton("CIRC"). set btn:onClick to { add CreateCircularizationNode(). }. set btn to box:AddButton("EXECNODE"). set btn:onClick to executeNode@. local stk is interface:AddStack(). // Launch menu local launchMenu is stk:AddVLayout(). set btn to launchMenu:AddButton("Execute"). set btn:onClick to launchButtonPressed@. local launchConfig is box:AddScrollBox(). // set launchConfig:STYLE:WIDTH to 300. // set launchConfig:STYLE:HEIGHT to 800. set sbox to launchConfig:AddHBox(). sbox:AddLabel("Target Apoapsis"). local targetApo is sbox:AddTextField("80000"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Atmo TWR"). local targetTWR is sbox:AddTextField("1.6"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Initial Pitch"). local initialPitch is sBox:AddTextField("85"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Minimum Pitch"). local minimumPitch is sbox:AddTextField("5"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Gravity Turn Alt"). local gravTurnStart is sbox:AddTextField("8000"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Gravity Turn Pitch"). local gravPitch is sbox:AddTextField("75"). launchConfig:AddSpacing(5). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Torque Epsilon Max"). local maxEpsilon is sbox:AddTextField("0.001"). set sbox to launchConfig:AddHBox(). sbox:AddLabel("Max Stopping Time"). local maxStopTime is sbox:AddTextField("2.0"). // End Launch Menu interface:show(). wait until false.