From bb3e813893c4e1fcc4a26bd83a50b8c163b8cd40 Mon Sep 17 00:00:00 2001 From: periodically-makes-puns Date: Sat, 7 Feb 2026 02:15:23 -0500 Subject: [PATCH 1/2] change text color for disconnected contracts and connections --- Telecom/main_window.cs | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Telecom/main_window.cs b/Telecom/main_window.cs index d7664dd..3d8bf84 100644 --- a/Telecom/main_window.cs +++ b/Telecom/main_window.cs @@ -65,9 +65,21 @@ protected override void RenderWindowContents(int window_id) { open_contracts_.Add(contract, false); } } + var ok_style = UnityEngine.GUI.skin.label; + var disconnected_style = principia.ksp_plugin_adapter.Style.Warning( + UnityEngine.GUI.skin.label); + foreach (var contract_connections in telecom_.network.connections_by_contract) { var contract = contract_connections.Key; var connections = contract_connections.Value; + bool all_available = connections.All(connection => { + if (connection is PointToMultipointConnection point_to_multipoint) { + return point_to_multipoint.channel_services.All(service => service.basic.available); + } else if (connection is DuplexConnection duplex) { + return duplex.basic_service.available; + } else { return false; } + }); + var contract_style = all_available ? ok_style : disconnected_style; using (new UnityEngine.GUILayout.HorizontalScope()) { if (UnityEngine.GUILayout.Button( open_contracts_[contract] ? "−" : "+", GUILayoutWidth(1))) { @@ -75,7 +87,7 @@ protected override void RenderWindowContents(int window_id) { ScheduleShrink(); return; } - UnityEngine.GUILayout.Label(contract.Title); + UnityEngine.GUILayout.Label(contract.Title, contract_style); } if (open_contracts_[contract]) { foreach (var connection in connections) { @@ -86,9 +98,11 @@ 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 style = available ? ok_style : disconnected_style; using (new UnityEngine.GUILayout.HorizontalScope()) { UnityEngine.GUILayout.Label( $"From {tx.displaynodeName} to {rx.displaynodeName}: {status}", + style, GUILayoutWidth(15)); connection_inspectors_[connection].RenderButton(); } @@ -103,11 +117,13 @@ protected override void RenderWindowContents(int window_id) { for (int i = 0; i < point_to_multipoint.rx_names.Length; ++i) { var services = point_to_multipoint.channel_services[i]; bool available = services.basic.available; + var style = available ? ok_style : disconnected_style; string status = available ? "OK" : "Disconnected"; + var 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}"); + $@"— {rx.displaynodeName}: {status}", style); } } } else if (connection is DuplexConnection duplex) { @@ -115,9 +131,11 @@ protected override void RenderWindowContents(int window_id) { var trx1 = telecom_.network.GetStation(duplex.trx_names[1]); bool available = duplex.basic_service.available; string status = available ? "OK" : "Disconnected"; + var style = available ? ok_style : disconnected_style; using (new UnityEngine.GUILayout.HorizontalScope()) { UnityEngine.GUILayout.Label( - $@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}: {status}", + $@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}: {status}", + style, GUILayoutWidth(15)); connection_inspectors_[connection].RenderButton(); } From 721b54b293941c51c2c1ddadd2ea105b6f3c1e9b Mon Sep 17 00:00:00 2001 From: periodically-makes-puns Date: Sat, 7 Feb 2026 23:37:23 -0500 Subject: [PATCH 2/2] style fixes, remove dumb duplication error --- Telecom/main_window.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Telecom/main_window.cs b/Telecom/main_window.cs index 3d8bf84..e2a0e09 100644 --- a/Telecom/main_window.cs +++ b/Telecom/main_window.cs @@ -66,8 +66,7 @@ protected override void RenderWindowContents(int window_id) { } } var ok_style = UnityEngine.GUI.skin.label; - var disconnected_style = principia.ksp_plugin_adapter.Style.Warning( - UnityEngine.GUI.skin.label); + var disconnected_style = principia.ksp_plugin_adapter.Style.Warning(ok_style); foreach (var contract_connections in telecom_.network.connections_by_contract) { var contract = contract_connections.Key; @@ -117,7 +116,6 @@ protected override void RenderWindowContents(int window_id) { for (int i = 0; i < point_to_multipoint.rx_names.Length; ++i) { var services = point_to_multipoint.channel_services[i]; bool available = services.basic.available; - var style = available ? ok_style : disconnected_style; string status = available ? "OK" : "Disconnected"; var style = available ? ok_style : disconnected_style; var rx = telecom_.network.GetStation(point_to_multipoint.rx_names[i]);