AssetRipper_AssetRipper/Source/AssetRipper.Assets/Cloning/SingleReplacementAssetResolver.cs
ds5678 c95aaf089d Support recent versions of Unity
Also, change CopyValues methods to support self copying
2025-10-12 16:11:42 -07:00

22 lines
583 B
C#

namespace AssetRipper.Assets.Cloning;
public class SingleReplacementAssetResolver(IUnityObjectBase original, IUnityObjectBase replacement) : IAssetResolver
{
public IUnityObjectBase Original { get; } = original;
public IUnityObjectBase Replacement { get; } = replacement;
public T? Resolve<T>(IUnityObjectBase? asset) where T : IUnityObjectBase
{
if (asset == Original)
{
return TryCast<T>(Replacement);
}
return TryCast<T>(asset);
}
private static T? TryCast<T>(IUnityObjectBase? asset) where T : IUnityObjectBase
{
return asset is T t ? t : default;
}
}