Partition provider assets for demand loading
This commit is contained in:
parent
028945aad6
commit
72ce713a19
10 changed files with 497 additions and 141 deletions
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using GameCult.Aetheria.State.Verse;
|
||||
using NUnit.Framework;
|
||||
|
||||
public sealed class AetheriaRuntimeAssetBundleLayoutTests
|
||||
{
|
||||
[Test]
|
||||
public void SharedPresentationAssetsHaveStableBundleOwners()
|
||||
{
|
||||
var manifest = AetheriaRuntimeAssets.ProjectManifest(null);
|
||||
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityShaderBundle, BundleFor("shader.environment.gravity-fog"));
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityShaderBundle, BundleFor("texture.environment.volume-dither"));
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityUiBundle, BundleFor("map.entity.player"));
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityUiBundle, BundleFor("font.ui.primary"));
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityCoreBundle, BundleFor("texture.environment.reflection"));
|
||||
Assert.AreEqual(AetheriaRuntimeAssets.UnityCoreBundle, BundleFor("texture.core.sun.surface-flow"));
|
||||
|
||||
string BundleFor(string assetKey)
|
||||
{
|
||||
var entry = manifest.Assets.Single(asset =>
|
||||
string.Equals(asset.Ref.AssetKey, assetKey, StringComparison.Ordinal));
|
||||
return AetheriaRuntimeAssets.ResolveUnityBundleName(entry);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EntityContentIsPartitionedByAuthoredSource()
|
||||
{
|
||||
var manifest = AetheriaRuntimeAssets.ProjectManifest(null);
|
||||
var player = manifest.Assets.Single(asset => asset.Ref.AssetKey == "prefab.entity.player");
|
||||
var ship = manifest.Assets.Single(asset => asset.Ref.AssetKey == "prefab.entity.ship");
|
||||
var station = manifest.Assets.Single(asset => asset.Ref.AssetKey == "prefab.entity.station");
|
||||
|
||||
var playerBundle = AetheriaRuntimeAssets.ResolveUnityBundleName(player);
|
||||
Assert.AreEqual(playerBundle, AetheriaRuntimeAssets.ResolveUnityBundleName(ship));
|
||||
Assert.AreNotEqual(playerBundle, AetheriaRuntimeAssets.ResolveUnityBundleName(station));
|
||||
StringAssert.StartsWith("aetheria-content-", playerBundle);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue