public Array findRegions(string str)
        {
            var images = new MonoGameTextureAtlasImage[_atlasImages[str].Count];

            _atlasImages[str].Values.CopyTo(images, 0);
            System.Array.Sort(images);
            var regions = new MonoGameTextureAtlasRegion[images.Length];

            for (var i = 0; i < images.Length; i++)
            {
                regions[i] = images[i].textureRegion;
            }
            return(Array.with(regions));
        }
        public MonoGameTextureAtlas(FileHandle atlasFile, FileHandle imagesDir, bool flip)
        {
            var             lines = ((MonoGameFileHandle)atlasFile).readAllLines();
            var             i     = 1;
            MonoGameTexture packTexture;

            while (i < lines.Length)
            {
                packTexture = (MonoGameTexture)Mdx.graphics.newTexture(imagesDir.child(lines[i]));
                i          += 5; //skip size, format, filter and repeat;
                while (i < lines.Length && lines[i] != string.Empty)
                {
                    var image = new MonoGameTextureAtlasImage();
                    image.name   = lines[i];
                    image.rotate = bool.Parse(lines[i + 1].Split(':')[1]);

                    if (image.rotate)
                    {
                        throw new NotSupportedException("Rotated atlas aren't supported yet!");
                    }

                    readTuple(lines[i + 2], out image.x, out image.y);
                    readTuple(lines[i + 3], out image.width, out image.height);
                    readTuple(lines[i + 4], out image.originX, out image.originY);
                    readTuple(lines[i + 5], out image.offsetX, out image.offsetY);
                    image.index = int.Parse(lines[i + 6].Split(':')[1]);

                    image.textureRegion = new MonoGameTextureAtlasRegion(packTexture, image.x, image.y, image.width, image.height, image.rotate);

                    if (!_atlasImages.ContainsKey(image.name))
                    {
                        _atlasImages[image.name] = new Dictionary <int, MonoGameTextureAtlasImage>();
                    }
                    _atlasImages[image.name][image.index] = image;

                    i += 7;
                }

                i++;
            }
        }