Ejemplo n.º 1
0
        [KSPEvent(name = "EventTransmit", guiActive = false, guiActiveEditor = false, guiName = "#RT_ModuleUI_Transmit")]//Transmit all science
        public void EventTransmit()
        {
            if (mTransmitter != null && mTransmitter.CanTransmit())
            {
                List <ScienceData> scienceDataList = new List <ScienceData>();
                for (int i = 0; i < vessel.parts.Count; i++)
                {
                    //get experiments
                    var experiments = vessel.parts[i].FindModulesImplementing <ModuleScienceExperiment>();
                    for (int j = 0; j < experiments.Count; j++)
                    {
                        if (experiments[j].HasExperimentData)
                        {
                            var scienceData = experiments[j].GetData();
                            for (int k = 0; k < scienceData.Length; k++)
                            {
                                experiments[j].DumpData(scienceData[k]);
                            }
                            scienceDataList.AddRange(scienceData);
                        }
                    }

                    //get containers of stored experiments
                    var scienceContainers = vessel.parts[i].FindModulesImplementing <ModuleScienceContainer>();
                    for (int j = 0; j < scienceContainers.Count; j++)
                    {
                        if (scienceContainers[j].GetStoredDataCount() > 0)
                        {
                            var scienceData = scienceContainers[j].GetData();
                            for (int k = 0; k < scienceData.Length; k++)
                            {
                                scienceContainers[j].DumpData(scienceData[k]);
                            }
                            scienceDataList.AddRange(scienceData);
                        }
                    }
                }

                if (scienceDataList.Count > 0)
                {
                    mTransmitter.TransmitData(scienceDataList);
                }
            }
        }