forked from RemoteTechnologiesGroup/RemoteTech
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRTDebugUnit.cs
More file actions
114 lines (101 loc) · 3.36 KB
/
Copy pathRTDebugUnit.cs
File metadata and controls
114 lines (101 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections.Generic;
using UnityEngine;
namespace RemoteTech
{
[KSPAddon(KSPAddon.Startup.EveryScene, false)]
public class RTDebugUnit : MonoBehaviour
{
private RemoteTech.UI.DebugWindow debugWindow = null;
public void Start()
{
#if DEBUG
this.debugWindow = new RemoteTech.UI.DebugWindow();
#endif
}
public void Update()
{
if ((Input.GetKeyDown(KeyCode.F11) || Input.GetKeyDown(KeyCode.F12)) && (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneHasPlanetarium))
{
if (Input.GetKeyDown(KeyCode.F11)){
Dump();
}
else {
if (this.debugWindow != null)
{
this.debugWindow.toggleWindow();
}
}
}
}
public void Dump()
{
var dump = new List<String>();
dump.AddRange(DumpSatellites());
dump.Add(Environment.NewLine);
dump.AddRange(DumpAntennas());
dump.Add(Environment.NewLine);
dump.AddRange(DumpEdges());
dump.Add(Environment.NewLine);
dump.AddRange(DumpConnectionTests());
dump.Add(Environment.NewLine);
System.IO.File.WriteAllText(@"./rt_dump.txt", String.Join(Environment.NewLine, dump.ToArray()));
}
public String[] DumpSatellites()
{
var data = new List<String>();
data.Add("NetworkManager contents: ");
int i = 0;
foreach (var s in RTCore.Instance.Network)
{
data.Add(String.Format(" {0}: {1}", i++, s));
}
return data.ToArray();
}
public String[] DumpAntennas()
{
var data = new List<String>();
data.Add("AntennaManager contents: ");
int i = 0;
foreach (var a in RTCore.Instance.Antennas)
{
data.Add(String.Format(" {0}: {1}", i++, a));
}
return data.ToArray();
}
public String[] DumpEdges()
{
var data = new List<String>();
data.Add("NetworkManager.Graph contents: ");
int i = 0;
foreach (var edge in RTCore.Instance.Network.Graph)
{
data.Add(String.Format(" {0}: {1}", i++, edge.Key));
int j = 0;
foreach (var target in edge.Value)
{
data.Add(String.Format(" {0}: {1}", j++, target));
}
}
return data.ToArray();
}
public String[] DumpConnectionTests()
{
var data = new List<String>();
data.Add("Forced connection checks: ");
int i = 0;
foreach (var sat1 in RTCore.Instance.Network)
{
int j = 0;
foreach (var sat2 in RTCore.Instance.Network)
{
if (sat1 == sat2) continue;
data.Add(String.Format(" {0} -> {1}: {2}", i, j, NetworkManager.GetLink(sat1, sat2)));
j++;
}
i++;
}
return data.ToArray();
}
}
}