示例#1
0
        /// <summary>
        /// Use this whenever possible. Note this cannot be used during deployment.
        /// </summary>
        internal static DeployedScienceCluster GetScienceCluster(Vessel v)
        {
            if (!Enabled)
            {
                return(null);
            }

            foreach (var cluster in DeployedScience.Instance.DeployedScienceClusters.Values)
            {
                if (v.loaded)
                {
                    Part part = null;
                    if (FlightGlobals.FindLoadedPart(cluster.ControlModulePartId, out part))
                    {
                        if (part.vessel == v)
                        {
                            return(cluster);
                        }
                    }
                }
                else
                {
                    ProtoPartSnapshot snapshot;
                    if (FlightGlobals.FindUnloadedPart(cluster.ControlModulePartId, out snapshot))
                    {
                        if (snapshot.pVesselRef == v.protoVessel)
                        {
                            return(cluster);
                        }
                    }
                }
            }

            return(null);
        }