private static GUIStyle GetVesselButtonStyle(TransferPump.TypePump pumpType, ModDockedVessel modDockedVessel)
 {
     GUIStyle style;
       if (pumpType == TransferPump.TypePump.SourceToTarget)
       {
     style = SMAddon.SmVessel.SelectedVesselsSource.Contains(modDockedVessel)
       ? SMStyle.ButtonToggledSourceStyle
       : SMStyle.ButtonSourceStyle;
       }
       else
       {
     style = SMAddon.SmVessel.SelectedVesselsTarget.Contains(modDockedVessel)
       ? SMStyle.ButtonToggledTargetStyle
       : SMStyle.ButtonTargetStyle;
       }
       return style;
 }
 private static string GetResourceDescription(List<string> selectedResources, ModDockedVessel modDockedVvessel)
 {
     string strDescription = GetVesselResourceTotals(modDockedVvessel, selectedResources) + " - " +
                    modDockedVvessel.VesselName;
       return strDescription;
 }
        internal static string GetVesselResourceTotals(ModDockedVessel modDockedVessel, List<string> selectedResources)
        {
            double currAmount = 0;
              double totAmount = 0;
              try
              {
            List<ModDockedVessel> modDockedVessels = new List<ModDockedVessel> { modDockedVessel };
            List<Part>.Enumerator parts = SMAddon.SmVessel.GetSelectedVesselsParts(modDockedVessels, selectedResources).GetEnumerator();
            while (parts.MoveNext())
            {
              if (parts.Current == null) continue;
              currAmount += parts.Current.Resources[selectedResources[0]].amount;
              totAmount += parts.Current.Resources[selectedResources[0]].maxAmount;
            }
              }
              catch (Exception ex)
              {
            Utilities.LogMessage(string.Format(" in DisplayVesselResourceTotals().  Error:  {0}", ex), Utilities.LogType.Error, true);
              }
              string displayAmount = string.Format("({0}/{1})", currAmount.ToString("#######0"), totAmount.ToString("######0"));

              return displayAmount;
        }
 private static bool CanSelectVessel(TransferPump.TypePump pumpType, ModDockedVessel modDockedVessel)
 {
     bool isSelectable = true;
       if (pumpType == TransferPump.TypePump.SourceToTarget)
       {
     if (SMAddon.SmVessel.SelectedVesselsTarget.Contains(modDockedVessel))
       isSelectable = false;
       }
       else
       {
     if (SMAddon.SmVessel.SelectedVesselsSource.Contains(modDockedVessel))
       isSelectable = false;
       }
       return isSelectable;
 }
 private static void VesselButtonToggled(TransferPump.TypePump pumpType, ModDockedVessel modVessel)
 {
     string step = "Vessel Button Toggled";
       try
       {
     if (pumpType == TransferPump.TypePump.SourceToTarget)
     {
       // Now lets update the list...
       if (SMAddon.SmVessel.SelectedVesselsSource.Contains(modVessel))
     SMAddon.SmVessel.SelectedVesselsSource.Remove(modVessel);
       else
     SMAddon.SmVessel.SelectedVesselsSource.Add(modVessel);
       SMAddon.SmVessel.SelectedPartsSource =
     SMAddon.SmVessel.GetSelectedVesselsParts(SMAddon.SmVessel.SelectedVesselsSource,
       SMAddon.SmVessel.SelectedResources);
     }
     else
     {
       if (SMAddon.SmVessel.SelectedVesselsTarget.Contains(modVessel))
     SMAddon.SmVessel.SelectedVesselsTarget.Remove(modVessel);
       else
     SMAddon.SmVessel.SelectedVesselsTarget.Add(modVessel);
       SMAddon.SmVessel.SelectedPartsTarget =
     SMAddon.SmVessel.GetSelectedVesselsParts(SMAddon.SmVessel.SelectedVesselsTarget,
       SMAddon.SmVessel.SelectedResources);
     }
     WindowManifest.ResolveResourcePartSelections(SMAddon.SmVessel.SelectedResources);
       }
       catch (Exception ex)
       {
     if (!SMAddon.FrameErrTripped)
     {
       Utilities.LogMessage(
     "Error in WindowTransfer.VesselButtonToggled (" + pumpType + ") at step:  " + step + ".  Error:  " + ex,
     Utilities.LogType.Error, true);
       SMAddon.FrameErrTripped = true;
     }
       }
 }