コード例 #1
0
        public IAsset LoadAsset(StagedAsset stagedAsset)
        {
            IAsset asset = null;

            switch (stagedAsset.Type)
            {
            case (AssetType.AudioAsset):
                asset = new AudioAsset(stagedAsset.Id, new AudioFileReader(stagedAsset.FilePath));
                break;

            case (AssetType.SpriteFontAsset):
            {
                SpriteFont sf;
                lock (stagedAsset.Content)
                    sf = stagedAsset.Content.Load <SpriteFont>(stagedAsset.FilePath);

                asset = new SpriteFontAsset(stagedAsset.Id, sf);
            }
            break;

            case (AssetType.Texture2DAsset):
            {
                Texture2D td;
                lock (stagedAsset.Content)
                    td = stagedAsset.Content.Load <Texture2D>(stagedAsset.FilePath);

                asset = new Texture2DAsset(stagedAsset.Id, td);
            }
            break;
            }
            return(asset);
        }
コード例 #2
0
        public StagedAsset StageAsset(string filePath, string id, ContentManager contentManager)
        {
            var definition = File.ReadAllLines(filePath).Where(l => l.Length > 0)
                             .Where(l => l.ToLower().StartsWith("asset") && l.Contains($"id={id}"))
                             .FirstOrDefault();

            if (definition.Length == 0)
            {
                return(new StagedAsset());
            }

            var work = definition.Split(';');

            string    fileName = "";
            AssetType type     = AssetType.None;

            for (int i = 0; i < work.Length; i++)
            {
                var pair = work[i].Split('=');
                switch (pair[0].Trim().ToLower())
                {
                case ("filepath"):
                    fileName = pair[1].Trim();
                    break;

                case ("asset"):
                    type = ParseType(pair[1].Trim().ToLower());
                    break;
                }
            }

            if (fileName == string.Empty || type == AssetType.None)
            {
                return(new StagedAsset());
            }

            var stagedAsset = new StagedAsset(id, fileName, type, contentManager);

            return(stagedAsset);
        }