void displayLastFSDOrScoop(HistoryEntry he) { pictureBox.ClearImageList(); lastHE = he; if (he != null) { Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? Color.Black : this.BackColor; ExtendedControls.PictureBoxHotspot.ImageElement edsm = pictureBox.AddTextFixedSizeC(new Point(5, 5), new Size(80, 20), "EDSM", displayfont, backcolour, textcolour, 0.5F, true, he, "View system on EDSM"); edsm.SetAlternateImage(BaseUtils.BitMapHelpers.DrawTextIntoFixedSizeBitmapC("EDSM", edsm.img.Size, displayfont, backcolour, textcolour.Multiply(1.2F), 0.5F, true), edsm.pos, true); ExtendedControls.PictureBoxHotspot.ImageElement start = pictureBox.AddTextFixedSizeC(new Point(5, 35), new Size(80, 20), "Start", displayfont, backcolour, textcolour, 0.5F, true, "Start", "Set a journey start point"); start.SetAlternateImage(BaseUtils.BitMapHelpers.DrawTextIntoFixedSizeBitmapC("Start", edsm.img.Size, displayfont, backcolour, textcolour.Multiply(1.2F), 0.5F, true), start.pos, true); backcolour = IsTransparent ? Color.Transparent : this.BackColor; EliteDangerousCalculations.FSDSpec.JumpInfo ji = he.GetJumpInfo(); // may be null String line = " Target Not Set"; if (TargetClass.GetTargetPosition(out string name, out Point3D tpos)) { double dist = he.System.Distance(tpos.X, tpos.Y, tpos.Z); string mesg = "Left"; if (ji != null) { int jumps = (int)Math.Ceiling(dist / ji.avgsinglejump); if (jumps > 0) { mesg = "@ " + jumps.ToString() + ((jumps == 1) ? " jump" : " jumps"); } } line = String.Format("{0} | {1:N2}ly {2}", name, dist, mesg); } line = String.Format("{0} [{1}] | {2}", he.System.Name, discoveryform.history.GetVisitsCount(he.System.Name), line); pictureBox.AddTextAutoSize(new Point(100, 5), new Size(1000, 40), line, displayfont, textcolour, backcolour, 1.0F); line = String.Format("{0:n}{1} @ {2} | {3} | ", he.TravelledDistance, ((he.TravelledMissingjump > 0) ? "ly (*)" : "ly"), he.Travelledjumps, he.TravelledSeconds); ExtendedControls.PictureBoxHotspot.ImageElement botlineleft = pictureBox.AddTextAutoSize(new Point(100, 35), new Size(1000, 40), line, displayfont, textcolour, backcolour, 1.0F); ShipInformation si = he.ShipInformation; if (si != null) { double fuel = si.FuelLevel; double tanksize = si.FuelCapacity; double warninglevelpercent = si.FuelWarningPercent; line = String.Format("{0}/{1}t", fuel.ToString("N1"), tanksize.ToString("N1")); if (warninglevelpercent > 0 && fuel < tanksize * warninglevelpercent / 100.0) { textcolour = discoveryform.theme.TextBlockHighlightColor; line += String.Format(" < {0}%", warninglevelpercent.ToString("N1")); } if (ji != null) { HistoryEntry lastJet = discoveryform.history.GetLastHistoryEntry(x => x.journalEntry.EventTypeID == JournalTypeEnum.JetConeBoost); if (lastJet != null && lastJet.EventTimeLocal > lastHE.EventTimeLocal) { double jumpdistance = ji.avgsinglejump * (lastJet.journalEntry as EliteDangerousCore.JournalEvents.JournalJetConeBoost).BoostValue; line += String.Format(" [{0:N1}ly @ BOOST]", jumpdistance); } else { line += String.Format(" [{0:N1}ly, {1:N1}ly / {2:N0}]", ji.avgsinglejump, ji.maxjumprange, ji.maxjumps); } } pictureBox.AddTextAutoSize(new Point(botlineleft.pos.Right, 35), new Size(1000, 40), line, displayfont, textcolour, backcolour, 1.0F); } pictureBox.Render(); } }
private void DisplayShip(ShipInformation si) { //System.Diagnostics.Debug.WriteLine("HE " + last_he.Indexno); last_si = si; foreach (string key in si.Modules.Keys) { EliteDangerousCore.ShipModule sm = si.Modules[key]; AddModuleLine(sm); } double hullmass = si.HullMass(); double modulemass = si.ModuleMass(); EliteDangerousCalculations.FSDSpec fsdspec = si.GetFSDSpec(); if (fsdspec != null) { EliteDangerousCalculations.FSDSpec.JumpInfo ji = fsdspec.GetJumpInfo(0, modulemass + hullmass, si.FuelCapacity, si.FuelCapacity / 2); AddInfoLine("FSD Avg Jump".T(EDTx.UserControlModules_FSDAvgJump), ji.avgsinglejumpnocargo.ToString("N2") + "ly", "Half tank, no cargo".T(EDTx.UserControlModules_HT), fsdspec.ToString()); DataGridViewRow rw = dataGridViewModules.Rows[dataGridViewModules.Rows.Count - 1]; AddInfoLine("FSD Max Range".T(EDTx.UserControlModules_FSDMaxRange), ji.maxjumprange.ToString("N2") + "ly", "Full Tank, no cargo".T(EDTx.UserControlModules_FT), fsdspec.ToString()); AddInfoLine("FSD Maximum Fuel per jump".T(EDTx.UserControlModules_FSDMaximumFuelperjump), fsdspec.MaxFuelPerJump.ToString() + "t", "", fsdspec.ToString()); } if (si.HullValue > 0) { AddValueLine("Hull Value".T(EDTx.UserControlModules_HullValue), si.HullValue); } if (si.ModulesValue > 0) { AddValueLine("Modules Value".T(EDTx.UserControlModules_ModulesValue), si.ModulesValue); } if (si.HullValue > 0 && si.ModulesValue > 0) { AddValueLine("Total Cost".T(EDTx.UserControlModules_TotalCost), si.HullValue + si.ModulesValue); } if (si.Rebuy > 0) { AddValueLine("Rebuy Cost".T(EDTx.UserControlModules_RebuyCost), si.Rebuy); } AddMassLine("Mass Hull".T(EDTx.UserControlModules_MassHull), hullmass.ToString("N1") + "t"); AddMassLine("Mass Unladen".T(EDTx.UserControlModules_MassUnladen), (hullmass + modulemass).ToString("N1") + "t"); if (si.UnladenMass > 0) { AddMassLine("Mass FD Unladen".T(EDTx.UserControlModules_MassFDUnladen), si.UnladenMass.ToString("N1") + "t"); } AddMassLine("Mass Modules".T(EDTx.UserControlModules_MassModules), modulemass.ToString("N1") + "t"); AddInfoLine("Manufacturer".T(EDTx.UserControlModules_Manufacturer), si.Manufacturer); if (si.FuelCapacity > 0) { AddInfoLine("Fuel Capacity".T(EDTx.UserControlModules_FuelCapacity), si.FuelCapacity.ToString("N1") + "t"); } if (si.FuelLevel > 0) { AddInfoLine("Fuel Level".T(EDTx.UserControlModules_FuelLevel), si.FuelLevel.ToString("N1") + "t"); } if (si.ReserveFuelCapacity > 0) { AddInfoLine("Fuel Reserve Capacity".T(EDTx.UserControlModules_FuelReserveCapacity), si.ReserveFuelCapacity.ToString("N2") + "t"); } if (si.HullHealthAtLoadout > 0) { AddInfoLine("Hull Health (Loadout)".T(EDTx.UserControlModules_HullHealth), si.HullHealthAtLoadout.ToString("N1") + "%"); } double fuelwarn = si.FuelWarningPercent; AddInfoLine("Fuel Warning %".T(EDTx.UserControlModules_FuelWarning), fuelwarn > 0 ? fuelwarn.ToString("N1") + "%" : "Off".T(EDTx.Off)); AddInfoLine("Pad Size".T(EDTx.UserControlModules_PadSize), si.PadSize); AddInfoLine("Main Thruster Speed".T(EDTx.UserControlModules_MainThrusterSpeed), si.Speed.ToString("0.#")); AddInfoLine("Main Thruster Boost".T(EDTx.UserControlModules_MainThrusterBoost), si.Boost.ToString("0.#")); if (si.InTransit) { AddInfoLine("In Transit to ".T(EDTx.UserControlModules_InTransitto), (si.StoredAtSystem ?? "Unknown".T(EDTx.Unknown)) + ":" + (si.StoredAtStation ?? "Unknown".T(EDTx.Unknown))); } else if (si.StoredAtSystem != null) { AddInfoLine("Stored at".T(EDTx.UserControlModules_Storedat), si.StoredAtSystem + ":" + (si.StoredAtStation ?? "Unknown".T(EDTx.Unknown))); } int cc = si.CargoCapacity(); if (cc > 0) { AddInfoLine("Cargo Capacity".T(EDTx.UserControlModules_CargoCapacity), cc.ToString("N0") + "t"); } labelVehicle.Visible = true; labelVehicle.Text = si.ShipFullInfo(cargo: false, fuel: false); buttonExtConfigure.Visible = true; buttonExtCoriolis.Visible = buttonExtEDShipyard.Visible = si.CheckMinimumJSONModules(); }
private void Display(HistoryEntry he, HistoryList hl, bool selectedEntry) { //System.Diagnostics.Debug.WriteLine("SI:Display "); if (neverdisplayed) { UpdateViewOnSelection(); // then turn the right ones on neverdisplayed = false; } last_he = he; if (last_he != null) { SetControlText(he.System.Name); HistoryEntry lastfsd = hl.GetLastHistoryEntry(x => x.journalEntry is EliteDangerousCore.JournalEvents.JournalFSDJump, he); textBoxSystem.Text = he.System.Name; panelFD.BackgroundImage = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover) ? EDDiscovery.Icons.Controls.firstdiscover : EDDiscovery.Icons.Controls.notfirstdiscover; discoveryform.history.FillEDSM(he); // Fill in any EDSM info we have //textBoxBody.Text = he.WhereAmI + ((he.IsInHyperSpace) ? " (HS)": ""); textBoxBody.Text = he.WhereAmI + " (" + he.BodyType + ")"; if (he.System.HasCoordinate) // cursystem has them? { string SingleCoordinateFormat = "0.##"; string separ = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator + " "; textBoxPosition.Text = he.System.X.ToString(SingleCoordinateFormat) + separ + he.System.Y.ToString(SingleCoordinateFormat) + separ + he.System.Z.ToString(SingleCoordinateFormat); ISystem homesys = EDCommander.Current.HomeSystemIOrSol; textBoxHomeDist.Text = he.System.Distance(homesys).ToString(SingleCoordinateFormat); textBoxSolDist.Text = he.System.Distance(0, 0, 0).ToString(SingleCoordinateFormat); } else { textBoxPosition.Text = "?"; textBoxHomeDist.Text = ""; textBoxSolDist.Text = ""; } int count = discoveryform.history.GetVisitsCount(he.System.Name); textBoxVisits.Text = count.ToString(); bool enableedddross = (he.System.EDDBID > 0); // Only enable eddb/ross for system that it knows about buttonRoss.Enabled = buttonEDDB.Enabled = enableedddross; string allegiance, economy, gov, faction, factionstate, security; hl.ReturnSystemInfo(he, out allegiance, out economy, out gov, out faction, out factionstate, out security); textBoxAllegiance.Text = allegiance; textBoxEconomy.Text = economy; textBoxGovernment.Text = gov; textBoxState.Text = factionstate; List <MissionState> mcurrent = (from MissionState ms in he.MissionList.Missions.Values where ms.InProgressDateTime(last_he.EventTimeUTC) orderby ms.Mission.EventTimeUTC descending select ms).ToList(); if (mcurrent == null || mcurrent.Count == 0) { richTextBoxScrollMissions.Text = "No Missions".T(EDTx.UserControlSysInfo_NoMissions); } else { string t = ""; foreach (MissionState ms in mcurrent) { t = ObjectExtensionsStrings.AppendPrePad(t, JournalFieldNaming.ShortenMissionName(ms.Mission.Name) + " Exp:" + (EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime()) + " @ " + ms.DestinationSystemStation(), Environment.NewLine); } richTextBoxScrollMissions.Text = t; } SetNote(he.snc != null ? he.snc.Note : ""); textBoxGameMode.Text = he.GameModeGroup; if (he.isTravelling) { textBoxTravelDist.Text = he.TravelledDistance.ToStringInvariant("0.0") + "ly"; textBoxTravelTime.Text = he.TravelledSeconds.ToString(); textBoxTravelJumps.Text = he.TravelledJumpsAndMisses; } else { textBoxTravelDist.Text = textBoxTravelTime.Text = textBoxTravelJumps.Text = ""; } int cc = (he.ShipInformation) != null?he.ShipInformation.CargoCapacity() : 0; if (cc > 0) { textBoxCargo.Text = he.MaterialCommodity.CargoCount.ToStringInvariant() + "/" + cc.ToStringInvariant(); } else { textBoxCargo.Text = he.MaterialCommodity.CargoCount.ToStringInvariant(); } textBoxMaterials.Text = he.MaterialCommodity.MaterialsCount.ToStringInvariant(); textBoxData.Text = he.MaterialCommodity.DataCount.ToStringInvariant(); textBoxCredits.Text = he.Credits.ToString("N0"); textBoxJumpRange.Text = ""; if (he.ShipInformation != null) { ShipInformation si = he.ShipInformation; textBoxShip.Text = si.ShipFullInfo(cargo: false, fuel: false); if (si.FuelCapacity > 0 && si.FuelLevel > 0) { textBoxFuel.Text = si.FuelLevel.ToStringInvariant("0.#") + "/" + si.FuelCapacity.ToStringInvariant("0.#"); } else if (si.FuelCapacity > 0) { textBoxFuel.Text = si.FuelCapacity.ToStringInvariant("0.#"); } else { textBoxFuel.Text = "N/A".T(EDTx.UserControlSysInfo_NA); } EliteDangerousCalculations.FSDSpec fsd = si.GetFSDSpec(); if (fsd != null) { EliteDangerousCalculations.FSDSpec.JumpInfo ji = fsd.GetJumpInfo(he.MaterialCommodity.CargoCount, si.ModuleMass() + si.HullMass(), si.FuelLevel, si.FuelCapacity / 2); //System.Diagnostics.Debug.WriteLine("Jump range " + si.FuelLevel + " " + si.FuelCapacity + " " + ji.cursinglejump); textBoxJumpRange.Text = ji.cursinglejump.ToString("N2") + "ly"; } } else { textBoxShip.Text = textBoxFuel.Text = ""; } RefreshTargetDisplay(this); } else { SetControlText(""); textBoxSystem.Text = textBoxBody.Text = textBoxPosition.Text = textBoxAllegiance.Text = textBoxEconomy.Text = textBoxGovernment.Text = textBoxVisits.Text = textBoxState.Text = textBoxHomeDist.Text = textBoxSolDist.Text = textBoxGameMode.Text = textBoxTravelDist.Text = textBoxTravelTime.Text = textBoxTravelJumps.Text = textBoxCargo.Text = textBoxMaterials.Text = textBoxData.Text = textBoxShip.Text = textBoxFuel.Text = ""; buttonRoss.Enabled = buttonEDDB.Enabled = false; SetNote(""); } }
// double percent = -10; Timer t = new Timer();// play thru harness private void Display(ISystem cursys) { if (currentRoute == null) { DisplayText("Please set a route, by right clicking".T(EDTx.UserControlRouteTracker_NoRoute), "", ""); return; } if (currentRoute.Systems.Count == 0) { DisplayText(currentRoute.Name, "Route contains no waypoints".T(EDTx.UserControlRouteTracker_NoWay), ""); return; } string topline = "", bottomline = "", note = ""; if (!cursys.HasCoordinate) { topline = String.Format("Unknown location".T(EDTx.UserControlRouteTracker_Unk)); bottomline = ""; } else { SavedRouteClass.ClosestInfo closest = currentRoute.ClosestTo(cursys); if (closest == null) // if null, no systems found.. uh oh { topline = String.Format("No systems in route have known co-ords".T(EDTx.UserControlRouteTracker_NoCo)); bottomline = ""; } else { double routedistance = currentRoute.CumulativeDistance(); double distleft = closest.disttowaypoint + (closest.deviation < 0 ? 0 : closest.cumulativewpdist); topline = String.Format("{0} {1} WPs, {2:N1}ly", currentRoute.Name, currentRoute.Systems.Count, routedistance); EliteDangerousCalculations.FSDSpec.JumpInfo ji = currentHE.GetJumpInfo(); string jumpmsg = ""; if (showJumpsToolStripMenuItem.Checked && ji != null) { int jumps = (int)Math.Ceiling(routedistance / ji.avgsinglejump); if (jumps > 0) { topline += ", " + jumps.ToString() + " " + ((jumps == 1) ? "jump".T(EDTx.UserControlRouteTracker_J1) : "jumps".T(EDTx.UserControlRouteTracker_JS)); } jumps = (int)Math.Ceiling(closest.disttowaypoint / ji.avgsinglejump); if (jumps > 0) { jumpmsg = ", " + jumps.ToString() + " " + ((jumps == 1) ? "jump".T(EDTx.UserControlRouteTracker_J1) : "jumps".T(EDTx.UserControlRouteTracker_JS)); } else { jumpmsg = " No Ship FSD Information".T(EDTx.UserControlRouteTracker_NoFSD); } } string wpposmsg = closest.system.Name; if (showWaypointCoordinatesToolStripMenuItem.Checked) { wpposmsg += String.Format(" @{0:N1},{1:N1},{2:N1}", closest.system.X, closest.system.Y, closest.system.Z); } wpposmsg += String.Format(" {0:N1}ly", closest.disttowaypoint); if (closest.deviation < 0) // if not on path { bottomline += closest.cumulativewpdist == 0 ? "From Last WP ".T(EDTx.UserControlRouteTracker_FL) : "To First WP ".T(EDTx.UserControlRouteTracker_TF); bottomline += wpposmsg + jumpmsg; } else { topline += String.Format(", Left {0:N1}ly".T(EDTx.UserControlRouteTracker_LF), distleft); bottomline += String.Format("To WP {0} ".T(EDTx.UserControlRouteTracker_ToWP), closest.waypoint + 1); bottomline += wpposmsg + jumpmsg; if (showDeviationFromRouteToolStripMenuItem.Checked) { bottomline += String.Format(", Dev {0:N1}ly".T(EDTx.UserControlRouteTracker_Dev), closest.deviation); } } if (showBookmarkNotesToolStripMenuItem.Checked) { BookmarkClass bookmark = GlobalBookMarkList.Instance.FindBookmarkOnSystem(cursys.Name); if (bookmark != null) { note = String.Format("Note: {0}".T(EDTx.UserControlRouteTracker_Note), bookmark.Note); } } //System.Diagnostics.Debug.WriteLine("T:" + topline + Environment.NewLine + "B:" + bottomline); string name = closest.system.Name; if (lastsystem == null || name.CompareTo(lastsystem) != 0) { if (autoCopyWPToolStripMenuItem.Checked) { SetClipboardText(name); } if (autoSetTargetToolStripMenuItem.Checked) { string targetName; double x, y, z; TargetClass.GetTargetPosition(out targetName, out x, out y, out z); if (name.CompareTo(targetName) != 0) { TargetHelpers.SetTargetSystem(this, discoveryform, name, false); } } lastsystem = name; } } } DisplayText(topline, bottomline, note); }
void DisplayState(HistoryEntry he, HistoryEntry lastfsd) { pictureBox.ClearImageList(); lastHE = he; lastFSD = lastfsd; if (he != null) { Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor; Color backcolour = IsTransparent ? Color.Black : this.BackColor; int leftstart = 5; int topstart = 5; int coltext = leftstart; ExtendedControls.ExtPictureBox.ImageElement iedsm = null; if (showEDSMStartButtonsToolStripMenuItem.Checked) { iedsm = pictureBox.AddTextAutoSize(new Point(leftstart, topstart), new Size(1000, 1000), "EDSM", displayfont, backcolour, textcolour, 0.5F, he, "View system on EDSM"); iedsm.SetAlternateImage(BaseUtils.BitMapHelpers.DrawTextIntoAutoSizedBitmap("EDSM", iedsm.img.Size, displayfont, backcolour, textcolour.Multiply(1.2F), 0.5F), iedsm.pos, true); coltext = iedsm.pos.Right + displayfont.ScalePixels(8); } backcolour = IsTransparent ? Color.Transparent : this.BackColor; EliteDangerousCalculations.FSDSpec.JumpInfo ji = he.GetJumpInfo(); // may be null string line = String.Format("{0} [{1}]", he.System.Name, discoveryform.history.GetVisitsCount(he.System.Name)); if (showTargetToolStripMenuItem.Checked) { if (TargetClass.GetTargetPosition(out string name, out Point3D tpos)) { double dist = he.System.Distance(tpos.X, tpos.Y, tpos.Z); string mesg = "Left".T(EDTx.UserControlTrippanel_Left); if (ji != null) { int jumps = (int)Math.Ceiling(dist / ji.avgsinglejump); if (jumps > 0) { mesg = jumps.ToString() + " " + ((jumps == 1) ? "jump".T(EDTx.UserControlTrippanel_jump) : "jumps".T(EDTx.UserControlTrippanel_jumps)); } } line += String.Format("-> {0} {1:N1}ly {2}", name, dist, mesg); } else { line += " -> Target not set".T(EDTx.UserControlTrippanel_NoT); } } bool firstdiscovery = (lastfsd != null && (lastfsd.journalEntry as EliteDangerousCore.JournalEvents.JournalFSDJump).EDSMFirstDiscover); int line1hpos = coltext; if (firstdiscovery) { var i1 = pictureBox.AddImage(new Rectangle(line1hpos, 5, 24, 24), Icons.Controls.firstdiscover, null, "Shows if EDSM indicates your it's first discoverer".T(EDTx.UserControlTrippanel_FDEDSM), false); line1hpos = i1.pos.Right + Font.ScalePixels(8); } var eline1 = pictureBox.AddTextAutoSize(new Point(line1hpos, topstart), new Size(1000, 1000), line, displayfont, textcolour, backcolour, 1.0F); int line2vpos = eline1.pos.Bottom + displayfont.ScalePixels(8); line = ""; if (showTravelledDistanceToolStripMenuItem.Checked) { line = String.Format("{0:N1}{1},{2} " + "jumps".T(EDTx.UserControlTrippanel_jumps) + ", {3}", he.TravelledDistance, ((he.TravelledMissingjump > 0) ? "ly*" : "ly"), he.Travelledjumps, he.TravelledSeconds); } ShipInformation si = he.ShipInformation; if (si != null) { string addtext = ""; if (showFuelLevelToolStripMenuItem.Checked) { double fuel = si.FuelLevel; double tanksize = si.FuelCapacity; double warninglevelpercent = si.FuelWarningPercent; addtext = String.Format("{0}/{1}t", fuel.ToString("N1"), tanksize.ToString("N1")); if (warninglevelpercent > 0 && fuel < tanksize * warninglevelpercent / 100.0) { textcolour = discoveryform.theme.TextBlockHighlightColor; addtext += String.Format(" < {0}%", warninglevelpercent.ToString("N1")); } } if (ji != null) { HistoryEntry lastJet = discoveryform.history.GetLastHistoryEntry(x => x.journalEntry.EventTypeID == JournalTypeEnum.JetConeBoost); double boostval = 1; if (lastJet != null && lastfsd != null && lastJet.EventTimeLocal > lastfsd.EventTimeLocal) { boostval = (lastJet.journalEntry as EliteDangerousCore.JournalEvents.JournalJetConeBoost).BoostValue; } string range = ""; if (showCurrentFSDRangeToolStripMenuItem.Checked) { range += String.Format("cur {0:N1}ly{1}", ji.cursinglejump * boostval, boostval > 1 ? " Boost" : ""); } if (showAvgFSDRangeToolStripMenuItem.Checked) { range = range.AppendPrePad(String.Format("avg {0:N1}ly{1}", ji.avgsinglejump * boostval, boostval > 1 ? " Boost" : ""), ", "); } if (showMaxFSDRangeToolStripMenuItem.Checked) { range = range.AppendPrePad(String.Format("max {0:N1}ly{1}", ji.curfumessinglejump * boostval, boostval > 1 ? " Boost" : ""), ", "); } if (showFSDRangeToolStripMenuItem.Checked) { range = range.AppendPrePad(String.Format("{0:N1}ly/{1:N0}", ji.maxjumprange, ji.maxjumps), ", "); } if (range.HasChars()) { addtext = addtext.AppendPrePad(range, " | "); } } if (addtext.HasChars()) { line = line.AppendPrePad(addtext, " | "); } } if (showEDSMStartButtonsToolStripMenuItem.Checked) { ExtendedControls.ExtPictureBox.ImageElement start = pictureBox.AddTextFixedSizeC(new Point(leftstart, line2vpos), iedsm.img.Size, "Start", displayfont, backcolour, textcolour, 0.5F, true, "Start", "Set a journey start point"); start.SetAlternateImage(BaseUtils.BitMapHelpers.DrawTextIntoFixedSizeBitmapC("Start", start.img.Size, displayfont, backcolour, textcolour.Multiply(1.2F), 0.5F, true), start.pos, true); } if (line.HasChars()) { pictureBox.AddTextAutoSize(new Point(coltext, line2vpos), new Size(1000, 40), line, displayfont, textcolour, backcolour, 1.0F); } pictureBox.Render(); } }
public JToken NewSRec(EliteDangerousCore.HistoryList hl, string type, int entry) // entry = -1 means latest { HistoryEntry he = hl.EntryOrder()[entry]; JObject response = new JObject(); response["responsetype"] = type; response["entry"] = entry; JObject systemdata = new JObject(); systemdata["System"] = he.System.Name; systemdata["SystemAddress"] = he.System.SystemAddress; systemdata["PosX"] = he.System.X.ToStringInvariant("0.00"); systemdata["PosY"] = he.System.Y.ToStringInvariant("0.00"); systemdata["PosZ"] = he.System.Z.ToStringInvariant("0.00"); systemdata["EDSMID"] = he.System.EDSMID.ToStringInvariant(); systemdata["VisitCount"] = hl.GetVisitsCount(he.System.Name); response["SystemData"] = systemdata; // TBD.. if EDSMID = 0 , we may not have looked at it in the historywindow, do we want to do a lookup? JObject sysstate = new JObject(); hl.ReturnSystemInfo(he, out string allegiance, out string economy, out string gov, out string faction, out string factionstate, out string security); sysstate["State"] = factionstate; sysstate["Allegiance"] = allegiance; sysstate["Gov"] = gov; sysstate["Economy"] = economy; sysstate["Faction"] = faction; sysstate["Security"] = security; sysstate["MarketID"] = he.MarketID; response["EDDB"] = sysstate; var mcl = hl.MaterialCommoditiesMicroResources.Get(he.MaterialCommodity); int cargocount = MaterialCommoditiesMicroResourceList.CargoCount(mcl); string shipname = "N/A", fuel = "N/A", range = "N/A", tanksize = "N/A"; string cargo = cargocount.ToStringInvariant(); ShipInformation si = he.ShipInformation; if (si != null) { shipname = si.ShipFullInfo(cargo: false, fuel: false); if (si.FuelLevel > 0) { fuel = si.FuelLevel.ToStringInvariant("0.#"); } if (si.FuelCapacity > 0) { tanksize = si.FuelCapacity.ToStringInvariant("0.#"); } EliteDangerousCalculations.FSDSpec fsd = si.GetFSDSpec(); if (fsd != null) { EliteDangerousCalculations.FSDSpec.JumpInfo ji = fsd.GetJumpInfo(cargocount, si.ModuleMass() + si.HullMass(), si.FuelLevel, si.FuelCapacity / 2); range = ji.cursinglejump.ToString("N2") + "ly"; } int cargocap = si.CargoCapacity(); if (cargocap > 0) { cargo += "/" + cargocap.ToStringInvariant(); } } JObject ship = new JObject(); ship["Ship"] = shipname; ship["Fuel"] = fuel; ship["Range"] = range; ship["TankSize"] = tanksize; ship["Cargo"] = cargo; ship["Data"] = MaterialCommoditiesMicroResourceList.DataCount(mcl).ToStringInvariant(); ship["Materials"] = MaterialCommoditiesMicroResourceList.MaterialsCount(mcl).ToStringInvariant(); ship["MicroResources"] = MaterialCommoditiesMicroResourceList.MicroResourcesCount(mcl).ToStringInvariant(); response["Ship"] = ship; JObject travel = new JObject(); if (he.isTravelling) { travel["Dist"] = he.TravelledDistance.ToStringInvariant("0.0"); travel["Jumps"] = he.Travelledjumps.ToStringInvariant(); travel["UnknownJumps"] = he.TravelledMissingjump.ToStringInvariant(); travel["Time"] = he.TravelledSeconds.ToString(); } else { travel["Time"] = travel["Jumps"] = travel["Dist"] = ""; } response["Travel"] = travel; response["Bodyname"] = he.WhereAmI; if (he.System.HasCoordinate) // cursystem has them? { response["HomeDist"] = he.System.Distance(EDCommander.Current.HomeSystemIOrSol).ToString("0.##"); response["SolDist"] = he.System.Distance(0, 0, 0).ToString("0.##"); } else { response["SolDist"] = response["HomeDist"] = "-"; } response["GameMode"] = he.GameModeGroup; response["Credits"] = he.Credits.ToStringInvariant(); response["Commander"] = EDCommander.Current.Name; response["Mode"] = he.TravelState.ToString(); return(response); }
//double percent = -10; Timer t = new Timer();// play thru harness private void Display(ISystem cursys) { if (currentRoute == null) { DisplayText("Please set a route, by right clicking", ""); return; } if (currentRoute.Systems.Count == 0) { DisplayText(currentRoute.Name, "Route contains no waypoints"); return; } string topline = "", bottomline = ""; if (!cursys.HasCoordinate) { topline = String.Format("Unknown location"); bottomline = ""; } else { SavedRouteClass.ClosestInfo closest = currentRoute.ClosestTo(cursys); if (closest == null) // if null, no systems found.. uh oh { topline = String.Format("No systems in route have known co-ords"); bottomline = ""; } else { topline = String.Format("{0} {1} WPs, {2:N1}ly", currentRoute.Name, currentRoute.Systems.Count, currentRoute.CumulativeDistance()); double distleft = closest.disttowaypoint + (closest.deviation < 0 ? 0: closest.cumulativewpdist); string jumpmsg = ""; if (showJumpsToolStripMenuItem.Checked) { EliteDangerousCalculations.FSDSpec.JumpInfo ji = currentHE.GetJumpInfo(); if (ji != null) { int jumps = (int)Math.Ceiling(distleft / ji.avgsinglejump); if (jumps > 0) { jumpmsg = " @ " + jumps.ToString() + ((jumps == 1) ? " jump" : " jumps"); } } else { jumpmsg = " No Ship FSD Information"; } } string wpposmsg = String.Format("{0} @ {1:N1},{2:N1},{3:N1} {4:N1}ly", closest.system.Name, closest.system.X, closest.system.Y, closest.system.Z, closest.disttowaypoint); if (closest.deviation < 0) // if not on path { bottomline += closest.cumulativewpdist == 0 ? "From Last WP " : "To First WP "; bottomline += wpposmsg + jumpmsg; } else { topline += String.Format(", Left {0:N1}ly", distleft); bottomline += String.Format("To WP {0} ", closest.waypoint + 1); bottomline += wpposmsg + jumpmsg; bottomline += String.Format(", Dev {0:N1}ly", closest.deviation); } //System.Diagnostics.Debug.WriteLine("T:" + topline + Environment.NewLine + "B:" + bottomline); string name = closest.system.Name; if (lastsystem == null || name.CompareTo(lastsystem) != 0) { if (autoCopyWPToolStripMenuItem.Checked) { Clipboard.SetText(name); } if (autoSetTargetToolStripMenuItem.Checked) { string targetName; double x, y, z; TargetClass.GetTargetPosition(out targetName, out x, out y, out z); if (name.CompareTo(targetName) != 0) { TargetHelpers.setTargetSystem(this, discoveryform, name, false); } } lastsystem = name; } } } DisplayText(topline, bottomline); }