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); }
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); }
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); }