public override void OnStart(StartState state) { moduleScienceLab = part.FindModuleImplementing <ModuleScienceLab>(); moduleScienceConverter = part.FindModuleImplementing <ModuleScienceConverter>(); if (moduleScienceConverter != null && moduleScienceLab != null) { DetermineTechLevel(); var scienceCap = GetScienceCap(); moduleScienceLab.dataStorage = scienceCap; moduleScienceConverter.scienceCap = scienceCap; var deminishingScienceModifier = moduleScienceLab.dataStored >= baseDataStorage ? 1 : moduleScienceLab.dataStored / baseDataStorage; dataProcessingMultiplier = moduleScienceLab.dataStored < float.Epsilon ? 0.5f : deminishingScienceModifier * (baseDataStorage / moduleScienceLab.dataStorage) * (moduleScienceLab.dataStorage / moduleScienceLab.dataStored) * 0.5f; moduleScienceConverter.dataProcessingMultiplier = dataProcessingMultiplier; } if (state == StartState.Editor) { if (this.HasTechsRequiredToUpgrade()) { isupgraded = true; upgradePartModule(); } return; } if (isupgraded) { upgradePartModule(); } else { if (this.HasTechsRequiredToUpgrade()) { hasRequiredUpgrade = true; } } // update gui names /* * Events["BeginResearch"].guiName = beginResearchName; */ reprocessor = new NuclearFuelReprocessor(); reprocessor.Initialize(part); antimatterGenerator = new AntimatterGenerator(part, 1, PartResourceLibrary.Instance.GetDefinition(KITResourceSettings.AntiProtium)); Debug.Log("[KSPI]: ScienceModule on " + part.name + " was Force Activated"); part.force_activate(); anim = part.FindModelAnimators(animName1).FirstOrDefault(); anim2 = part.FindModelAnimators(animName2).FirstOrDefault(); if (anim != null && anim2 != null) { if (IsEnabled) { //anim [animName1].normalizedTime = 1f; //anim2 [animName2].normalizedTime = 1f; //anim [animName1].speed = -1f; //anim2 [animName2].speed = -1f; anim.Blend(animName1, 1, 0); anim2.Blend(animName2, 1, 0); } else { //anim [animName1].normalizedTime = 0f; //anim2 [animName2].normalizedTime = 0f; //anim [animName1].speed = 1f; //anim2 [animName2].speed = 1f; //anim.Blend (animName1, 0, 0);global_rate_multipliers //anim2.Blend (animName2, 0, 0); play_down = false; } //anim.Play (); //anim2.Play (); } }