Various improvements, oops.

This commit is contained in:
2021-07-21 05:24:46 -04:00
parent e2653db827
commit c7438fcfe7
4 changed files with 125 additions and 72 deletions

View File

@ -1,4 +1,13 @@
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(),
@ -6,67 +15,99 @@ function launchButtonPressed {
initialPitch:TEXT:ToNumber(),
minimumPitch:TEXT:ToNumber()
).
set STEERINGMANAGER:TORQUEEPSILONMAX to oldEpsilon.
set STEERINGMANAGER:MAXSTOPPINGTIME to oldStopTime..
}
function nodeButtonPressed {
function executeNode {
run "execnode".
}
local termOn is false.
function terminalButtonPressed {
if termOn {
CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Close Terminal").
set termOn to false.
} else {
CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Open Terminal").
set termOn to true.
}
function showLaunchMenu {
stk:ShowOnly(launchMenu).
}
// Main UI.
local interface is gui(200).
local interface is gui(250, 300).
set interface:X to 200.
set interface:Y to 800.
set interface:Y to 700.
// Launch button
local hBox is interface:AddHBox().
hBox:AddLabel("Initial Pitch").
local initialPitch is hBox:AddTextField("85").
// Main menu elements in here.
local box is interface:AddVBox().
local hBox is interface:AddHBox().
hBox:AddLabel("Minimum Pitch").
local minimumPitch is hBox:AddTextField("5").
local btn is box:AddButton("TERM").
set btn:TOGGLE to true.
set btn:ONTOGGLE to {
parameter activate.
local hBox is interface:AddHBox().
hBox:AddLabel("Gravity Turn @").
local gravTurnStart is hBox:AddTextField("8000").
if activate {
CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Open Terminal").
} else {
CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Close Terminal").
}
}.
local hBox is interface:AddHBox().
hBox:AddLabel("Gravity Pitch").
local gravPitch is hBox:AddTextField("75").
set btn to box:AddButton("LAUNCH").
set btn:onClick to showLaunchMenu@.
local hBox is interface:AddHBox().
hBox:AddLabel("Target Apoapsis").
local targetApo is hBox:AddTextField("80000").
set btn to box:AddButton("CIRC").
set btn:onClick to { add CreateCircularizationNode(). }.
local launchButton is interface:AddButton("Launch").
set launchButton:onClick to launchButtonPressed@.
set btn to box:AddButton("EXECNODE").
set btn:onClick to executeNode@.
local nodeButton is interface:AddButton("Execute Node").
set nodeButton:onClick to nodeButtonPressed@.
local stk is interface:AddStack().
local termButton is interface:AddButton("Terminal").
set termButton:onClick to terminalButtonPressed@.
// Launch menu
local launchMenu is stk:AddVLayout().
// debug
function circButtonPressed {
runpath("/lib/navigation").
add CreateCircularizationNode().
}
local cButton is interface:AddButton("Circularize").
set cButton:onClick to circButtonPressed@.
// end debug
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.