Skip to content

Commit

Permalink
Version 0.6.2
Browse files Browse the repository at this point in the history
  • Loading branch information
rds1983 committed Aug 30, 2023
1 parent beb2c4d commit 86fd579
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/AssetManagementBase.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/rds1983/AssetManagementBase</PackageProjectUrl>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.6.1</Version>
<Version>0.6.2</Version>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)'=='Release'">
Expand Down
12 changes: 6 additions & 6 deletions src/AssetManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace AssetManagementBase
{
public delegate Stream AssetOpener(string assetName);
public delegate T AssetLoader<T>(AssetManager manager, string assetName, object settings);
public delegate T AssetLoader<T>(AssetManager manager, string assetName, IAssetSettings settings, object tag);

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


public bool HasAsset(string assetName, object settings = null)
public bool HasAsset(string assetName, IAssetSettings settings = null)
{
assetName = BuildFullPath(assetName);
var cacheKey = BuildCacheKey(assetName, settings);

return _core.Cache.ContainsKey(cacheKey);
}

public T UseLoader<T>(AssetLoader<T> loader, string assetName, object settings = null, bool storeInCache = true)
public T UseLoader<T>(AssetLoader<T> loader, string assetName, IAssetSettings settings = null, object tag = null, bool storeInCache = true)
{
assetName = BuildFullPath(assetName);
var cacheKey = BuildCacheKey(assetName, settings);
Expand All @@ -74,7 +74,7 @@ public T UseLoader<T>(AssetLoader<T> loader, string assetName, object settings =
}
}

var result = loader(assetManager, assetName, settings);
var result = loader(assetManager, assetName, settings, tag);

if (storeInCache)
{
Expand All @@ -93,12 +93,12 @@ private string BuildFullPath(string assetName)
return assetName;
}

private static string BuildCacheKey(string assetName, object settings)
private static string BuildCacheKey(string assetName, IAssetSettings settings)
{
var cacheKey = assetName;
if (settings != null)
{
cacheKey += "|" + settings.ToString();
cacheKey += "|" + settings.BuildKey();

}

Expand Down
4 changes: 2 additions & 2 deletions src/DefaultLoaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
{
public static class DefaultLoaders
{
private static AssetLoader<string> StringLoader = (manager, assetName, settings) => manager.ReadAssetAsString(assetName);
private static AssetLoader<byte[]> ByteArrayLoader = (manager, assetName, settings) => manager.ReadAssetAsByteArray(assetName);
private static AssetLoader<string> StringLoader = (manager, assetName, settings, tag) => manager.ReadAssetAsString(assetName);
private static AssetLoader<byte[]> ByteArrayLoader = (manager, assetName, settings, tag) => manager.ReadAssetAsByteArray(assetName);

public static string LoadString(this AssetManager assetManager, string assetName, bool storeInCache = true) => assetManager.UseLoader(StringLoader, assetName, storeInCache: storeInCache);
public static byte[] LoadByteArray(this AssetManager assetManager, string assetName, bool storeInCache = true) => assetManager.UseLoader(ByteArrayLoader, assetName, storeInCache: storeInCache);
Expand Down
7 changes: 7 additions & 0 deletions src/IAssetSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace AssetManagementBase
{
public interface IAssetSettings
{
string BuildKey();
}
}
2 changes: 1 addition & 1 deletion tests/AssetManagerExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace AssetManagementBase.Tests
{
public static class AssetManagerExtensions
{
private static AssetLoader<UserProfile> _userProfileLoader = (manager, assetName, settings) =>
private static AssetLoader<UserProfile> _userProfileLoader = (manager, assetName, settings, tag) =>
{
var data = manager.ReadAssetAsString(assetName);
Expand Down

0 comments on commit 86fd579

Please sign in to comment.