diff --git a/assets/.index/registry.ron b/assets/.index/registry.ron index 92e25b4..2400634 100644 --- a/assets/.index/registry.ron +++ b/assets/.index/registry.ron @@ -1,4 +1,80 @@ [ + ( + id: ("04a4e00e-4732-43db-8e99-9cd99b94667b"), + path: "assets/animations/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.animation.ron", + label: "113f74df-e39c-41d4-9b5b-e48efe541f7f.animation", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("4937e63f-923b-4270-bdfc-298d63bcb814"), + path: "assets/animations/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation.ron", + label: "3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("28f1df44-6d24-4722-bf75-6969879995a4"), + path: "assets/animations/generated/b98ef565-3500-49e7-9935-f685fa9b2594.animation.ron", + label: "b98ef565-3500-49e7-9935-f685fa9b2594.animation", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("fe40db93-181f-4c79-86e6-26bd97464c4b"), + path: "assets/audio/Puzzle Lobby.mp3", + label: "Puzzle Lobby", + kind_tag: "AudioClip", + source_fingerprint: Some(( + byte_len: 1680820, + content_hash: "3b5a401dbaccfdbda540c60070ce259fb506d7da548f45008eb2b3fa720b4b57", + )), + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), ( id: ("c0a7d10e-53c1-4de0-b0dc-34a66f44ba77"), path: "assets/audio/editor_audition_tone.ogg", @@ -22,14 +98,400 @@ dependencies: [], ), ( - id: ("fe40db93-181f-4c79-86e6-26bd97464c4b"), - path: "assets/audio/Puzzle Lobby.mp3", - label: "Puzzle Lobby", - kind_tag: "AudioClip", + id: ("9213efe6-12c7-45a8-8b64-9e1699f76ba3"), + path: "assets/build_profiles/development.ron", + label: "development", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("64fea29e-c123-4987-92dc-ca25f4dc7dea"), + path: "assets/build_profiles/qa.ron", + label: "qa", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("de76f1c9-f05d-48d3-bb69-6b7ce05f29d8"), + path: "assets/build_profiles/release.ron", + label: "release", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("f3dfcd11-aa5b-4fd4-872b-06832b865c99"), + path: "assets/levels/audio_authoring_showcase.scn.ron", + label: "audio_authoring_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("a7ef65b4-24d6-4c3a-b637-5bb52d8e9a26"), + path: "assets/levels/collider_diagnostics_showcase.scn.ron", + label: "collider_diagnostics_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("dc13ce01-c7ce-43c5-974c-0e659ae49ab9"), + path: "assets/levels/editor_scene 2.scn.ron", + label: "editor_scene 2.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("48bcef13-e6a6-4260-bb1b-c29787bd8c70"), + path: "assets/levels/editor_scene 3.scn.ron", + label: "editor_scene 3.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("5a2307d0-48e5-40d3-a5c9-527c0cfd30f4"), + path: "assets/levels/editor_scene.scn.ron", + label: "editor_scene.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("706e604e-1a63-4e97-b35d-eeb1d88fe3a9"), + path: "assets/levels/navigation_authoring_showcase.scn.ron", + label: "navigation_authoring_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("78c6850b-5a76-4a4f-b48e-7fb00f6dd1ed"), + path: "assets/levels/physics_placement_showcase.scn.ron", + label: "physics_placement_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("61802b85-fda9-4aff-94d9-fe5f0860c516"), + path: "assets/levels/rendering_showcase.scn.ron", + label: "rendering_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("bca13177-afa9-4691-9b40-288059c7a57e"), + path: "assets/levels/samples/brush_blockout.scn.ron", + label: "brush_blockout.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("607864bf-fa77-4f9e-acc9-2c0906d34163"), + path: "assets/levels/samples/material_lab.scn.ron", + label: "material_lab.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("1b25d451-7b54-41d6-af00-d2e6950f502d"), + path: "assets/levels/terrain_authoring_showcase.scn.ron", + label: "terrain_authoring_showcase.scn", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("a57f2891-8536-47b8-b476-01c08b36ac43"), + path: "assets/materials/concrete.ron", + label: "concrete", + kind_tag: "Material", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("4f684592-50b1-47e4-888c-8ba537e4c29d"), + path: "assets/materials/emissive_panel.ron", + label: "emissive_panel", + kind_tag: "Material", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("d6cb4151-7124-4237-aaf9-f7f8abd5fb76"), + path: "assets/materials/surface_tint.ron", + label: "surface_tint", + kind_tag: "Material", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("cc2769da-c9a5-4cb3-866a-cc81d0688ee2"), + path: "assets/materials/surface_tint_instance.ron", + label: "surface_tint_instance", + kind_tag: "Material", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("113f74df-e39c-41d4-9b5b-e48efe541f7f"), + path: "assets/models/RobotExpressive.glb", + label: "RobotExpressive", + kind_tag: "Model", source_fingerprint: Some(( - byte_len: 1680820, - content_hash: "3b5a401dbaccfdbda540c60070ce259fb506d7da548f45008eb2b3fa720b4b57", + byte_len: 463988, + content_hash: "5869cb813e6a6093eda7af2824a9c13a582750e0443e88ce7c991a1f83415521", )), + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: SceneInstance, + hierarchy_mode: SourceHierarchy, + material_policy: SourceMaterials, + static_mesh_manifest_path: Some("assets/meshes/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.static_mesh.ron"), + animation_manifest_path: Some("assets/animations/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.animation.ron"), + default_animation_clip_id: Some("animation:clip:8:standing"), + ), + dependencies: [], + ), + ( + id: ("b98ef565-3500-49e7-9935-f685fa9b2594"), + path: "assets/models/painted_wooden_chair_02_2k.fbx", + label: "painted_wooden_chair_02_2k", + kind_tag: "Model", + source_fingerprint: Some(( + byte_len: 59964, + content_hash: "b12973a62dcb44589e380ea833eade726ae98a86c81084c842ee3801866d6a46", + )), + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: Some("assets/meshes/generated/b98ef565-3500-49e7-9935-f685fa9b2594.static_mesh.ron"), + animation_manifest_path: Some("assets/animations/generated/b98ef565-3500-49e7-9935-f685fa9b2594.animation.ron"), + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("3f63f359-45eb-4cb2-8970-71921cbd7bd0"), + path: "assets/models/robot_expressive.glb", + label: "robot_expressive", + kind_tag: "Model", + source_fingerprint: Some(( + byte_len: 463988, + content_hash: "5869cb813e6a6093eda7af2824a9c13a582750e0443e88ce7c991a1f83415521", + )), + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: Some("assets/meshes/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.static_mesh.ron"), + animation_manifest_path: Some("assets/animations/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation.ron"), + default_animation_clip_id: Some("animation:clip:8:standing"), + ), + dependencies: [], + ), + ( + id: ("264e2010-0693-4d74-8440-99373c2cedb3"), + path: "assets/navigation/generated/navigation_showcase_humanoid.nav.ron", + label: "navigation_showcase_humanoid.nav", + kind_tag: "Level", import_settings: ( scale: 1.0, generate_collider: true, @@ -80,14 +542,10 @@ dependencies: [], ), ( - id: ("b98ef565-3500-49e7-9935-f685fa9b2594"), - path: "assets/models/painted_wooden_chair_02_2k.fbx", - label: "painted_wooden_chair_02_2k", - kind_tag: "Model", - source_fingerprint: Some(( - byte_len: 59964, - content_hash: "b12973a62dcb44589e380ea833eade726ae98a86c81084c842ee3801866d6a46", - )), + id: ("862530b2-8111-4ebb-9078-29723c002e08"), + path: "assets/prefabs/example_base.scn.ron", + label: "example_base.scn", + kind_tag: "Prefab", import_settings: ( scale: 1.0, generate_collider: true, @@ -95,43 +553,17 @@ placement_mode: StaticAsset, hierarchy_mode: SingleActor, material_policy: SourceMaterials, - static_mesh_manifest_path: Some("assets/meshes/generated/b98ef565-3500-49e7-9935-f685fa9b2594.static_mesh.ron"), - animation_manifest_path: Some("assets/animations/generated/b98ef565-3500-49e7-9935-f685fa9b2594.animation.ron"), + static_mesh_manifest_path: None, + animation_manifest_path: None, default_animation_clip_id: None, ), dependencies: [], ), ( - id: ("113f74df-e39c-41d4-9b5b-e48efe541f7f"), - path: "assets/models/RobotExpressive.glb", - label: "RobotExpressive", - kind_tag: "Model", - source_fingerprint: Some(( - byte_len: 463988, - content_hash: "5869cb813e6a6093eda7af2824a9c13a582750e0443e88ce7c991a1f83415521", - )), - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: SceneInstance, - hierarchy_mode: SourceHierarchy, - material_policy: SourceMaterials, - static_mesh_manifest_path: Some("assets/meshes/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.static_mesh.ron"), - animation_manifest_path: Some("assets/animations/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.animation.ron"), - default_animation_clip_id: Some("animation:clip:8:standing"), - ), - dependencies: [], - ), - ( - id: ("3f63f359-45eb-4cb2-8970-71921cbd7bd0"), - path: "assets/models/robot_expressive.glb", - label: "robot_expressive", - kind_tag: "Model", - source_fingerprint: Some(( - byte_len: 463988, - content_hash: "5869cb813e6a6093eda7af2824a9c13a582750e0443e88ce7c991a1f83415521", - )), + id: ("682191d6-59cd-46a1-9560-6cf7bc1583b2"), + path: "assets/prefabs/example_nested.scn.ron", + label: "example_nested.scn", + kind_tag: "Prefab", import_settings: ( scale: 1.0, generate_collider: true, @@ -139,21 +571,125 @@ placement_mode: StaticAsset, hierarchy_mode: SingleActor, material_policy: SourceMaterials, - static_mesh_manifest_path: Some("assets/meshes/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.static_mesh.ron"), - animation_manifest_path: Some("assets/animations/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation.ron"), - default_animation_clip_id: Some("animation:clip:8:standing"), + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, ), dependencies: [], ), ( - id: ("c4abe41c-ac88-4aec-8168-27e8a7c90583"), - path: "assets/textures/metal_stool_01_nor_gl_2k.jpg", - label: "metal_stool_01_nor_gl_2k", - kind_tag: "Texture", - source_fingerprint: Some(( - byte_len: 2779150, - content_hash: "8c0aa4cf4270c9bf7217fba40b2b48878972ee59cff851cb8dfa57a90f4f373b", - )), + id: ("c14f6240-5654-4e80-9edb-2b4c44cf8d61"), + path: "assets/prefabs/example_variant.scn.ron", + label: "example_variant.scn", + kind_tag: "Prefab", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("2c4a9866-17b5-4797-9a8f-726b2ffacdb9"), + path: "assets/rendering_profiles/cave_dark.ron", + label: "cave_dark", + kind_tag: "RenderingProfile", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("802471df-8295-4997-80e2-db4191850fc9"), + path: "assets/rendering_profiles/outdoor_haze.ron", + label: "outdoor_haze", + kind_tag: "RenderingProfile", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("e42185de-cda2-4a9e-9df0-df67ccd86123"), + path: "assets/samples/editor_samples.ron", + label: "editor_samples", + kind_tag: "Level", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("addf6f7f-8114-45f3-8566-70d1eaa1fec3"), + path: "assets/shaders/standard_lit.shader.ron", + label: "standard_lit.shader", + kind_tag: "ShaderSchema", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("a72943d6-3e9d-4629-8887-5c02d99d4f92"), + path: "assets/shaders/surface_tint.shader.ron", + label: "surface_tint.shader", + kind_tag: "ShaderSchema", + import_settings: ( + scale: 1.0, + generate_collider: true, + lod0_only: true, + placement_mode: StaticAsset, + hierarchy_mode: SingleActor, + material_policy: SourceMaterials, + static_mesh_manifest_path: None, + animation_manifest_path: None, + default_animation_clip_id: None, + ), + dependencies: [], + ), + ( + id: ("7b143cfb-a9e9-45d4-8f01-cfaa66fa9811"), + path: "assets/shaders/unlit.shader.ron", + label: "unlit.shader", + kind_tag: "ShaderSchema", import_settings: ( scale: 1.0, generate_collider: true, @@ -212,550 +748,14 @@ dependencies: [], ), ( - id: ("61802b85-fda9-4aff-94d9-fe5f0860c516"), - path: "assets/levels/rendering_showcase.scn.ron", - label: "rendering_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("78c6850b-5a76-4a4f-b48e-7fb00f6dd1ed"), - path: "assets/levels/physics_placement_showcase.scn.ron", - label: "physics_placement_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("706e604e-1a63-4e97-b35d-eeb1d88fe3a9"), - path: "assets/levels/navigation_authoring_showcase.scn.ron", - label: "navigation_authoring_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("48bcef13-e6a6-4260-bb1b-c29787bd8c70"), - path: "assets/levels/editor_scene 3.scn.ron", - label: "editor_scene 3.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("a7ef65b4-24d6-4c3a-b637-5bb52d8e9a26"), - path: "assets/levels/collider_diagnostics_showcase.scn.ron", - label: "collider_diagnostics_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("f3dfcd11-aa5b-4fd4-872b-06832b865c99"), - path: "assets/levels/audio_authoring_showcase.scn.ron", - label: "audio_authoring_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("607864bf-fa77-4f9e-acc9-2c0906d34163"), - path: "assets/levels/samples/material_lab.scn.ron", - label: "material_lab.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("bca13177-afa9-4691-9b40-288059c7a57e"), - path: "assets/levels/samples/brush_blockout.scn.ron", - label: "brush_blockout.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("5a2307d0-48e5-40d3-a5c9-527c0cfd30f4"), - path: "assets/levels/editor_scene.scn.ron", - label: "editor_scene.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("1b25d451-7b54-41d6-af00-d2e6950f502d"), - path: "assets/levels/terrain_authoring_showcase.scn.ron", - label: "terrain_authoring_showcase.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("dc13ce01-c7ce-43c5-974c-0e659ae49ab9"), - path: "assets/levels/editor_scene 2.scn.ron", - label: "editor_scene 2.scn", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("c14f6240-5654-4e80-9edb-2b4c44cf8d61"), - path: "assets/prefabs/example_variant.scn.ron", - label: "example_variant.scn", - kind_tag: "Prefab", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("682191d6-59cd-46a1-9560-6cf7bc1583b2"), - path: "assets/prefabs/example_nested.scn.ron", - label: "example_nested.scn", - kind_tag: "Prefab", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("862530b2-8111-4ebb-9078-29723c002e08"), - path: "assets/prefabs/example_base.scn.ron", - label: "example_base.scn", - kind_tag: "Prefab", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("e42185de-cda2-4a9e-9df0-df67ccd86123"), - path: "assets/samples/editor_samples.ron", - label: "editor_samples", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("04a4e00e-4732-43db-8e99-9cd99b94667b"), - path: "assets/animations/generated/113f74df-e39c-41d4-9b5b-e48efe541f7f.animation.ron", - label: "113f74df-e39c-41d4-9b5b-e48efe541f7f.animation", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("4937e63f-923b-4270-bdfc-298d63bcb814"), - path: "assets/animations/generated/3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation.ron", - label: "3f63f359-45eb-4cb2-8970-71921cbd7bd0.animation", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("28f1df44-6d24-4722-bf75-6969879995a4"), - path: "assets/animations/generated/b98ef565-3500-49e7-9935-f685fa9b2594.animation.ron", - label: "b98ef565-3500-49e7-9935-f685fa9b2594.animation", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("802471df-8295-4997-80e2-db4191850fc9"), - path: "assets/rendering_profiles/outdoor_haze.ron", - label: "outdoor_haze", - kind_tag: "RenderingProfile", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("2c4a9866-17b5-4797-9a8f-726b2ffacdb9"), - path: "assets/rendering_profiles/cave_dark.ron", - label: "cave_dark", - kind_tag: "RenderingProfile", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("264e2010-0693-4d74-8440-99373c2cedb3"), - path: "assets/navigation/generated/navigation_showcase_humanoid.nav.ron", - label: "navigation_showcase_humanoid.nav", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("a57f2891-8536-47b8-b476-01c08b36ac43"), - path: "assets/materials/concrete.ron", - label: "concrete", - kind_tag: "Material", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("cc2769da-c9a5-4cb3-866a-cc81d0688ee2"), - path: "assets/materials/surface_tint_instance.ron", - label: "surface_tint_instance", - kind_tag: "Material", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("4f684592-50b1-47e4-888c-8ba537e4c29d"), - path: "assets/materials/emissive_panel.ron", - label: "emissive_panel", - kind_tag: "Material", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("d6cb4151-7124-4237-aaf9-f7f8abd5fb76"), - path: "assets/materials/surface_tint.ron", - label: "surface_tint", - kind_tag: "Material", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("64fea29e-c123-4987-92dc-ca25f4dc7dea"), - path: "assets/build_profiles/qa.ron", - label: "qa", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("9213efe6-12c7-45a8-8b64-9e1699f76ba3"), - path: "assets/build_profiles/development.ron", - label: "development", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("de76f1c9-f05d-48d3-bb69-6b7ce05f29d8"), - path: "assets/build_profiles/release.ron", - label: "release", - kind_tag: "Level", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("7b143cfb-a9e9-45d4-8f01-cfaa66fa9811"), - path: "assets/shaders/unlit.shader.ron", - label: "unlit.shader", - kind_tag: "ShaderSchema", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("addf6f7f-8114-45f3-8566-70d1eaa1fec3"), - path: "assets/shaders/standard_lit.shader.ron", - label: "standard_lit.shader", - kind_tag: "ShaderSchema", - import_settings: ( - scale: 1.0, - generate_collider: true, - lod0_only: true, - placement_mode: StaticAsset, - hierarchy_mode: SingleActor, - material_policy: SourceMaterials, - static_mesh_manifest_path: None, - animation_manifest_path: None, - default_animation_clip_id: None, - ), - dependencies: [], - ), - ( - id: ("a72943d6-3e9d-4629-8887-5c02d99d4f92"), - path: "assets/shaders/surface_tint.shader.ron", - label: "surface_tint.shader", - kind_tag: "ShaderSchema", + id: ("c4abe41c-ac88-4aec-8168-27e8a7c90583"), + path: "assets/textures/metal_stool_01_nor_gl_2k.jpg", + label: "metal_stool_01_nor_gl_2k", + kind_tag: "Texture", + source_fingerprint: Some(( + byte_len: 2779150, + content_hash: "8c0aa4cf4270c9bf7217fba40b2b48878972ee59cff851cb8dfa57a90f4f373b", + )), import_settings: ( scale: 1.0, generate_collider: true, diff --git a/crates/editor/src/assets/asset_db.rs b/crates/editor/src/assets/asset_db.rs index d5cea6e..0a34de4 100644 --- a/crates/editor/src/assets/asset_db.rs +++ b/crates/editor/src/assets/asset_db.rs @@ -215,6 +215,7 @@ fn sync_registry_from_browser( next_records.push(record); } + sort_registry_records(&mut next_records); let changed = previous_records != next_records; registry.records = next_records; if changed { @@ -234,6 +235,10 @@ fn imported_source_kind(kind_tag: &str) -> bool { matches!(kind_tag, "Model" | "Texture" | "AudioClip") } +fn sort_registry_records(records: &mut [AssetRecord]) { + records.sort_by(|left, right| left.path.cmp(&right.path)); +} + fn take_uniquely_moved_import_record( existing: &mut HashMap, current_paths: &HashSet, @@ -391,6 +396,44 @@ mod tests { } } + #[test] + fn registry_publication_order_is_stable_across_discovery_orders() { + let records = [ + ("assets/textures/z.png", "Texture"), + ("assets/audio/a.ogg", "AudioClip"), + ("assets/models/m.glb", "Model"), + ] + .into_iter() + .map(|(path, kind_tag)| AssetRecord { + id: AssetId::new(), + path: path.into(), + label: path.into(), + kind_tag: kind_tag.into(), + source_fingerprint: None, + import_settings: ImportSettings::default(), + dependencies: Vec::new(), + }) + .collect::>(); + let mut forward = records.clone(); + let mut reverse = records.into_iter().rev().collect::>(); + + sort_registry_records(&mut forward); + sort_registry_records(&mut reverse); + + assert_eq!(forward, reverse); + assert_eq!( + forward + .iter() + .map(|record| record.path.as_str()) + .collect::>(), + [ + "assets/audio/a.ogg", + "assets/models/m.glb", + "assets/textures/z.png", + ] + ); + } + #[test] fn legacy_registry_record_loads_without_forcing_a_new_identity() { let source = r#"( diff --git a/docs/adr/0043-content-addressed-import-fingerprints.md b/docs/adr/0043-content-addressed-import-fingerprints.md index fc2b506..101ece5 100644 --- a/docs/adr/0043-content-addressed-import-fingerprints.md +++ b/docs/adr/0043-content-addressed-import-fingerprints.md @@ -35,7 +35,9 @@ reimported. Registry and generated-manifest writers parse the existing RON and compare the semantic value before publication. Equivalent documents preserve their exact existing bytes, including layout and final -newlines. Changed documents publish canonical pretty RON. +newlines. Changed documents publish canonical pretty RON. Registry records are ordered by normalized +project path before comparison, so filesystem enumeration order cannot change their serialized +sequence on a fresh checkout. Authoritative project validation remains read-only. It validates registry, animation, and static-mesh fingerprints by length and digest, including same-size source edits. CI runs both