Exposes function to generate regions from data and texture.
This commit is contained in:
		@@ -2,36 +2,39 @@
 | 
				
			|||||||
using Microsoft.Xna.Framework.Graphics;
 | 
					using Microsoft.Xna.Framework.Graphics;
 | 
				
			||||||
using Newtonsoft.Json;
 | 
					using Newtonsoft.Json;
 | 
				
			||||||
using RecrownedAthenaeum.Serializable;
 | 
					using RecrownedAthenaeum.Serializable;
 | 
				
			||||||
 | 
					using RecrownedAthenaeum.SpecialTypes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace RecrownedAthenaeum.Pipeline
 | 
					namespace RecrownedAthenaeum.Pipeline
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    class TextureAtlasDataReader : ContentTypeReader<SpecialTypes.TextureAtlas>
 | 
					    class TextureAtlasDataReader : ContentTypeReader<TextureAtlas>
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        protected override SpecialTypes.TextureAtlas Read(ContentReader input, SpecialTypes.TextureAtlas existingInstance)
 | 
					        protected override TextureAtlas Read(ContentReader input, TextureAtlas existingInstance)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            string serialized = input.ReadString();
 | 
					            string serialized = input.ReadString();
 | 
				
			||||||
            TextureAtlasData atlasData = JsonConvert.DeserializeObject<TextureAtlasData>(serialized);
 | 
					            TextureAtlasData atlasData = JsonConvert.DeserializeObject<TextureAtlasData>(serialized);
 | 
				
			||||||
 | 
					            Texture2D atlasTexture = input.ContentManager.Load<Texture2D>(atlasData.textureName)
 | 
				
			||||||
            SpecialTypes.TextureAtlas atlas;
 | 
					            TextureAtlas atlas = new TextureAtlas(atlasTexture, GenerateAtlasRegionsFromData(atlasData, atlasTexture));
 | 
				
			||||||
            Texture2D atlasTexture = input.ContentManager.Load<Texture2D>(atlasData.textureName);
 | 
					 | 
				
			||||||
            SpecialTypes.TextureAtlas.TextureAtlasRegion[] regions = new SpecialTypes.TextureAtlas.TextureAtlasRegion[atlasData.regions.Length];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            for (int regionID = 0; regionID < regions.Length; regionID++)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                TextureAtlasData.AtlasRegionData regionData = atlasData.regions[regionID];
 | 
					 | 
				
			||||||
                SpecialTypes.NinePatch nPatch = null;
 | 
					 | 
				
			||||||
                if (regionData.ninePatchData != null)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    NinePatchData nPatchData = regionData.ninePatchData;
 | 
					 | 
				
			||||||
                    nPatch = new SpecialTypes.NinePatch(atlasTexture, nPatchData.left, nPatchData.right, nPatchData.bottom, nPatchData.bottom);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                regions[regionID] = new SpecialTypes.TextureAtlas.TextureAtlasRegion(regionData.name, regionData.location, nPatch, atlasTexture);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            atlas = new SpecialTypes.TextureAtlas(atlasTexture, regions);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return atlas;
 | 
					            return atlas;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public TextureAtlas.Region[] GenerateAtlasRegionsFromData(TextureAtlasData textureAtlasData,  Texture2D atlasTexture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            TextureAtlas.Region[] regions = new TextureAtlas.Region[textureAtlasData.regions.Length];
 | 
				
			||||||
 | 
					            for (int regionID = 0; regionID < regions.Length; regionID++)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                TextureAtlasData.AtlasRegionData regionData = textureAtlasData.regions[regionID];
 | 
				
			||||||
 | 
					                NinePatch nPatch = null;
 | 
				
			||||||
 | 
					                if (regionData.ninePatchData != null)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    NinePatchData nPatchData = regionData.ninePatchData;
 | 
				
			||||||
 | 
					                    nPatch = new NinePatch(atlasTexture, nPatchData.left, nPatchData.right, nPatchData.bottom, nPatchData.bottom);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                regions[regionID] = new TextureAtlas.Region(regionData.name, regionData.location, nPatch, atlasTexture);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return regions;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user