static void MM_Detour(AssetBundleCreateRequest self, bool set) { if (!ResourceRedirection.TryGetAssetBundle(self, out var result)) { _original(self, set); } }
static AssetBundle MM_Detour(AssetBundleCreateRequest self) { AssetBundle bundle; if (ResourceRedirection.TryGetAssetBundle(self, out var info)) { if (info.ResolveType == AsyncAssetBundleLoadingResolve.ThroughBundle) { bundle = info.Bundle; } else { bundle = _original(self); } } else { bundle = _original(self); } if (bundle != null && info != null && info.Path != null) // should only be null if loaded through non-hooked methods { var ext = bundle.GetOrCreateExtensionData <AssetBundleExtensionData>(); ext.Path = info.Path; } return(bundle); }