public Pixel FindClosestStreetPixel(Pixel activeBuilding) { Pixel outPix; List <PixelScore> tempPixels = new List <PixelScore>(); Vector3Int activePos = activeBuilding.Position; for (int i = 0; i < mapHeight; i++) { for (int j = 0; j < mapWidth; j++) { var pix = mapPixels[i, j]; //if is street if (pix.IsActive) { var dist = Vector3.Distance(activePos, pix.Position); var scored = new PixelScore(pix, dist); tempPixels.Add(scored); } } } var sortedPix = tempPixels.OrderBy(d => d.getScore).ToList(); outPix = sortedPix[0].getPixel; return(outPix); }
public List <Pixel> FindClosestStreetPixels(Pixel activeBuilding, int index) { List <Pixel> outPix = new List <Pixel>(); List <PixelScore> tempPixels = new List <PixelScore>(); var bldgChild = activeBuilding.DisplayBuilding.transform.GetChild(index); var localPos = bldgChild.transform.localPosition; var combinedPos = localPos + activeBuilding.WorldPosition; Vector3 activePos = activeBuilding.Position; for (int i = 0; i < mapHeight; i++) { for (int j = 0; j < mapWidth; j++) { var pix = mapPixels[i, j]; //if is street if (pix.IsActive) { var dist = Vector3.Distance(combinedPos, pix.WorldPosition); var scored = new PixelScore(pix, dist); tempPixels.Add(scored); } } } var sortedPix = tempPixels.OrderBy(d => d.getScore).ToList(); List <PixelScore> selectedPix = new List <PixelScore>(); selectedPix = sortedPix.GetRange(0, 2); for (int i = 0; i < selectedPix.Count; i++) { var pix = selectedPix[i].getPixel; outPix.Add(pix); } return(outPix); }