public void Draw()
{
bool locked = on;
GUILayout.BeginHorizontal();
Color savedContentColor = GUI.contentColor;
if (state.Active)
{
if (mode == AttitudeMode.MANEUVERNODE)
{
if (state.Active)
{
if (FlightGlobals.ActiveVessel.patchedConicSolver.maneuverNodes.Count > 0)
GUI.contentColor = Color.green;
else
GUI.contentColor = Color.yellow;
}
}
else
if (state.Active) GUI.contentColor = Color.green;
}
else
if (mode == AttitudeMode.MANEUVERNODE && FlightGlobals.ActiveVessel.patchedConicSolver.maneuverNodes.Count == 0)
GUI.contentColor = Color.red;
on = GUILayout.Toggle(on,
(RTGlobals.ColFriend && state.Active ? name + "<" : name)
, GUI.skin.textField, GUILayout.Width(100));
GUI.contentColor = savedContentColor;
if (!(computer.core.localControl || computer.core.InContact) || (mode == AttitudeMode.MANEUVERNODE && FlightGlobals.ActiveVessel.patchedConicSolver.maneuverNodes.Count == 0 && !state.Active))
on = locked;
GUILayout.Label(sending ? computer.arrows : "", GUI.skin.textField, GUILayout.Width(50));
if (sending)
{
GUILayout.Label(RTUtils.time((lastActTime - Planetarium.GetUniversalTime() > 0) ? lastActTime - Planetarium.GetUniversalTime() : 0), GUI.skin.textField, GUILayout.Width(90));
}
else
{
burnAts = GUILayout.TextField(burnAts, GUILayout.Width(90));
List<String> temp = burnAts.Split(":".ToCharArray()).ToList();
string seconds = "", minutes = "", hours = "", days = "";
while (temp.Count < 4) temp.Insert(0, "");
seconds = RTUtils.TFormat(temp[3]);
burnAt = Convert.ToSingle(seconds == "" ? "0" : seconds);
burnAts = seconds;
if (temp[2] != "")
{
minutes = RTUtils.TFormat(temp[2]);
burnAt += Convert.ToSingle(minutes == "" ? "0" : minutes) * 60;
burnAts = minutes == "" ? burnAts : (minutes + ":" + burnAts);
}
if (temp[1] != "")
{
hours = RTUtils.TFormat(temp[1]);
burnAt += Convert.ToSingle(hours == "" ? "0" : hours) * 3600;
burnAts = hours == "" ? burnAts : (hours + ":" + burnAts);
}
if (temp[0] != "")
{
days = RTUtils.TFormat(temp[0]);
burnAt += Convert.ToSingle(days == "" ? "0" : days) * 86400;
burnAts = days == "" ? burnAts : (days + ":" + burnAts);
}
}
GUILayout.EndHorizontal();
if (mode != AttitudeMode.SURFACE || !on) return;
GUILayout.BeginHorizontal();
GUILayout.Label("Pitch:", GUI.skin.textField, GUILayout.Width(100));
PITs = GUILayout.TextField(PITs, GUILayout.Width(50));
PITs = RTUtils.FormatNumString(PITs);
if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(PITs);
tmp += 1;
if (tmp >= 360.0F)
{
tmp -= 360.0F;
}
PITs = Mathf.RoundToInt(tmp).ToString();
}
if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(PITs);
tmp -= 1;
if (tmp < 0)
{
tmp += 360.0F;
}
PITs = Mathf.RoundToInt(tmp).ToString();
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Heading:", GUI.skin.textField, GUILayout.Width(100));
HDGs = GUILayout.TextField(HDGs, GUILayout.Width(50));
HDGs = RTUtils.FormatNumString(HDGs);
if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(HDGs);
tmp += 1;
if (tmp >= 360.0F)
{
tmp -= 360.0F;
}
HDGs = Mathf.RoundToInt(tmp).ToString();
}
if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(HDGs);
tmp -= 1;
if (tmp < 0)
{
tmp += 360.0F;
}
HDGs = Mathf.RoundToInt(tmp).ToString();
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Roll:", GUI.skin.textField, GUILayout.Width(100));
ROLs = GUILayout.TextField(ROLs, GUILayout.Width(50));
ROLs = RTUtils.FormatNumString(ROLs);
if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(ROLs);
tmp += 1;
if (tmp >= 360.0F)
{
tmp -= 360.0F;
}
ROLs = Mathf.RoundToInt(tmp).ToString();
}
if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
{
float tmp = Convert.ToSingle(ROLs);
tmp -= 1;
if (tmp < 0)
{
tmp += 360.0F;
}
ROLs = Mathf.RoundToInt(tmp).ToString();
}
USEROL = GUILayout.Toggle(USEROL, " ", GUI.skin.toggle, GUILayout.Width(21.0F));
GUILayout.EndHorizontal();
if (GUILayout.Button("Update", GUI.skin.textField) && (computer.core.localControl || computer.core.InContact))
{
if (PITs.EndsWith("."))
PITs = PITs.Substring(0, PITs.Length - 1);
if (HDGs.EndsWith("."))
HDGs = HDGs.Substring(0, HDGs.Length - 1);
if (ROLs.EndsWith("."))
ROLs = ROLs.Substring(0, ROLs.Length - 1);
PIT = Convert.ToSingle(PITs);
HDG = Convert.ToSingle(HDGs);
ROL = Convert.ToSingle(ROLs);
lastOn = false;
}
}