TMXGlueLib.TilesetExtensionMethods.CoordinateToIndex C# (CSharp) Method

CoordinateToIndex() public static method

public static CoordinateToIndex ( this tileset, int xCoordinate, int yCoordinate, int &xIndex, int &yIndex ) : void
tileset this
xCoordinate int
yCoordinate int
xIndex int
yIndex int
return void
        public static void CoordinateToIndex(this Tileset tileset, int xCoordinate, int yCoordinate, out int xIndex, out int yIndex)
        {
            xIndex = 0;
            yIndex = 0;
            if (tileset.Images.Length != 0)
            {
                // We're assuming the first image, not sure why we'd have multiple images in one tileset....or at least we won't 
                // supportthat yet.
                var image = tileset.Images[0];

                int effectiveImageWidth = tileset.Images[0].width;
                int effectiveImageHeight = tileset.Images[0].height;

                if (xCoordinate < effectiveImageWidth && yCoordinate < effectiveImageHeight)
                {


                    if (tileset.Margin != 0)
                    {
                        xCoordinate -= tileset.Margin * 2;
                        yCoordinate -= tileset.Margin * 2;
                    }


                    int effectiveTileWidth = tileset.Tilewidth + tileset.Spacing;
                    int effectiveTileHeight = tileset.Tileheight + tileset.Spacing;

                    xIndex = xCoordinate / effectiveTileWidth;
                    yIndex = yCoordinate / effectiveTileHeight;

                }

            }
        }