Exemplo n.º 1
0
        KerbalKonstructsInfo GetKerbalKonstructsSpaceCenterInfo(CommonInfo info, Type scManager)
        {
            Vector3 position = info.Vessel.gameObject.transform.position;

            float distance = 1000.0f;

            string baseName     = null;
            object kkLaunchSite = null;

            object[]             args   = new object[] { position, baseName, distance, kkLaunchSite };
            KerbalKonstructsInfo kkInfo = new KerbalKonstructsInfo();

            try
            {
                Reflect.StaticVoidMethod(scManager, "GetNearestOpenBase", args);
                kkInfo = new KerbalKonstructsInfo
                {
                    SpaceCenter = null,
                    Distance    = (float)args[2],
                    BaseName    = args[1].ToString()
                };
            }
            catch
            {
                kkInfo.BaseName    = "KK Reflection Exception";
                kkInfo.Distance    = float.MaxValue;
                kkInfo.SpaceCenter = null;
            }

            if (kkInfo.BaseName == "KSC")
            {
                kkInfo.BaseName = Configuration.Instance.DefaultSpaceCenterName;
            }
            return(kkInfo);
        }
Exemplo n.º 2
0
        KerbalKonstructsInfo GetKerbalKonstructsSpaceCenterInfo(CommonInfo info, Type scManager)
        {
            Vector3     position       = info.Vessel.gameObject.transform.position;
            SpaceCenter closestCenter  = null;
            float       distance       = 1000.0f;
            float       recoveryFactor = 0.0f;
            float       recoveryRange  = 0.0f;
            string      baseName       = null;
            var         args           = new object[] { position, closestCenter, distance, recoveryFactor, recoveryRange, baseName };

            Reflect.StaticVoidMethod(scManager, "getClosestSpaceCenter", args);
            var kkInfo = new KerbalKonstructsInfo
            {
                SpaceCenter = (SpaceCenter)args[1],
                Distance    = (float)args[2],
                BaseName    = args[5].ToString()
            };

            if (kkInfo.BaseName == "KSC")
            {
                kkInfo.BaseName = Historian.Instance.GetConfiguration().DefaultSpaceCenterName;
            }
            return(kkInfo);
        }