예제 #1
0
        public SpriteObject LoadPackCover(string assetName, Bitmap coverImage)
        {
            Texture2DObject packCover = null;

            if (coverImage != null)
            {
                try
                {
                    var loadedCover = new Texture2DObject(_assetsFile)
                    {
                        Name = assetName
                    };
                    ImageUtils.AssignImageToTexture(coverImage, loadedCover, 1024, 1024);
                    packCover = loadedCover;
                }
                catch (Exception ex)
                {
                    Log.LogErr($"Failed to convert to texture, falling back to default cover image", ex);
                }
            }
            if (packCover == null)
            {
                packCover = new Texture2DObject(_assetsFile)
                {
                    Name = assetName
                };
                SetFallbackCoverTexture(packCover);
            }
            _assetsFile.AddObject(packCover, true);

            //slightly less hacky than before, but only a little
            var          extrasCover = _assetsFile.Manager.MassFirstAsset <SpriteObject>(x => x.Object.Name == "ExtrasCover");
            SpriteObject coverAsset  = extrasCover.Clone().Object;

            coverAsset.Name    = assetName;
            coverAsset.Texture = packCover.PtrFrom(coverAsset);
            _assetsFile.AddObject(coverAsset, true);
            return(coverAsset);
        }
예제 #2
0
        public Texture2DObject LoadSongCover(string songPath, BeatmapLevelDataObject levelData)
        {
            if (!string.IsNullOrWhiteSpace(levelData.CoverImageFilename) && File.Exists(Path.Combine(songPath, levelData.CoverImageFilename)))
            {
                try
                {
                    string coverFile  = Path.Combine(songPath, levelData.CoverImageFilename);
                    Bitmap coverImage = (Bitmap)Bitmap.FromFile(coverFile);

                    var coverAsset = new Texture2DObject(_assetsFile)
                    {
                        Name = levelData.LevelID + "Cover"
                    };

                    ImageUtils.AssignImageToTexture(coverImage, coverAsset, 256, 256);
                    return(coverAsset);
                }
                catch (Exception ex)
                {
                    Log.LogErr("Error loading cover art asset", ex);
                }
            }
            return(null);
        }