Began structuring new asset management system.

This commit is contained in:
Harrison Deng 2020-02-20 16:34:00 -05:00
parent 8f56b94c1f
commit 415f603bb4
2 changed files with 16 additions and 5 deletions

View File

@ -0,0 +1,8 @@
namespace RecrownedGTK.AssetsSystem {
public class AssetLoader {
public T Load<T>(string path) {
throw new System.NotImplementedException();
//TODO Implement a method of loading.
}
}
}

View File

@ -10,10 +10,10 @@ namespace RecrownedGTK.AssetsSystem
/// </summary>
public class AssetManager
{
private AssetLoader assetLoader;
Thread thread;
readonly AssetManager contentManager;
readonly Queue<ContentData> queue;
Dictionary<string, Object> assets;
Dictionary<string, IDisposable> assets;
/// <summary>
/// Path modifiers to change the path in which the content manager looks to load a file. Used for better organizing things while not needing to type entire path.
/// </summary>
@ -41,7 +41,7 @@ namespace RecrownedGTK.AssetsSystem
/// <param name="contentManager">The manager to wrap.</param>
public AssetManager()
{
assets = new Dictionary<string, Object>();
assets = new Dictionary<string, IDisposable>();
queue = new Queue<ContentData>();
contentPathModifier = new Dictionary<Type, IAssetPathResolver>();
}
@ -77,7 +77,7 @@ namespace RecrownedGTK.AssetsSystem
}
path = handler.Modify(assetName);
}
assets.Add(assetName, contentManager.Load<Object>(path));
assets.Add(assetName, assetLoader.Load<IDisposable>(path));
}
@ -184,7 +184,10 @@ namespace RecrownedGTK.AssetsSystem
{
lock (queue)
{
contentManager.Unload();
foreach (KeyValuePair<string, IDisposable> asset in assets)
{
asset.Value.Dispose();
}
assets.Clear();
ClearQueue();
Debug.WriteLine("Unloaded all assets.");