/// <summary> /// Load a custom sprite library from disk instead of an XNB content store. /// </summary> /// <param name="assetName"></param> /// <param name="fileName"></param> /// <returns></returns> private SpriteLibrary LoadSpriteLibrary(string assetName, string fileName) { // grab our list of sprite descriptions SpriteLibrary sprites = new SpriteLibrary(); Dictionary <string, ModSpriteDescription> allSprites = JsonConvert.DeserializeObject <Dictionary <string, ModSpriteDescription> >( File.ReadAllText(fileName)); // dump the created sprites into the library foreach (var key in allSprites.Keys) { var sprite = Sprite.Create(this, allSprites[key].ToSpriteDescription()); // the next line is important - if we don't load the texture here // ThePit will load it for us on an un-injected contet manager sprite.Texture = this.Load <Texture2D>(sprite.TextureAsset); sprites.Add(sprite); } return(sprites); }
/// <summary> /// Append a custom (json based) sprite library to an existing one. /// </summary> /// <param name="assetName"></param> /// <param name="fileName"></param> /// <returns></returns> private SpriteLibrary AppendSpriteLibrary(SpriteLibrary sprites, string assetName, string fileName) { // load addendums Dictionary <string, ModSpriteDescription> allSprites = JsonConvert.DeserializeObject <Dictionary <string, ModSpriteDescription> >( File.ReadAllText(fileName)); // dump the created sprites into the library foreach (var key in allSprites.Keys) { if (!sprites.Contains(key)) { var sprite = Sprite.Create(this, allSprites[key].ToSpriteDescription()); // the next line is important - if we don't load the texture here // ThePit will load it for us on an un-injected contet manager sprite.Texture = this.Load <Texture2D>(sprite.TextureAsset); //sprite.set_Texture(this.Load<Texture2D>(sprite.get_TextureAsset())); sprites.Add(sprite); } } return(sprites); }