Firstborn/Library/PackageCache/com.unity.addressables@1.19.19/Tests/Runtime/ResourceProviders/TextDataProviderStub.cs
Schaken-Mods 7502018d20 Adding Mod Support
There is an asset in the store I grabbed. the coding is WAY above my head, I got about half of it and integrated and adapted what I can to it. im going as far as I can with it and ill come back in a few month when I understand t better.
2023-05-13 22:01:48 -05:00

57 lines
2.0 KiB
C#

using System;
using System.IO;
using System.Text.RegularExpressions;
using UnityEngine.ResourceManagement.ResourceProviders;
using UnityEngine.ResourceManagement.Util;
namespace UnityEngine.AddressableAssets.ResourceProviders.Tests
{
public class TextDataProviderStub : TextDataProvider
{
TextDataProvider m_TextDataProvider;
string m_FakeRemoteFolder;
public TextDataProviderStub(string fakeRemoteFolder, TextDataProvider textDataProvider)
{
m_TextDataProvider = textDataProvider;
m_FakeRemoteFolder = fakeRemoteFolder;
}
public override string ProviderId => m_TextDataProvider.ProviderId;
public override void Provide(ProvideHandle provideHandle)
{
new InternalOpStub(m_FakeRemoteFolder).Start(provideHandle, m_TextDataProvider);
}
internal class InternalOpStub : TextDataProvider.InternalOp
{
string m_FakeRemoteFolder;
static readonly Regex k_Pattern = new Regex(@"http://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}");
public InternalOpStub(string fakeRemoteFolder)
{
m_FakeRemoteFolder = fakeRemoteFolder;
}
protected override void SendWebRequest(string path)
{
string pathWithFakeRemoteFolder = k_Pattern.Replace(ResourceManagerConfig.StripQueryParameters(path), m_FakeRemoteFolder);
string fileText = null;
Exception ex = null;
if (File.Exists(pathWithFakeRemoteFolder))
fileText = File.ReadAllText(pathWithFakeRemoteFolder);
else
ex = new Exception($"{nameof(TextDataProvider)} unable to load from url {path}");
CompleteOperation(fileText, ex);
}
}
}
public class JsonAssetProviderStub : TextDataProviderStub
{
public JsonAssetProviderStub(string fakeRemoteFolder, JsonAssetProvider jsonAssetProvider)
: base(fakeRemoteFolder, jsonAssetProvider) {}
}
}