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); }
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); }