public override void OnServerStart() { DarkLog.Normal("[ModdedVesselPositions] Starting..."); Config.SetupConfig(); string[] OutDatedFileList = Directory.GetFiles(VesselPositions.VesselPosFolder); foreach (string vesselFile in OutDatedFileList) { if (File.Exists(vesselFile)) { File.Delete(vesselFile); } } DarkLog.Debug("[ModdedVesselPositions] Reset 'PluginData/DMPServerMap-FrostBird347/VesselPos'"); if (inited) { return; } PlanetInfo.Init(); ServerTime.Init(); foreach (string file in Directory.GetFiles(Path.Combine(Server.universeDirectory, "Vessels"))) { string croppedName = Path.GetFileNameWithoutExtension(file); if (Guid.TryParse(croppedName, out Guid vesselID)) { byte[] vesselData = File.ReadAllBytes(file); UpdateVessel(null, vesselID, vesselData); } } inited = true; DarkLog.Normal("[ModdedVesselPositions] Started! - Version " + PluginV + "."); CommandHandler.RegisterCommand("reloadpos", ReloadConfig, "Reload the ModdedVesselPositions plugin config."); }
public override void OnUpdate() { if (!inited) { return; } long currentTime = DateTime.UtcNow.Ticks; if (currentTime > lastSendTime + (TimeSpan.TicksPerSecond * UpdateFileSpeed)) { //Console.WriteLine("vessel update!"); lastSendTime = currentTime; lock (vessels) { double currentSubspaceTime = ServerTime.GetTime(); foreach (KeyValuePair <Guid, VesselInfo> kvp in vessels) { VesselInfo vi = kvp.Value; vi.Update(PointTime.GetTime(currentSubspaceTime, 0)); double[] NextposLLH = new double[] { vi.latitude, vi.longitude, vi.altitude }; vi.Update(PointTime.GetTime(currentSubspaceTime, 250)); double[] NextposLLH2 = new double[] { vi.latitude, vi.longitude, vi.altitude }; vi.Update(PointTime.GetTime(currentSubspaceTime, 500)); double[] NextposLLH3 = new double[] { vi.latitude, vi.longitude, vi.altitude }; vi.Update(PointTime.GetTime(currentSubspaceTime, 750)); double[] NextposLLH4 = new double[] { vi.latitude, vi.longitude, vi.altitude }; vi.Update(PointTime.GetTime(currentSubspaceTime, 1000)); double[] NextposLLH5 = new double[] { vi.latitude, vi.longitude, vi.altitude }; vi.Update(currentSubspaceTime); Double TimePercent = PointTime.GetTimePercent(currentSubspaceTime); double[] posLLH = new double[] { vi.latitude, vi.longitude, vi.altitude }; //Console.WriteLine(kvp.Key + " Pos: " + Vector.GetString(posLLH, 2) + " velocity: " + vi.velocity.ToString("F1") + " time: " + currentSubspaceTime.ToString("F1")); string currentvesselDataString = "pid = " + kvp.Key + "\npos = " + Vector.GetString(posLLH, 2) + "\nnextloc = " + Vector.GetString(NextposLLH, 2) + "\nnextloc2 = " + Vector.GetString(NextposLLH2, 2) + "\nnextloc3 = " + Vector.GetString(NextposLLH3, 2) + "\nnextloc4 = " + Vector.GetString(NextposLLH4, 2) + "\nnextloc5 = " + Vector.GetString(NextposLLH5, 2) + "\nvel = " + vi.velocity.ToString("F1") + "\ntime = " + currentSubspaceTime.ToString("F1") + "\ntimep = " + TimePercent.ToString("F1"); byte[] currentvesselData = Encoding.Default.GetBytes(currentvesselDataString); File.WriteAllBytes(Path.Combine(VesselPosFolder, kvp.Key + ".txt"), currentvesselData); } } } }