public override void OnLoad(ConfigNode node) { base.OnLoad(node); if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER) { foreach (ConfigNode n in node.GetNodes("EngineConfigUpgrade")) { EngineConfigUpgrade eCfg = null; if (n.HasValue("name")) { string cfgName = n.GetValue("name"); if (configUpgrades.TryGetValue(cfgName, out eCfg)) eCfg.Load(n); else { eCfg = new EngineConfigUpgrade(n); configUpgrades[cfgName] = eCfg; } } } foreach (ConfigNode n in node.GetNodes("TLUpgrade")) { TLUpgrade tU = null; if (n.HasValue("name")) { string tlName = n.GetValue("name"); if (techLevelUpgrades.TryGetValue(tlName, out tU)) tU.Load(n); else { tU = new TLUpgrade(n); techLevelUpgrades[tlName] = tU; } } } } }
public static void FillUpgrades() { if (PartLoader.Instance == null || PartLoader.LoadedPartsList == null) { Debug.LogError("*RFUM: ERROR: Partloader instance null or list null!"); return; } configUpgrades = new Dictionary<string, EngineConfigUpgrade>(); techLevelUpgrades = new Dictionary<string, TLUpgrade>(); for(int a = PartLoader.LoadedPartsList.Count - 1; a >= 0; --a) { AvailablePart ap = PartLoader.LoadedPartsList[a]; if (ap == null) { continue; } Part part = ap.partPrefab; if(part != null) { if (part.Modules == null) continue; for(int i = part.Modules.Count - 1; i >= 0; --i) { PartModule m = part.Modules[i]; if(m is ModuleEngineConfigs) { ModuleEngineConfigs mec = m as ModuleEngineConfigs; mec.CheckConfigs(); for(int j = mec.configs.Count - 1; j >= 0; --j) { ConfigNode cfg = mec.configs[j]; if(cfg.HasValue("name")) { string cfgName = cfg.GetValue("name"); if (RFSettings.Instance.usePartNameInConfigUnlock) cfgName = Utilities.GetPartName(ap) + cfgName; // config upgrades EngineConfigUpgrade eConfig = new EngineConfigUpgrade(cfg, cfgName); configUpgrades[cfgName] = eConfig; eConfig.unlocked = false; // TL upgrades if (mec.techLevel >= 0) { TLUpgrade tU = new TLUpgrade(cfg, mec); techLevelUpgrades[tU.name] = tU; } } } } } } } }
public void FillUpgrades() { if (PartLoader.Instance == null || PartLoader.LoadedPartsList == null) { Debug.LogError("*RFUM: ERROR: Partloader instance null or list null!"); return; } for(int a = PartLoader.LoadedPartsList.Count - 1; a >= 0; --a) { AvailablePart ap = PartLoader.LoadedPartsList[a]; if (ap == null) { continue; } Part part = ap.partPrefab; if(part != null) { if (part.Modules == null) continue; for(int i = part.Modules.Count - 1; i >= 0; --i) { PartModule m = part.Modules[i]; if(m is ModuleEngineConfigs) { ModuleEngineConfigs mec = m as ModuleEngineConfigs; mec.CheckConfigs(); for(int j = mec.configs.Count - 1; j >= 0; --j) { ConfigNode cfg = mec.configs[j]; if(cfg.HasValue("name")) { string cfgName = cfg.GetValue("name"); if (RFSettings.Instance.usePartNameInConfigUnlock) cfgName = Utilities.GetPartName(ap) + cfgName; // config upgrades EngineConfigUpgrade eConfig = new EngineConfigUpgrade(cfg, cfgName); configUpgrades[cfgName] = eConfig; if (ResearchAndDevelopment.Instance != null && ap.TechRequired != null) { if(ResearchAndDevelopment.PartModelPurchased(ap)) { if (cfg.HasValue("techRequired")) { string tech = cfg.GetValue("techRequired"); if (tech != "" && tech != ap.TechRequired) continue; } bool unlocked = false; if (cfg.HasValue("unlocked")) bool.TryParse(cfg.GetValue("unlocked"), out unlocked); if (mec.autoUnlock || unlocked) eConfig.unlocked = true; } else eConfig.unlocked = false; // TL upgrades if (mec.techLevel >= 0) { TLUpgrade tU = new TLUpgrade(cfg, mec); techLevelUpgrades[tU.name] = tU; } } } } } } } } }