diff --git a/ReleaseConsumerProject/Assets/Editor/GenericEveUnityRenderPipeline.cs b/ReleaseConsumerProject/Assets/Editor/GenericEveUnityRenderPipeline.cs index 89c6d30..8431736 100644 --- a/ReleaseConsumerProject/Assets/Editor/GenericEveUnityRenderPipeline.cs +++ b/ReleaseConsumerProject/Assets/Editor/GenericEveUnityRenderPipeline.cs @@ -28,7 +28,9 @@ public static class GenericEveUnityRenderPipeline feature.name = "Eve Unity World Effects"; AssetDatabase.AddObjectToAsset(feature, renderer); renderer.rendererFeatures.Add(feature); + EditorUtility.SetDirty(feature); } + renderer.SetDirty(); EditorUtility.SetDirty(renderer); var pipeline = AssetDatabase.LoadAssetAtPath(PipelinePath); @@ -41,6 +43,8 @@ public static class GenericEveUnityRenderPipeline GraphicsSettings.defaultRenderPipeline = pipeline; QualitySettings.renderPipeline = pipeline; EditorUtility.SetDirty(pipeline); + AssetDatabase.SaveAssetIfDirty(renderer); + AssetDatabase.SaveAssetIfDirty(pipeline); AssetDatabase.SaveAssets(); } } diff --git a/ReleaseConsumerProject/Assets/GenericEveUnityRenderer.asset b/ReleaseConsumerProject/Assets/GenericEveUnityRenderer.asset index 7b97449..d63c193 100644 --- a/ReleaseConsumerProject/Assets/GenericEveUnityRenderer.asset +++ b/ReleaseConsumerProject/Assets/GenericEveUnityRenderer.asset @@ -24,10 +24,11 @@ MonoBehaviour: probeSamplingDebugMesh: {fileID: 0} probeSamplingDebugTexture: {fileID: 0} probeVolumeBlendStatesCS: {fileID: 0} - m_RendererFeatures: [] + m_RendererFeatures: + - {fileID: 7891961340342901043} m_RendererFeatureMap: m_UseNativeRenderPass: 0 - postProcessData: {fileID: 0} + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} m_AssetVersion: 3 m_PrepassLayerMask: serializedVersion: 2 @@ -53,3 +54,16 @@ MonoBehaviour: m_DepthTextureFormat: 0 m_AccurateGbufferNormals: 0 m_IntermediateTextureMode: 1 +--- !u!114 &7891961340342901043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 340385338d304b5aaf069562d4e7b457, type: 3} + m_Name: Eve Unity World Effects + m_EditorClassIdentifier: GameCult.Eve.UnityScene::GameCult.Eve.UnityScene.EveUnityRendererFeature + m_Active: 1 diff --git a/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs b/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs index 2ec6eb6..35b802e 100644 --- a/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs +++ b/ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs @@ -596,9 +596,11 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests "The low-hull witness raider was not destroyed by daemon combat."); Assert.That(destructionPickupObserved || pickupCollection != null || pickupRejection != null, Is.True, "Daemon destruction did not publish its guaranteed cargo as a pickup."); - var collectionDeadline = Time.realtimeSinceStartup + 15f; + // The provider advances a fixed-step simulation while also publishing the large SoA witness. + // Allow enough wall time for the tractor to cover its advertised volume without making the + // generic client manufacture ship motion or loot authority. + var collectionDeadline = Time.realtimeSinceStartup + 45f; var nextTractorAimAt = 0f; - var salvageApproachActive = false; while (Time.realtimeSinceStartup < collectionDeadline && (expectCargoRejection ? pickupRejection == null : pickupCollection == null)) { @@ -619,12 +621,8 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests continue; tractorAim.Normalize(); runtime.SubmitLookDirectionIntent(playerId, tractorAim.x, 0f, tractorAim.z); - runtime.SubmitMoveVectorIntent(playerId, 0f, 1f, 1f); - salvageApproachActive = true; - nextTractorAimAt = Time.realtimeSinceStartup + 0.25f; + nextTractorAimAt = Time.realtimeSinceStartup + 0.5f; } - if (salvageApproachActive) - runtime.SubmitMoveVectorIntent(playerId, 0f, 0f, 0f); finalPickupEntityCount = host.PresentedEntities.CurrentGeneration.Entities.Count(entity => string.Equals(entity.EntityKind, "pickup", StringComparison.Ordinal)); if (expectCargoRejection) @@ -793,7 +791,10 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests var temporalSettlingDeadline = Time.realtimeSinceStartup + 20f; while (captureFieldVolume.CompositeCount - initialCompositeCount < temporalSettlingFrames && Time.realtimeSinceStartup < temporalSettlingDeadline) + { + camera.Render(); yield return null; + } Assert.That(captureFieldVolume.CompositeCount - initialCompositeCount, Is.GreaterThanOrEqualTo(temporalSettlingFrames), "The pilot capture ran before the advertised temporal reconstruction had settled."); diff --git a/ReleaseConsumerProject/Packages/manifest.json b/ReleaseConsumerProject/Packages/manifest.json index 3f2c8fb..3fc2ab8 100644 --- a/ReleaseConsumerProject/Packages/manifest.json +++ b/ReleaseConsumerProject/Packages/manifest.json @@ -9,7 +9,7 @@ "org.gamecult.cultlib": "https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.18", "org.gamecult.eve.plugin-fields": "https://github.com/GameCult/EvePlugins.git?path=/plugins/eve-plugin-fields/unity/org.gamecult.eve.plugin-fields#eve-plugin-fields-unity-v0.2.3", "org.gamecult.eve.surface": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.surface#eveunity-surface-v0.2.4", - "org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.71", + "org.gamecult.eve.unity-scene": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.72", "org.gamecult.eve.unity-uitoolkit": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1" }, "testables": [ diff --git a/ReleaseConsumerProject/Packages/packages-lock.json b/ReleaseConsumerProject/Packages/packages-lock.json index 848b7cc..6795539 100644 --- a/ReleaseConsumerProject/Packages/packages-lock.json +++ b/ReleaseConsumerProject/Packages/packages-lock.json @@ -144,7 +144,7 @@ "hash": "e08fa08335f99e9edddeb706912eecfad07cb281" }, "org.gamecult.eve.unity-scene": { - "version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.71", + "version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.3.72", "depth": 0, "source": "git", "dependencies": { @@ -155,7 +155,7 @@ "com.unity.render-pipelines.universal": "17.4.0", "com.unity.modules.particlesystem": "1.0.0" }, - "hash": "261aa269db69a5fe5108632d0ca26627b29f2aef" + "hash": "edaf3b1e3bbb06a00b18b9faf508e27e33ae050b" }, "org.gamecult.eve.unity-uitoolkit": { "version": "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.1", diff --git a/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs b/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs index 2ec6eb6..35b802e 100644 --- a/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs +++ b/TestProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs @@ -596,9 +596,11 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests "The low-hull witness raider was not destroyed by daemon combat."); Assert.That(destructionPickupObserved || pickupCollection != null || pickupRejection != null, Is.True, "Daemon destruction did not publish its guaranteed cargo as a pickup."); - var collectionDeadline = Time.realtimeSinceStartup + 15f; + // The provider advances a fixed-step simulation while also publishing the large SoA witness. + // Allow enough wall time for the tractor to cover its advertised volume without making the + // generic client manufacture ship motion or loot authority. + var collectionDeadline = Time.realtimeSinceStartup + 45f; var nextTractorAimAt = 0f; - var salvageApproachActive = false; while (Time.realtimeSinceStartup < collectionDeadline && (expectCargoRejection ? pickupRejection == null : pickupCollection == null)) { @@ -619,12 +621,8 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests continue; tractorAim.Normalize(); runtime.SubmitLookDirectionIntent(playerId, tractorAim.x, 0f, tractorAim.z); - runtime.SubmitMoveVectorIntent(playerId, 0f, 1f, 1f); - salvageApproachActive = true; - nextTractorAimAt = Time.realtimeSinceStartup + 0.25f; + nextTractorAimAt = Time.realtimeSinceStartup + 0.5f; } - if (salvageApproachActive) - runtime.SubmitMoveVectorIntent(playerId, 0f, 0f, 0f); finalPickupEntityCount = host.PresentedEntities.CurrentGeneration.Entities.Count(entity => string.Equals(entity.EntityKind, "pickup", StringComparison.Ordinal)); if (expectCargoRejection) @@ -793,7 +791,10 @@ namespace GameCult.EveUnity.GenericClient.PlayModeTests var temporalSettlingDeadline = Time.realtimeSinceStartup + 20f; while (captureFieldVolume.CompositeCount - initialCompositeCount < temporalSettlingFrames && Time.realtimeSinceStartup < temporalSettlingDeadline) + { + camera.Render(); yield return null; + } Assert.That(captureFieldVolume.CompositeCount - initialCompositeCount, Is.GreaterThanOrEqualTo(temporalSettlingFrames), "The pilot capture ran before the advertised temporal reconstruction had settled."); diff --git a/scripts/run-aetheria-daemon-world-witness.ps1 b/scripts/run-aetheria-daemon-world-witness.ps1 index 44a3c4e..bc2bbb7 100644 --- a/scripts/run-aetheria-daemon-world-witness.ps1 +++ b/scripts/run-aetheria-daemon-world-witness.ps1 @@ -17,7 +17,7 @@ param( ) $ErrorActionPreference = "Stop" -$expectedEveUnityCommit = "261aa269db69a5fe5108632d0ca26627b29f2aef" +$expectedEveUnityCommit = "edaf3b1e3bbb06a00b18b9faf508e27e33ae050b" $expectedEveFieldsCommit = "c5a4a75c1b727499b16c2dae1895f29e2a9f72f0" $expectedEveUnityUiToolkitCommit = "4d0cbe0185bdc4fc65eb63503a7c5cb578539669" $expectedCultLibCommit = "49c43baa4c80b3bf8f5febae40baf99e1f2a0262"