MultiEditor.MultiEditorComponentList.GetSelected C# (CSharp) Method

GetSelected() public method

Gets MultiTile from given Pixel Location
public GetSelected ( Point mouseLoc, int maxheight, bool drawFloor ) : MultiTile
mouseLoc Point
maxheight int
drawFloor bool
return MultiTile
        public MultiTile GetSelected(Point mouseLoc, int maxheight, bool drawFloor)
        {
            if (Width == 0 || Height == 0)
                return null;
            MultiTile selected = null;
            if (mouseLoc != Point.Empty)
            {
                for (int i = Tiles.Count - 1; i >= 0; --i) // inverse for speedup
                {
                    MultiTile tile = Tiles[i];
                    if (tile.isVirtualFloor)
                        continue;
                    if (tile.Z > maxheight)
                        continue;
                    if ((drawFloor) && (Parent.DrawFloorZ > tile.Z))
                        continue;
                    Bitmap bmp = tile.GetBitmap();
                    if (bmp == null)
                        continue;
                    int px = tile.Xmod;
                    int py = tile.Ymod;
                    px -= xMin;
                    py -= yMin;
                    if (((mouseLoc.X > px) && (mouseLoc.X < (px + bmp.Width))) &&
                        ((mouseLoc.Y > py) && (mouseLoc.Y < (py + bmp.Height))))
                    {
                        //Check for transparent part
                        Color p = bmp.GetPixel(mouseLoc.X - px, mouseLoc.Y - py);
                        if (!((p.R == 0) && (p.G == 0) && (p.B == 0)))
                        {
                            selected = tile;
                            break;
                        }
                    }
                }
            }
            return selected;
        }