Skip to content

Commit 86fd579

Browse files
committed
Version 0.6.2
1 parent beb2c4d commit 86fd579

5 files changed

+17
-10
lines changed

src/AssetManagementBase.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<PackageLicenseExpression>MIT</PackageLicenseExpression>
77
<PackageProjectUrl>https://github.com/rds1983/AssetManagementBase</PackageProjectUrl>
88
<TargetFramework>netstandard2.0</TargetFramework>
9-
<Version>0.6.1</Version>
9+
<Version>0.6.2</Version>
1010
</PropertyGroup>
1111

1212
<PropertyGroup Condition="'$(Configuration)'=='Release'">

src/AssetManager.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace AssetManagementBase
66
{
77
public delegate Stream AssetOpener(string assetName);
8-
public delegate T AssetLoader<T>(AssetManager manager, string assetName, object settings);
8+
public delegate T AssetLoader<T>(AssetManager manager, string assetName, IAssetSettings settings, object tag);
99

1010
public class AssetManager
1111
{
@@ -43,15 +43,15 @@ internal AssetManager(AssetManagerCore core, string currentFolder)
4343
public byte[] ReadAssetAsByteArray(string assetName) => _core.ReadAssetAsByteArray(BuildFullPath(assetName));
4444

4545

46-
public bool HasAsset(string assetName, object settings = null)
46+
public bool HasAsset(string assetName, IAssetSettings settings = null)
4747
{
4848
assetName = BuildFullPath(assetName);
4949
var cacheKey = BuildCacheKey(assetName, settings);
5050

5151
return _core.Cache.ContainsKey(cacheKey);
5252
}
5353

54-
public T UseLoader<T>(AssetLoader<T> loader, string assetName, object settings = null, bool storeInCache = true)
54+
public T UseLoader<T>(AssetLoader<T> loader, string assetName, IAssetSettings settings = null, object tag = null, bool storeInCache = true)
5555
{
5656
assetName = BuildFullPath(assetName);
5757
var cacheKey = BuildCacheKey(assetName, settings);
@@ -74,7 +74,7 @@ public T UseLoader<T>(AssetLoader<T> loader, string assetName, object settings =
7474
}
7575
}
7676

77-
var result = loader(assetManager, assetName, settings);
77+
var result = loader(assetManager, assetName, settings, tag);
7878

7979
if (storeInCache)
8080
{
@@ -93,12 +93,12 @@ private string BuildFullPath(string assetName)
9393
return assetName;
9494
}
9595

96-
private static string BuildCacheKey(string assetName, object settings)
96+
private static string BuildCacheKey(string assetName, IAssetSettings settings)
9797
{
9898
var cacheKey = assetName;
9999
if (settings != null)
100100
{
101-
cacheKey += "|" + settings.ToString();
101+
cacheKey += "|" + settings.BuildKey();
102102

103103
}
104104

src/DefaultLoaders.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
{
33
public static class DefaultLoaders
44
{
5-
private static AssetLoader<string> StringLoader = (manager, assetName, settings) => manager.ReadAssetAsString(assetName);
6-
private static AssetLoader<byte[]> ByteArrayLoader = (manager, assetName, settings) => manager.ReadAssetAsByteArray(assetName);
5+
private static AssetLoader<string> StringLoader = (manager, assetName, settings, tag) => manager.ReadAssetAsString(assetName);
6+
private static AssetLoader<byte[]> ByteArrayLoader = (manager, assetName, settings, tag) => manager.ReadAssetAsByteArray(assetName);
77

88
public static string LoadString(this AssetManager assetManager, string assetName, bool storeInCache = true) => assetManager.UseLoader(StringLoader, assetName, storeInCache: storeInCache);
99
public static byte[] LoadByteArray(this AssetManager assetManager, string assetName, bool storeInCache = true) => assetManager.UseLoader(ByteArrayLoader, assetName, storeInCache: storeInCache);

src/IAssetSettings.cs

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace AssetManagementBase
2+
{
3+
public interface IAssetSettings
4+
{
5+
string BuildKey();
6+
}
7+
}

tests/AssetManagerExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace AssetManagementBase.Tests
44
{
55
public static class AssetManagerExtensions
66
{
7-
private static AssetLoader<UserProfile> _userProfileLoader = (manager, assetName, settings) =>
7+
private static AssetLoader<UserProfile> _userProfileLoader = (manager, assetName, settings, tag) =>
88
{
99
var data = manager.ReadAssetAsString(assetName);
1010

0 commit comments

Comments
 (0)