Exemple #1
0
        protected void ScanGrid(RadarableGrid RGrid)
        {
            //if (DetectedEntities.Any(x => x.EntityId == RGrid.Grid.EntityId)) return;

            float Distance = this.DistanceTo(RGrid);

            if (Distance <= RadarCore.GuaranteedDetectionRange)
            {
                AddEntity(RGrid.Grid, RGrid.Position);
                return;
            }

            Vector3D?Hit;

            if (!DetectorModule.IsInView(RGrid.Grid, out Hit))
            {
                RadarCore.DebugWrite($"{RadarBlock.CustomName}.ScanGrid({RGrid.DisplayName})", "discarded: invisible by ray", true);
                return;
            }

            RadarCore.DebugWrite($"{RadarBlock.CustomName}.ScanGrid({RGrid.DisplayName})", $"Grid rate={RGrid.ActiveDetectionRate}, rate/dist={Math.Round(MyRadarGrid.TotalRadarPower / Position.DistanceTo(RGrid.Position), 2)}", true);

            float RayPower = ActiveRadar ? PowerModule.EffectiveRadarPower : 800;

            if (RGrid.HasMarker && RGrid.MarkerRange >= Distance)
            {
                AddEntity(RGrid.Grid, null);
                return;
            }
            else if (DetectorModule.CanDetectUsingActiveRadar(RGrid) || DetectorModule.CanDetectByRadar(RGrid) || DetectorModule.CanDetectByHeat(RGrid) || DetectorModule.CanDetectByGravity(RGrid))
            {
                AddEntity(RGrid.Grid, RGrid.Position);
                return;
            }
        }
Exemple #2
0
        protected void ScanEntity(IMyEntity Entity)
        {
            //if (DetectedEntities.Any(x => x.EntityId == Entity.EntityId)) return;
            float Distance = this.DistanceTo(Entity);

            Vector3D?Hit;

            if (!DetectorModule.IsInView(Entity, out Hit))
            {
                return;
            }

            float RayPower = ActiveRadar ? PowerModule.EffectiveRadarPower : 800;

            if (Distance <= RadarCore.GuaranteedDetectionRange || RayPower >= Distance)
            {
                AddEntity(Entity, Hit);
            }
        }