Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 26 additions & 6 deletions Telecom/main_window.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using principia.ksp_plugin_adapter;
using RealAntennas;

namespace σκοπός {
Expand Down Expand Up @@ -64,6 +65,11 @@ protected override void RenderWindowContents(int window_id) {
open_contracts_.Add(contract, false);
}
}
var connection_label_style = Style.Multiline(UnityEngine.GUI.skin.label);
var ok_style = Style.RightAligned(UnityEngine.GUI.skin.label);
var disconnected_style = Style.RightAligned(
Style.Error(UnityEngine.GUI.skin.label));

foreach (var contract_connections in telecom_.network.connections_by_contract) {
var contract = contract_connections.Key;
var connections = contract_connections.Value;
Expand All @@ -85,16 +91,21 @@ protected override void RenderWindowContents(int window_id) {
var rx = telecom_.network.GetStation(point_to_multipoint.rx_names[0]);
bool available = services.basic.available;
string status = available ? "OK" : "Disconnected";
var status_style = available ? ok_style : disconnected_style;
using (new UnityEngine.GUILayout.HorizontalScope()) {
UnityEngine.GUILayout.Label(
$"From {tx.displaynodeName} to {rx.displaynodeName}: {status}",
GUILayoutWidth(15));
$"From {tx.displaynodeName} to {rx.displaynodeName}: ",
connection_label_style,
GUILayoutWidth(11));
UnityEngine.GUILayout.Label(
$"{status}", status_style, GUILayoutWidth(4));
connection_inspectors_[connection].RenderButton();
}
} else {
using (new UnityEngine.GUILayout.HorizontalScope()) {
UnityEngine.GUILayout.Label(
$"Broadcast from {tx.displaynodeName} to:",
connection_label_style,
GUILayoutWidth(15));
connection_inspectors_[connection].RenderButton();
}
Expand All @@ -103,21 +114,30 @@ protected override void RenderWindowContents(int window_id) {
var services = point_to_multipoint.channel_services[i];
bool available = services.basic.available;
string status = available ? "OK" : "Disconnected";
var status_style = available ? ok_style : disconnected_style;
var rx = telecom_.network.GetStation(point_to_multipoint.rx_names[i]);
if (point_to_multipoint.rx_names.Length > 1) {
UnityEngine.GUILayout.Label(
$@"— {rx.displaynodeName}: {status}");
using (new UnityEngine.GUILayout.HorizontalScope()) {
UnityEngine.GUILayout.Label(
$@"— {rx.displaynodeName}: ", connection_label_style);
UnityEngine.GUILayout.Label(
$"{status}", status_style, GUILayoutWidth(4));
}
}
}
} else if (connection is DuplexConnection duplex) {
var trx0 = telecom_.network.GetStation(duplex.trx_names[0]);
var trx1 = telecom_.network.GetStation(duplex.trx_names[1]);
bool available = duplex.basic_service.available;
string status = available ? "OK" : "Disconnected";
var status_style = available ? ok_style : disconnected_style;
using (new UnityEngine.GUILayout.HorizontalScope()) {
UnityEngine.GUILayout.Label(
$@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}: {status}",
GUILayoutWidth(15));
$@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}",
connection_label_style,
GUILayoutWidth(11));
UnityEngine.GUILayout.Label(
$"{status}", status_style, GUILayoutWidth(4));
connection_inspectors_[connection].RenderButton();
}
}
Expand Down