internal static string DisplayVesselResourceTotals(ModDockedVessel modDockedVessel, List<string> selectedResources) { string displayAmount = ""; double currAmount = 0; double totAmount = 0; try { List<ModDockedVessel> modDockedVessels = new List<ModDockedVessel>(); modDockedVessels.Add(modDockedVessel); foreach (Part part in SMAddon.smController.GetSelectedVesselsParts(modDockedVessels, selectedResources)) { currAmount += part.Resources[selectedResources[0]].amount; totAmount += part.Resources[selectedResources[0]].maxAmount; } } catch (Exception ex) { Utilities.LogMessage(String.Format(" in DisplayVesselResourceTotals(). Error: {0}", ex.ToString()), "Error", true); } displayAmount = string.Format("({0}/{1})", currAmount.ToString("#######0"), totAmount.ToString("######0")); return displayAmount; }
private static string GetResourceDescription(List<string> SelectedResources, ModDockedVessel modDockedVvessel) { string strDescription = ""; strDescription = DisplayVesselResourceTotals(modDockedVvessel, SelectedResources) + " - " + modDockedVvessel.VesselName; return strDescription; }
private static bool IsVesselSelectable(string SelectedResource, SMAddon.XFERDirection xferMode, ModDockedVessel modDockedVessel) { bool isSelectable = true; if (xferMode == SMAddon.XFERDirection.SourceToTarget) { if (SMAddon.smController.SelectedVesselsTarget.Contains(modDockedVessel)) isSelectable = false; } else { if (SMAddon.smController.SelectedVesselsSource.Contains(modDockedVessel)) isSelectable = false; } return isSelectable; }
private static GUIStyle GetVesselButtonStyle(SMAddon.XFERDirection xferMode, ModDockedVessel modDockedVessel) { GUIStyle style = SMStyle.ButtonSourceStyle; if (xferMode == SMAddon.XFERDirection.SourceToTarget) { if (SMAddon.smController.SelectedVesselsSource.Contains(modDockedVessel)) style = SMStyle.ButtonToggledSourceStyle; else style = SMStyle.ButtonSourceStyle; } else { if (SMAddon.smController.SelectedVesselsTarget.Contains(modDockedVessel)) style = SMStyle.ButtonToggledTargetStyle; else style = SMStyle.ButtonTargetStyle; } return style; }
private static void VesselButtonToggled(SMAddon.XFERDirection xferMode, ModDockedVessel modVessel) { string step = "Vessel Button Toggled"; try { if (xferMode == SMAddon.XFERDirection.SourceToTarget) { // Now lets update the list... if (SMAddon.smController.SelectedVesselsSource.Contains(modVessel)) SMAddon.smController.SelectedVesselsSource.Remove(modVessel); else SMAddon.smController.SelectedVesselsSource.Add(modVessel); SMAddon.smController.SelectedPartsSource = SMAddon.smController.GetSelectedVesselsParts(SMAddon.smController.SelectedVesselsSource, SMAddon.smController.SelectedResources); } else { if (SMAddon.smController.SelectedVesselsTarget.Contains(modVessel)) SMAddon.smController.SelectedVesselsTarget.Remove(modVessel); else SMAddon.smController.SelectedVesselsTarget.Add(modVessel); SMAddon.smController.SelectedPartsTarget = SMAddon.smController.GetSelectedVesselsParts(SMAddon.smController.SelectedVesselsTarget, SMAddon.smController.SelectedResources); } WindowManifest.ReconcileSelectedXferParts(SMAddon.smController.SelectedResources); step = "Set Xfer amounts?"; foreach (TransferResource modResource in SMAddon.smController.ResourcesToXfer) { modResource.srcXferAmount = TransferResource.CalcMaxResourceXferAmt(SMAddon.smController.SelectedPartsSource, SMAddon.smController.SelectedPartsTarget, modResource.ResourceName); modResource.tgtXferAmount = TransferResource.CalcMaxResourceXferAmt(SMAddon.smController.SelectedPartsTarget, SMAddon.smController.SelectedPartsSource, modResource.ResourceName); } } catch (Exception ex) { if (!SMAddon.frameErrTripped) { Utilities.LogMessage("Error in WindowTransfer.VesselButtonToggled (" + xferMode.ToString() + ") at step: " + step + ". Error: " + ex.ToString(), "Error", true); SMAddon.frameErrTripped = true; } } }