Пример #1
0
        public MineralScanResult Build()
        {
            var nodes    = _mineralLayer.GetNodesByArea(ScanArea);
            var foundAny = false;

            var data = new uint[ScanArea.Width * ScanArea.Height];

            long sum = 0;

            var offset = 0;

            for (var y = ScanArea.Y1; y <= ScanArea.Y2; y++)
            {
                for (var x = ScanArea.X1; x <= ScanArea.X2; x++)
                {
                    if (ScanArea.ContainsInInnerCircle(x, y))
                    {
                        foreach (var node in nodes)
                        {
                            var value = node.GetValue(x, y);
                            if (value <= 0)
                            {
                                continue;
                            }

                            foundAny = true;

                            var  m = FastRandom.NextDouble(ScanAccuracy, 1.0);
                            uint a = (uint)(value * m);
                            data[offset] = a;

                            sum += a;
                            break;
                        }
                    }

                    offset++;
                }
            }

            var result = new MineralScanResult(data)
            {
                ScanAccuracy = ScanAccuracy,
                FoundAny     = foundAny,
                Area         = ScanArea,
                MaterialType = _mineralLayer.Type,
                ZoneId       = _mineralLayer.Configuration.ZoneId,
                Creation     = DateTime.Now,
                Quality      = sum
            };

            return(result);
        }
Пример #2
0
 public ScanAreaModel(ScanArea scanArea)
 {
     this.Key            = scanArea.Key;
     this.X              = scanArea.X;
     this.Y              = scanArea.Y;
     this.Width          = scanArea.Width;
     this.Height         = scanArea.Height;
     this.Hash           = scanArea.Hash;
     this.ImageLocation  = scanArea.Image;
     this.BaseResolution = scanArea.BaseResolution;
     this.Mostly         = scanArea.Mostly;
     // this.Image = GetAreaImage(scanArea.Key);
 }
Пример #3
0
 public ScanAreaModel(ScanArea scanArea)
 {
     Key            = scanArea.Key;
     X              = scanArea.X;
     Y              = scanArea.Y;
     Width          = scanArea.Width;
     Height         = scanArea.Height;
     Hash           = scanArea.Hash;
     ImageLocation  = scanArea.Image;
     BaseResolution = scanArea.BaseResolution;
     Mostly         = scanArea.Mostly;
     // this.Image = GetAreaImage(scanArea.Key);
 }