public static bool TargetValid()
        {
            if (FlightGlobals.ActiveVessel == null ||
                FlightGlobals.ActiveVessel.targetObject == null ||
                FlightGlobals.ActiveVessel.targetObject.GetOrbit() == null ||
                FlightGlobals.ActiveVessel.targetObject.GetOrbit().referenceBody == null ||
                FlightGlobals.ActiveVessel.orbit == null ||
                FlightGlobals.ActiveVessel.orbit.referenceBody == null)
            {
                _targetBody      = null;
                _vesselIntersect = false;
                _bodyIntersect   = false;
                _updated         = false;
                _activeVessel    = null;
                _activeBody      = null;
                _targetObject    = null;
                _targetTransform = null;
                return(false);
            }

            _activeVessel = FlightGlobals.ActiveVessel;
            _activeBody   = FlightGlobals.currentMainBody;
            _targetObject = _activeVessel.targetObject;

            if (_targetObject.GetVessel() == null)
            {
                if (_targetObject.GetOrbit() == null)
                {
                    _targetBody  = null;
                    _isCelestial = false;
                    _isVessel    = false;
                }
                else if (_targetObject.GetOrbitDriver().celestialBody != null)
                {
                    _targetBody  = _targetObject.GetOrbitDriver().celestialBody;
                    _isCelestial = true;
                    _isVessel    = false;
                }
                else
                {
                    _targetBody  = null;
                    _isCelestial = false;
                    _isVessel    = false;
                }
            }
            else
            {
                _targetBody        = null;
                _isCelestial       = false;
                _isVessel          = true;
                _targetTransform   = FlightGlobals.fetch.vesselTargetTransform;
                _vesselTargetDelta = FlightGlobals.fetch.vesselTargetDelta;
            }

            return(true);
        }
Beispiel #2
0
        public static void LogTargetInfo(ITargetable target)
        {
            var   method      = typeof(OrbitRenderer).GetMethod("GetOrbitColour", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            Color orbitColor2 = (Color)method.Invoke(target.GetOrbitDriver().Renderer, new object[0]);

            Logger.Debug("Target name: " + target.GetName());
            Logger.Debug("Target orbit color 1: " + target.GetOrbitDriver().Renderer.orbitColor);
            Logger.Debug("Target orbit color 2: " + orbitColor2);
            Logger.Debug("Target in vessel list: " + FlightGlobals.Vessels.Contains(target.GetVessel()));
            Logger.Debug("Target same orbit renderer: " + (target.GetOrbitDriver().Renderer == target.GetVessel().orbitRenderer));
            Logger.Debug("Target orbit renderer mode: " + target.GetOrbitDriver().Renderer.drawMode);
            Logger.Debug("Target isActive: " + target.GetOrbitDriver().Renderer.isActive);
            Logger.Debug("Target isFocused: " + target.GetOrbitDriver().Renderer.isFocused);
            Logger.Debug("Target orbit driver draw: " + target.GetOrbitDriver().drawOrbit);
            Logger.Debug("Target orbit driver update mode: " + target.GetOrbitDriver().updateMode);
            Logger.Debug("Target orbit driver last mode: " + target.GetOrbitDriver().lastMode);
            Logger.Debug("Target orbit driver color: " + target.GetOrbitDriver().orbitColor);
            Logger.Debug("Target has conic renderer: " + (target.GetVessel().patchedConicRenderer != null));
        }
Beispiel #3
0
        private bool MouseOverTargetable(ITargetable targetable)
        {
            bool result = false;

            OrbitDriver targetDriver = targetable.GetOrbitDriver();

            OrbitRenderer.OrbitCastHit rendererHit = default(OrbitRenderer.OrbitCastHit);
            if (targetDriver != null && targetDriver.Renderer.OrbitCast(Input.mousePosition, out rendererHit))
            {
                result          = true;
                _hitOrbit       = rendererHit.or.driver.orbit;
                _hitScreenPoint = rendererHit.GetScreenSpacePoint();
                _hitUT          = rendererHit.UTatTA;
            }

            return(result);
        }
 public OrbitDriver GetOrbitDriver()
 {
     return(target == null? null : target.GetOrbitDriver());
 }
        private bool MouseOverTargetable(ITargetable targetable)
        {
            bool result = false;

            OrbitDriver targetDriver = targetable.GetOrbitDriver();
            OrbitRenderer.OrbitCastHit rendererHit = default(OrbitRenderer.OrbitCastHit);
            if (targetDriver != null && targetDriver.Renderer.OrbitCast(Input.mousePosition, out rendererHit))
            {
                result = true;
                _hitOrbit = rendererHit.or.driver.orbit;
                _hitScreenPoint = rendererHit.GetScreenSpacePoint();
                _hitUT = rendererHit.UTatTA;
            }

            return result;
        }