Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }