public void UpdateVessel(ClientObject client, Guid vesselID, byte[] vesselData) { string vesselDataString = Encoding.UTF8.GetString(vesselData); ConfigNode cn = ConfigNodeReader.StringToConfigNode(vesselDataString); string landed = cn.GetValue("landed"); VesselInfo vi = GetVesselInfo(vesselID); if (landed == "True") { double newLat = Double.Parse(cn.GetValue("lat")); double newLong = Double.Parse(cn.GetValue("lon")); double newAlt = Double.Parse(cn.GetValue("alt")); vi.UpdateLanded(newLat, newLong, newAlt, 0); } else { ConfigNode cnOrbit = cn.GetNode("ORBIT"); double[] orbit = new double[7]; orbit[0] = double.Parse(cnOrbit.GetValue("INC")); orbit[1] = double.Parse(cnOrbit.GetValue("ECC")); orbit[2] = double.Parse(cnOrbit.GetValue("SMA")); orbit[3] = double.Parse(cnOrbit.GetValue("LAN")); orbit[4] = double.Parse(cnOrbit.GetValue("LPE")); orbit[5] = double.Parse(cnOrbit.GetValue("MNA")); orbit[6] = double.Parse(cnOrbit.GetValue("EPH")); int referenceBody = Int32.Parse(cnOrbit.GetValue("REF")); Orbit o = new Orbit(orbit, referenceBody); vi.UpdateOrbit(o); } }
public void PositionVessel(ClientObject client, VesselUpdate update) { if (update.isSurfaceUpdate) { VesselInfo vi = GetVesselInfo(update.vesselID); vi.UpdateLanded(update.position[0], update.position[1], update.position[2], Vector.Length(update.velocity)); } else { VesselInfo vi = GetVesselInfo(update.vesselID); int planetReference = PlanetInfo.GetReference(update.bodyName); if (planetReference != -1) { Orbit o = new Orbit(update.orbit, planetReference); vi.UpdateOrbit(o); } } }