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); }
public override bool AppliesToVehicle(VehicleDef def) => def.HasComp(typeof(CompVehicleLauncher));
public override bool AppliesToVehicle(VehicleDef def) => def.HasComp(typeof(CompFueledTravel));