public static bool PopulateSaveableUpgrades(VehicleDef def, bool hardReset = false)
 {
     try
     {
         if (hardReset)
         {
             VehicleMod.settings.upgrades.upgradeSettings.Remove(def.defName);
         }
         if (def.HasComp(typeof(CompUpgradeTree)))
         {
             if (!VehicleMod.settings.upgrades.upgradeSettings.TryGetValue(def.defName, out var currentUpgradeDict))
             {
                 VehicleMod.settings.upgrades.upgradeSettings.Add(def.defName, new Dictionary <SaveableField, SavedField <object> >());
                 currentUpgradeDict = VehicleMod.settings.upgrades.upgradeSettings[def.defName];
                 foreach (UpgradeNode node in def.GetSortedCompProperties <CompProperties_UpgradeTree>().upgrades)
                 {
                     IterateUpgradeNode(def, node, ref currentUpgradeDict);
                 }
                 //Redundancy only
                 VehicleMod.settings.upgrades.upgradeSettings[def.defName] = currentUpgradeDict;
             }
         }
     }
     catch (Exception ex)
     {
         Log.Error($"Failed to populate upgrade settings for {def.defName}. Exception=\"{ex.Message}\"\nInnerException=\"{ex.InnerException}\"");
         return(false);
     }
     return(true);
 }
Beispiel #2
0
 public override bool AppliesToVehicle(VehicleDef def) => def.HasComp(typeof(CompVehicleLauncher));
Beispiel #3
0
 public override bool AppliesToVehicle(VehicleDef def) => def.HasComp(typeof(CompFueledTravel));