Questor.Modules.BackgroundTasks.Salvage.MoveIntoRangeOfWrecks C# (CSharp) Method

MoveIntoRangeOfWrecks() public static method

public static MoveIntoRangeOfWrecks ( ) : void
return void
        public static void MoveIntoRangeOfWrecks()
        {
            //we cant move in bastion mode, do not try
            List<ModuleCache> bastionModules = null;
            bastionModules = Cache.Instance.Modules.Where(m => m.GroupId == (int)Group.Bastion && m.IsOnline).ToList();
            if (bastionModules.Any(i => i.IsActive)) return;

            EntityCache closestWreck = Cache.Instance.UnlootedContainers.OrderBy(o => o.Distance).FirstOrDefault();
            if (closestWreck != null && (Math.Round(closestWreck.Distance, 0) > (int)Distances.SafeScoopRange))
            {
                if (Cache.Instance.Approaching == null || Cache.Instance.Approaching.Id != closestWreck.Id || Cache.Instance.MyShipEntity.Velocity < 50)
                {
                    if (closestWreck.Distance > (int)Distances.WarptoDistance)
                    {
                        if (closestWreck.WarpTo())
                        {
                            Logging.Log("Salvage.NavigateIntorangeOfWrecks", "Warping to [" + Logging.Yellow + closestWreck.Name + Logging.White + "] which is [" + Logging.Yellow + Math.Round(closestWreck.Distance / 1000, 0) + Logging.White + "k away]", Logging.White);
                            return;
                        }

                        return;
                    }

                    if (Cache.Instance.NextApproachAction < DateTime.UtcNow)
                    {
                        Logging.Log("Salvage.NavigateIntorangeOfWrecks", "Approaching [" + Logging.Yellow + closestWreck.Name + Logging.White + "] which is [" + Logging.Yellow + Math.Round(closestWreck.Distance / 1000, 0) + Logging.White + "k away]", Logging.White);
                        closestWreck.Approach();
                        return;
                    }

                    return;
                }

                return;
            }

            if (closestWreck != null && (closestWreck.Distance <= (int)Distances.SafeScoopRange && Cache.Instance.Approaching != null))
            {
                if (Cache.Instance.NextApproachAction < DateTime.UtcNow)
                {
                    if (Cache.Instance.MyShipEntity.Velocity != 0 && DateTime.UtcNow > Cache.Instance.NextApproachAction)
                    {
                        NavigateOnGrid.StopMyShip();
                        Logging.Log("Salvage.NavigateIntorangeOfWrecks", "Stop ship, ClosestWreck [" + Logging.Yellow + Math.Round(closestWreck.Distance, 0) + Logging.White + "] is in scooprange + [" + (int)Distances.SafeScoopRange + "] and we were approaching", Logging.White);
                        return;
                    }
                }
            }
            return;
        }