private void PlasmaDrive_Click(object sender, RoutedEventArgs e)
 {
     if (Starship.Hull == null)
         MessageBox.Show("Can't select components until you've selected a hull");
     else
     {
         Essential dialog = new Essential(loader.PlasmaDrives.Where(x => (x.HullTypes & Starship.Hull.HullTypes) != 0).Highest(), typeof(PlasmaDrive), Starship.PlasmaDrive);
         //TODO: show only largest variant engines??
         Starship.PlasmaDrive = (PlasmaDrive)dialog.ShowDialog();
         UpdatePlasma();
     }
 }
 private void LifeSustainer_Click(object sender, RoutedEventArgs e)
 {
     if (Starship.Hull == null)
         MessageBox.Show("Can't select components until you've selected a hull");
     else
     {
         Essential dialog = new Essential(loader.LifeSustainers.Where(x => (x.HullTypes & Starship.Hull.HullTypes) != 0).Highest(), typeof(LifeSustainer), Starship.LifeSustainer);
         Starship.LifeSustainer = (LifeSustainer)dialog.ShowDialog();
         UpdateLife();
     }
 }
 private void CrewQuarters_Click(object sender, RoutedEventArgs e)
 {
     if (Starship.Hull == null)
         MessageBox.Show("Can't select components until you've selected a hull");
     else
     {
         Essential dialog = new Essential(loader.CrewQuarters.Where(x => (x.HullTypes & Starship.Hull.HullTypes) != 0).Highest(), typeof(CrewQuarters), Starship.CrewQuarters);
         Starship.CrewQuarters = (CrewQuarters)dialog.ShowDialog();
         UpdateQuarters();
     }
 }
 private void GellarField_Click(object sender, RoutedEventArgs e)
 {
     if (Starship.Hull == null)
         MessageBox.Show("Can't select components until you've selected a hull");
     else
     {
         Essential dialog = new Essential(loader.GellarFields.Where(x => (x.HullTypes & Starship.Hull.HullTypes) != 0).Highest(), typeof(GellarField), Starship.GellarField);
         Starship.GellarField = (GellarField)dialog.ShowDialog();
         UpdateGellar();
     }
 }
 private void WarpDrive_Click(object sender, RoutedEventArgs e)
 {
     if (Starship.Hull == null)
         MessageBox.Show("Can't select components until you've selected a hull");
     else
     {
         Essential dialog = new Essential(loader.WarpDrives.Where(x => (x.HullTypes & Starship.Hull.HullTypes) != 0).Highest(), typeof(WarpDrive), Starship.WarpDrive);
         Starship.WarpDrive = (WarpDrive)dialog.ShowDialog();
         UpdateWarp();
     }
 }