forked from SodiumEyes/KerbalLiveFeed
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKLFVesselUpdate.cs
160 lines (134 loc) · 3.01 KB
/
KLFVesselUpdate.cs
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
namespace KLF
{
public enum Activity
{
NONE,
AEROBRAKING,
PARACHUTING,
DOCKING
}
public enum Situation
{
UNKNOWN,
DESTROYED,
LANDED,
SPLASHED,
PRELAUNCH,
ORBITING,
ENCOUNTERING,
ESCAPING,
ASCENDING,
DESCENDING,
FLYING,
DOCKED
}
public enum State
{
ACTIVE,
INACTIVE,
DEAD
}
[Serializable()]
public class KLFVesselDetail
{
/// <summary>
/// The specific activity the vessel is performing in its situation
/// </summary>
public Activity activity;
/// <summary>
/// Whether or not the player controlling this vessel is idle
/// </summary>
public bool idle;
/// <summary>
/// The number of crew the vessel is holding. byte.Max signifies not applicable
/// </summary>
public byte numCrew;
/// <summary>
/// The percentage of fuel remaining in the vessel. byte.Max signifies no fuel capacity
/// </summary>
public byte percentFuel;
/// <summary>
/// The percentage of rcs fuel remaining in the vessel. byte.Max signifies no rcs capacity
/// </summary>
public byte percentRCS;
/// <summary>
/// The mass of the vessel
/// </summary>
public float mass;
public KLFVesselDetail()
{
activity = Activity.NONE;
numCrew = 0;
percentFuel = 0;
percentRCS = 0;
mass = 0.0f;
idle = false;
}
}
[Serializable()]
public class KLFVesselInfo
{
/// <summary>
/// The vessel's KSP Vessel situation
/// </summary>
public Situation situation;
/// <summary>
/// The vessel's KSP vessel state
/// </summary>
public State state;
/// <summary>
/// The timescale at which the vessel is warping
/// </summary>
public float timeScale;
/// <summary>
/// The name of the body the vessel is orbiting
/// </summary>
public String bodyName;
public KLFVesselDetail detail;
public KLFVesselInfo()
{
situation = Situation.UNKNOWN;
timeScale = 1.0f;
detail = null;
}
}
[Serializable()]
public class KLFVesselUpdate : KLFVesselInfo
{
/// <summary>
/// The vessel name
/// </summary>
public String name;
/// <summary>
/// The player who owns this ship
/// </summary>
public String player;
/// <summary>
/// The ID of the vessel
/// </summary>
public Guid id;
/// <summary>
/// The position of the vessel relative to its parent body transform
/// </summary>
public float[] pos;
/// <summary>
/// The direction of the vessel relative to its parent body transform
/// </summary>
public float[] dir;
/// <summary>
/// The velocity of the vessel relative to its parent body transform
/// </summary>
public float[] vel;
public KLFVesselUpdate()
{
pos = new float[3];
dir = new float[3];
vel = new float[3];
}
}
}