diff --git a/Editor/CryDesigner_TimeOfDay.xml b/Assets/Editor/CryDesigner_TimeOfDay.xml similarity index 100% rename from Editor/CryDesigner_TimeOfDay.xml rename to Assets/Editor/CryDesigner_TimeOfDay.xml diff --git a/Editor/Editor.tip b/Assets/Editor/Editor.tip similarity index 100% rename from Editor/Editor.tip rename to Assets/Editor/Editor.tip diff --git a/Gems/ScriptCanvas/Assets/Editor/Icons/AssetBrowser/ScriptCanvas_16.png b/Assets/Editor/Editor/Icons/AssetBrowser/ScriptCanvas_16.png similarity index 100% rename from Gems/ScriptCanvas/Assets/Editor/Icons/AssetBrowser/ScriptCanvas_16.png rename to Assets/Editor/Editor/Icons/AssetBrowser/ScriptCanvas_16.png diff --git a/Editor/EditorParticlePanels.xml b/Assets/Editor/EditorParticlePanels.xml similarity index 100% rename from Editor/EditorParticlePanels.xml rename to Assets/Editor/EditorParticlePanels.xml diff --git a/Editor/EditorParticlePanelsDefault.xml b/Assets/Editor/EditorParticlePanelsDefault.xml similarity index 100% rename from Editor/EditorParticlePanelsDefault.xml rename to Assets/Editor/EditorParticlePanelsDefault.xml diff --git a/Editor/Fonts/Open_Sans/LICENSE.txt b/Assets/Editor/Fonts/Open_Sans/LICENSE.txt similarity index 100% rename from Editor/Fonts/Open_Sans/LICENSE.txt rename to Assets/Editor/Fonts/Open_Sans/LICENSE.txt diff --git a/Editor/Fonts/Open_Sans/OpenSans-Bold.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-Bold.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-Bold.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-Bold.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-BoldItalic.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-BoldItalic.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-BoldItalic.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-BoldItalic.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-ExtraBold.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-ExtraBold.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-ExtraBold.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-ExtraBold.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-Italic.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-Italic.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-Italic.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-Italic.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-Light.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-Light.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-Light.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-Light.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-LightItalic.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-LightItalic.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-LightItalic.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-LightItalic.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-Regular.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-Regular.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-Regular.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-Regular.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-Semibold.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-Semibold.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-Semibold.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-Semibold.ttf diff --git a/Editor/Fonts/Open_Sans/OpenSans-SemiboldItalic.ttf b/Assets/Editor/Fonts/Open_Sans/OpenSans-SemiboldItalic.ttf similarity index 100% rename from Editor/Fonts/Open_Sans/OpenSans-SemiboldItalic.ttf rename to Assets/Editor/Fonts/Open_Sans/OpenSans-SemiboldItalic.ttf diff --git a/Editor/Icons/AssetBrowser/ABC_16.svg b/Assets/Editor/Icons/AssetBrowser/ABC_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/ABC_16.svg rename to Assets/Editor/Icons/AssetBrowser/ABC_16.svg diff --git a/Editor/Icons/AssetBrowser/Audio_16.svg b/Assets/Editor/Icons/AssetBrowser/Audio_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Audio_16.svg rename to Assets/Editor/Icons/AssetBrowser/Audio_16.svg diff --git a/Editor/Icons/AssetBrowser/CaretClosed_16.svg b/Assets/Editor/Icons/AssetBrowser/CaretClosed_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/CaretClosed_16.svg rename to Assets/Editor/Icons/AssetBrowser/CaretClosed_16.svg diff --git a/Editor/Icons/AssetBrowser/CaretOpen_16.svg b/Assets/Editor/Icons/AssetBrowser/CaretOpen_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/CaretOpen_16.svg rename to Assets/Editor/Icons/AssetBrowser/CaretOpen_16.svg diff --git a/Editor/Icons/AssetBrowser/DefaultProduct_16.svg b/Assets/Editor/Icons/AssetBrowser/DefaultProduct_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/DefaultProduct_16.svg rename to Assets/Editor/Icons/AssetBrowser/DefaultProduct_16.svg diff --git a/Editor/Icons/AssetBrowser/Default_16.svg b/Assets/Editor/Icons/AssetBrowser/Default_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Default_16.svg rename to Assets/Editor/Icons/AssetBrowser/Default_16.svg diff --git a/Editor/Icons/AssetBrowser/FBX_16.svg b/Assets/Editor/Icons/AssetBrowser/FBX_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/FBX_16.svg rename to Assets/Editor/Icons/AssetBrowser/FBX_16.svg diff --git a/Editor/Icons/AssetBrowser/Folder_16.svg b/Assets/Editor/Icons/AssetBrowser/Folder_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Folder_16.svg rename to Assets/Editor/Icons/AssetBrowser/Folder_16.svg diff --git a/Editor/Icons/AssetBrowser/Font_16.svg b/Assets/Editor/Icons/AssetBrowser/Font_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Font_16.svg rename to Assets/Editor/Icons/AssetBrowser/Font_16.svg diff --git a/Editor/Icons/AssetBrowser/GemFolder_16.svg b/Assets/Editor/Icons/AssetBrowser/GemFolder_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/GemFolder_16.svg rename to Assets/Editor/Icons/AssetBrowser/GemFolder_16.svg diff --git a/Editor/Icons/AssetBrowser/Image_16.svg b/Assets/Editor/Icons/AssetBrowser/Image_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Image_16.svg rename to Assets/Editor/Icons/AssetBrowser/Image_16.svg diff --git a/Editor/Icons/AssetBrowser/InputBindings_16.svg b/Assets/Editor/Icons/AssetBrowser/InputBindings_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/InputBindings_16.svg rename to Assets/Editor/Icons/AssetBrowser/InputBindings_16.svg diff --git a/Editor/Icons/AssetBrowser/LegacyAnimation_16.svg b/Assets/Editor/Icons/AssetBrowser/LegacyAnimation_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/LegacyAnimation_16.svg rename to Assets/Editor/Icons/AssetBrowser/LegacyAnimation_16.svg diff --git a/Editor/Icons/AssetBrowser/LegacyMesh_16.svg b/Assets/Editor/Icons/AssetBrowser/LegacyMesh_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/LegacyMesh_16.svg rename to Assets/Editor/Icons/AssetBrowser/LegacyMesh_16.svg diff --git a/Editor/Icons/AssetBrowser/LegacySkin_16.svg b/Assets/Editor/Icons/AssetBrowser/LegacySkin_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/LegacySkin_16.svg rename to Assets/Editor/Icons/AssetBrowser/LegacySkin_16.svg diff --git a/Editor/Icons/AssetBrowser/LensFlare_16.svg b/Assets/Editor/Icons/AssetBrowser/LensFlare_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/LensFlare_16.svg rename to Assets/Editor/Icons/AssetBrowser/LensFlare_16.svg diff --git a/Editor/Icons/AssetBrowser/Lua_16.svg b/Assets/Editor/Icons/AssetBrowser/Lua_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Lua_16.svg rename to Assets/Editor/Icons/AssetBrowser/Lua_16.svg diff --git a/Editor/Icons/AssetBrowser/Material_16.svg b/Assets/Editor/Icons/AssetBrowser/Material_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Material_16.svg rename to Assets/Editor/Icons/AssetBrowser/Material_16.svg diff --git a/Editor/Icons/AssetBrowser/NonWritable_16.svg b/Assets/Editor/Icons/AssetBrowser/NonWritable_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/NonWritable_16.svg rename to Assets/Editor/Icons/AssetBrowser/NonWritable_16.svg diff --git a/Editor/Icons/AssetBrowser/Particle_16.svg b/Assets/Editor/Icons/AssetBrowser/Particle_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Particle_16.svg rename to Assets/Editor/Icons/AssetBrowser/Particle_16.svg diff --git a/Editor/Icons/AssetBrowser/Slice_16.svg b/Assets/Editor/Icons/AssetBrowser/Slice_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Slice_16.svg rename to Assets/Editor/Icons/AssetBrowser/Slice_16.svg diff --git a/Editor/Icons/AssetBrowser/Writable_16.svg b/Assets/Editor/Icons/AssetBrowser/Writable_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/Writable_16.svg rename to Assets/Editor/Icons/AssetBrowser/Writable_16.svg diff --git a/Editor/Icons/AssetBrowser/XML_16.svg b/Assets/Editor/Icons/AssetBrowser/XML_16.svg similarity index 100% rename from Editor/Icons/AssetBrowser/XML_16.svg rename to Assets/Editor/Icons/AssetBrowser/XML_16.svg diff --git a/Editor/Icons/AssetBrowser/in_progress.gif b/Assets/Editor/Icons/AssetBrowser/in_progress.gif similarity index 100% rename from Editor/Icons/AssetBrowser/in_progress.gif rename to Assets/Editor/Icons/AssetBrowser/in_progress.gif diff --git a/Editor/Icons/AssetImporter/animation.png b/Assets/Editor/Icons/AssetImporter/animation.png similarity index 100% rename from Editor/Icons/AssetImporter/animation.png rename to Assets/Editor/Icons/AssetImporter/animation.png diff --git a/Editor/Icons/AssetImporter/animation_on.png b/Assets/Editor/Icons/AssetImporter/animation_on.png similarity index 100% rename from Editor/Icons/AssetImporter/animation_on.png rename to Assets/Editor/Icons/AssetImporter/animation_on.png diff --git a/Editor/Icons/AssetImporter/group_icon.png b/Assets/Editor/Icons/AssetImporter/group_icon.png similarity index 100% rename from Editor/Icons/AssetImporter/group_icon.png rename to Assets/Editor/Icons/AssetImporter/group_icon.png diff --git a/Editor/Icons/AssetImporter/mesh.png b/Assets/Editor/Icons/AssetImporter/mesh.png similarity index 100% rename from Editor/Icons/AssetImporter/mesh.png rename to Assets/Editor/Icons/AssetImporter/mesh.png diff --git a/Editor/Icons/AssetImporter/mesh_on.png b/Assets/Editor/Icons/AssetImporter/mesh_on.png similarity index 100% rename from Editor/Icons/AssetImporter/mesh_on.png rename to Assets/Editor/Icons/AssetImporter/mesh_on.png diff --git a/Editor/Icons/AssetImporter/skeleton.png b/Assets/Editor/Icons/AssetImporter/skeleton.png similarity index 100% rename from Editor/Icons/AssetImporter/skeleton.png rename to Assets/Editor/Icons/AssetImporter/skeleton.png diff --git a/Editor/Icons/AssetImporter/skeleton_on.png b/Assets/Editor/Icons/AssetImporter/skeleton_on.png similarity index 100% rename from Editor/Icons/AssetImporter/skeleton_on.png rename to Assets/Editor/Icons/AssetImporter/skeleton_on.png diff --git a/Editor/Icons/AssetImporter/skin.png b/Assets/Editor/Icons/AssetImporter/skin.png similarity index 100% rename from Editor/Icons/AssetImporter/skin.png rename to Assets/Editor/Icons/AssetImporter/skin.png diff --git a/Editor/Icons/AssetImporter/skin_on.png b/Assets/Editor/Icons/AssetImporter/skin_on.png similarity index 100% rename from Editor/Icons/AssetImporter/skin_on.png rename to Assets/Editor/Icons/AssetImporter/skin_on.png diff --git a/Editor/Icons/AssetImporter/tree.png b/Assets/Editor/Icons/AssetImporter/tree.png similarity index 100% rename from Editor/Icons/AssetImporter/tree.png rename to Assets/Editor/Icons/AssetImporter/tree.png diff --git a/Editor/Icons/Assets/InputBindings.png b/Assets/Editor/Icons/Assets/InputBindings.png similarity index 100% rename from Editor/Icons/Assets/InputBindings.png rename to Assets/Editor/Icons/Assets/InputBindings.png diff --git a/Editor/Icons/Assets/Lua.png b/Assets/Editor/Icons/Assets/Lua.png similarity index 100% rename from Editor/Icons/Assets/Lua.png rename to Assets/Editor/Icons/Assets/Lua.png diff --git a/Editor/Icons/Assets/PhysicsMaterial.png b/Assets/Editor/Icons/Assets/PhysicsMaterial.png similarity index 100% rename from Editor/Icons/Assets/PhysicsMaterial.png rename to Assets/Editor/Icons/Assets/PhysicsMaterial.png diff --git a/Editor/Icons/Components/AreaLight.svg b/Assets/Editor/Icons/Components/AreaLight.svg similarity index 100% rename from Editor/Icons/Components/AreaLight.svg rename to Assets/Editor/Icons/Components/AreaLight.svg diff --git a/Editor/Icons/Components/Attachment.svg b/Assets/Editor/Icons/Components/Attachment.svg similarity index 100% rename from Editor/Icons/Components/Attachment.svg rename to Assets/Editor/Icons/Components/Attachment.svg diff --git a/Editor/Icons/Components/AudioAnimation.svg b/Assets/Editor/Icons/Components/AudioAnimation.svg similarity index 100% rename from Editor/Icons/Components/AudioAnimation.svg rename to Assets/Editor/Icons/Components/AudioAnimation.svg diff --git a/Editor/Icons/Components/AudioAnimationEventsProxy.svg b/Assets/Editor/Icons/Components/AudioAnimationEventsProxy.svg similarity index 100% rename from Editor/Icons/Components/AudioAnimationEventsProxy.svg rename to Assets/Editor/Icons/Components/AudioAnimationEventsProxy.svg diff --git a/Editor/Icons/Components/AudioArea.png b/Assets/Editor/Icons/Components/AudioArea.png similarity index 100% rename from Editor/Icons/Components/AudioArea.png rename to Assets/Editor/Icons/Components/AudioArea.png diff --git a/Editor/Icons/Components/AudioAreaEnvironment.svg b/Assets/Editor/Icons/Components/AudioAreaEnvironment.svg similarity index 100% rename from Editor/Icons/Components/AudioAreaEnvironment.svg rename to Assets/Editor/Icons/Components/AudioAreaEnvironment.svg diff --git a/Editor/Icons/Components/AudioEnvironment.svg b/Assets/Editor/Icons/Components/AudioEnvironment.svg similarity index 100% rename from Editor/Icons/Components/AudioEnvironment.svg rename to Assets/Editor/Icons/Components/AudioEnvironment.svg diff --git a/Editor/Icons/Components/AudioListener.svg b/Assets/Editor/Icons/Components/AudioListener.svg similarity index 100% rename from Editor/Icons/Components/AudioListener.svg rename to Assets/Editor/Icons/Components/AudioListener.svg diff --git a/Editor/Icons/Components/AudioMultiPosition.png b/Assets/Editor/Icons/Components/AudioMultiPosition.png similarity index 100% rename from Editor/Icons/Components/AudioMultiPosition.png rename to Assets/Editor/Icons/Components/AudioMultiPosition.png diff --git a/Editor/Icons/Components/AudioPreload.svg b/Assets/Editor/Icons/Components/AudioPreload.svg similarity index 100% rename from Editor/Icons/Components/AudioPreload.svg rename to Assets/Editor/Icons/Components/AudioPreload.svg diff --git a/Editor/Icons/Components/AudioProxy.svg b/Assets/Editor/Icons/Components/AudioProxy.svg similarity index 100% rename from Editor/Icons/Components/AudioProxy.svg rename to Assets/Editor/Icons/Components/AudioProxy.svg diff --git a/Editor/Icons/Components/AudioRtpc.svg b/Assets/Editor/Icons/Components/AudioRtpc.svg similarity index 100% rename from Editor/Icons/Components/AudioRtpc.svg rename to Assets/Editor/Icons/Components/AudioRtpc.svg diff --git a/Editor/Icons/Components/AudioSwitch.svg b/Assets/Editor/Icons/Components/AudioSwitch.svg similarity index 100% rename from Editor/Icons/Components/AudioSwitch.svg rename to Assets/Editor/Icons/Components/AudioSwitch.svg diff --git a/Editor/Icons/Components/AudioTrigger.svg b/Assets/Editor/Icons/Components/AudioTrigger.svg similarity index 100% rename from Editor/Icons/Components/AudioTrigger.svg rename to Assets/Editor/Icons/Components/AudioTrigger.svg diff --git a/Editor/Icons/Components/BehaviorTree.svg b/Assets/Editor/Icons/Components/BehaviorTree.svg similarity index 100% rename from Editor/Icons/Components/BehaviorTree.svg rename to Assets/Editor/Icons/Components/BehaviorTree.svg diff --git a/Editor/Icons/Components/Box.png b/Assets/Editor/Icons/Components/Box.png similarity index 100% rename from Editor/Icons/Components/Box.png rename to Assets/Editor/Icons/Components/Box.png diff --git a/Editor/Icons/Components/Box_Shape.svg b/Assets/Editor/Icons/Components/Box_Shape.svg similarity index 100% rename from Editor/Icons/Components/Box_Shape.svg rename to Assets/Editor/Icons/Components/Box_Shape.svg diff --git a/Editor/Icons/Components/Capsule_Shape.svg b/Assets/Editor/Icons/Components/Capsule_Shape.svg similarity index 100% rename from Editor/Icons/Components/Capsule_Shape.svg rename to Assets/Editor/Icons/Components/Capsule_Shape.svg diff --git a/Editor/Icons/Components/CharacterPhysics.svg b/Assets/Editor/Icons/Components/CharacterPhysics.svg similarity index 100% rename from Editor/Icons/Components/CharacterPhysics.svg rename to Assets/Editor/Icons/Components/CharacterPhysics.svg diff --git a/Editor/Icons/Components/Cloth.svg b/Assets/Editor/Icons/Components/Cloth.svg similarity index 100% rename from Editor/Icons/Components/Cloth.svg rename to Assets/Editor/Icons/Components/Cloth.svg diff --git a/Editor/Icons/Components/CloudGemMessageOfTheDay.svg b/Assets/Editor/Icons/Components/CloudGemMessageOfTheDay.svg similarity index 100% rename from Editor/Icons/Components/CloudGemMessageOfTheDay.svg rename to Assets/Editor/Icons/Components/CloudGemMessageOfTheDay.svg diff --git a/Editor/Icons/Components/ColliderBox.png b/Assets/Editor/Icons/Components/ColliderBox.png similarity index 100% rename from Editor/Icons/Components/ColliderBox.png rename to Assets/Editor/Icons/Components/ColliderBox.png diff --git a/Editor/Icons/Components/ColliderCapsule.png b/Assets/Editor/Icons/Components/ColliderCapsule.png similarity index 100% rename from Editor/Icons/Components/ColliderCapsule.png rename to Assets/Editor/Icons/Components/ColliderCapsule.png diff --git a/Editor/Icons/Components/ColliderCylinder.png b/Assets/Editor/Icons/Components/ColliderCylinder.png similarity index 100% rename from Editor/Icons/Components/ColliderCylinder.png rename to Assets/Editor/Icons/Components/ColliderCylinder.png diff --git a/Editor/Icons/Components/ColliderMesh.svg b/Assets/Editor/Icons/Components/ColliderMesh.svg similarity index 100% rename from Editor/Icons/Components/ColliderMesh.svg rename to Assets/Editor/Icons/Components/ColliderMesh.svg diff --git a/Editor/Icons/Components/ColliderSphere.png b/Assets/Editor/Icons/Components/ColliderSphere.png similarity index 100% rename from Editor/Icons/Components/ColliderSphere.png rename to Assets/Editor/Icons/Components/ColliderSphere.png diff --git a/Editor/Icons/Components/Comment.svg b/Assets/Editor/Icons/Components/Comment.svg similarity index 100% rename from Editor/Icons/Components/Comment.svg rename to Assets/Editor/Icons/Components/Comment.svg diff --git a/Editor/Icons/Components/Component_Placeholder.svg b/Assets/Editor/Icons/Components/Component_Placeholder.svg similarity index 100% rename from Editor/Icons/Components/Component_Placeholder.svg rename to Assets/Editor/Icons/Components/Component_Placeholder.svg diff --git a/Editor/Icons/Components/Compound_Shape.svg b/Assets/Editor/Icons/Components/Compound_Shape.svg similarity index 100% rename from Editor/Icons/Components/Compound_Shape.svg rename to Assets/Editor/Icons/Components/Compound_Shape.svg diff --git a/Editor/Icons/Components/Cylinder.png b/Assets/Editor/Icons/Components/Cylinder.png similarity index 100% rename from Editor/Icons/Components/Cylinder.png rename to Assets/Editor/Icons/Components/Cylinder.png diff --git a/Editor/Icons/Components/Cylinder_Shape.svg b/Assets/Editor/Icons/Components/Cylinder_Shape.svg similarity index 100% rename from Editor/Icons/Components/Cylinder_Shape.svg rename to Assets/Editor/Icons/Components/Cylinder_Shape.svg diff --git a/Editor/Icons/Components/DebugDrawLine.svg b/Assets/Editor/Icons/Components/DebugDrawLine.svg similarity index 100% rename from Editor/Icons/Components/DebugDrawLine.svg rename to Assets/Editor/Icons/Components/DebugDrawLine.svg diff --git a/Editor/Icons/Components/DebugDrawObb.svg b/Assets/Editor/Icons/Components/DebugDrawObb.svg similarity index 100% rename from Editor/Icons/Components/DebugDrawObb.svg rename to Assets/Editor/Icons/Components/DebugDrawObb.svg diff --git a/Editor/Icons/Components/DebugDrawRay.svg b/Assets/Editor/Icons/Components/DebugDrawRay.svg similarity index 100% rename from Editor/Icons/Components/DebugDrawRay.svg rename to Assets/Editor/Icons/Components/DebugDrawRay.svg diff --git a/Editor/Icons/Components/DebugDrawSphere.svg b/Assets/Editor/Icons/Components/DebugDrawSphere.svg similarity index 100% rename from Editor/Icons/Components/DebugDrawSphere.svg rename to Assets/Editor/Icons/Components/DebugDrawSphere.svg diff --git a/Editor/Icons/Components/DebugDrawText.svg b/Assets/Editor/Icons/Components/DebugDrawText.svg similarity index 100% rename from Editor/Icons/Components/DebugDrawText.svg rename to Assets/Editor/Icons/Components/DebugDrawText.svg diff --git a/Editor/Icons/Components/Decal.svg b/Assets/Editor/Icons/Components/Decal.svg similarity index 100% rename from Editor/Icons/Components/Decal.svg rename to Assets/Editor/Icons/Components/Decal.svg diff --git a/Editor/Icons/Components/Disabled/Animation_white.png b/Assets/Editor/Icons/Components/Disabled/Animation_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Animation_white.png rename to Assets/Editor/Icons/Components/Disabled/Animation_white.png diff --git a/Editor/Icons/Components/Disabled/Attachment_white.png b/Assets/Editor/Icons/Components/Disabled/Attachment_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Attachment_white.png rename to Assets/Editor/Icons/Components/Disabled/Attachment_white.png diff --git a/Editor/Icons/Components/Disabled/AudioAreaEnvironment_white.png b/Assets/Editor/Icons/Components/Disabled/AudioAreaEnvironment_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioAreaEnvironment_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioAreaEnvironment_white.png diff --git a/Editor/Icons/Components/Disabled/AudioArea_white.png b/Assets/Editor/Icons/Components/Disabled/AudioArea_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioArea_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioArea_white.png diff --git a/Editor/Icons/Components/Disabled/AudioEnvironment_white.png b/Assets/Editor/Icons/Components/Disabled/AudioEnvironment_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioEnvironment_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioEnvironment_white.png diff --git a/Editor/Icons/Components/Disabled/AudioListener_white.png b/Assets/Editor/Icons/Components/Disabled/AudioListener_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioListener_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioListener_white.png diff --git a/Editor/Icons/Components/Disabled/AudioRtpc_white.png b/Assets/Editor/Icons/Components/Disabled/AudioRtpc_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioRtpc_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioRtpc_white.png diff --git a/Editor/Icons/Components/Disabled/AudioSwitch_white.png b/Assets/Editor/Icons/Components/Disabled/AudioSwitch_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioSwitch_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioSwitch_white.png diff --git a/Editor/Icons/Components/Disabled/AudioTrigger_white.png b/Assets/Editor/Icons/Components/Disabled/AudioTrigger_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/AudioTrigger_white.png rename to Assets/Editor/Icons/Components/Disabled/AudioTrigger_white.png diff --git a/Editor/Icons/Components/Disabled/BehaviorTree_white.png b/Assets/Editor/Icons/Components/Disabled/BehaviorTree_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/BehaviorTree_white.png rename to Assets/Editor/Icons/Components/Disabled/BehaviorTree_white.png diff --git a/Editor/Icons/Components/Disabled/Box_Shape_white.png b/Assets/Editor/Icons/Components/Disabled/Box_Shape_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Box_Shape_white.png rename to Assets/Editor/Icons/Components/Disabled/Box_Shape_white.png diff --git a/Editor/Icons/Components/Disabled/Box_collider_white.png b/Assets/Editor/Icons/Components/Disabled/Box_collider_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Box_collider_white.png rename to Assets/Editor/Icons/Components/Disabled/Box_collider_white.png diff --git a/Editor/Icons/Components/Disabled/Box_white.png b/Assets/Editor/Icons/Components/Disabled/Box_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Box_white.png rename to Assets/Editor/Icons/Components/Disabled/Box_white.png diff --git a/Editor/Icons/Components/Disabled/Capsule_Shape_white.png b/Assets/Editor/Icons/Components/Disabled/Capsule_Shape_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Capsule_Shape_white.png rename to Assets/Editor/Icons/Components/Disabled/Capsule_Shape_white.png diff --git a/Editor/Icons/Components/Disabled/Capsule_white.png b/Assets/Editor/Icons/Components/Disabled/Capsule_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Capsule_white.png rename to Assets/Editor/Icons/Components/Disabled/Capsule_white.png diff --git a/Editor/Icons/Components/Disabled/CharacterPhysics_white.png b/Assets/Editor/Icons/Components/Disabled/CharacterPhysics_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/CharacterPhysics_white.png rename to Assets/Editor/Icons/Components/Disabled/CharacterPhysics_white.png diff --git a/Editor/Icons/Components/Disabled/Comment.png b/Assets/Editor/Icons/Components/Disabled/Comment.png similarity index 100% rename from Editor/Icons/Components/Disabled/Comment.png rename to Assets/Editor/Icons/Components/Disabled/Comment.png diff --git a/Editor/Icons/Components/Disabled/ComponentPlaceholder_white.png b/Assets/Editor/Icons/Components/Disabled/ComponentPlaceholder_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/ComponentPlaceholder_white.png rename to Assets/Editor/Icons/Components/Disabled/ComponentPlaceholder_white.png diff --git a/Editor/Icons/Components/Disabled/Component_Placeholder_white.png b/Assets/Editor/Icons/Components/Disabled/Component_Placeholder_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Component_Placeholder_white.png rename to Assets/Editor/Icons/Components/Disabled/Component_Placeholder_white.png diff --git a/Editor/Icons/Components/Disabled/Cylinder_Shape_white.png b/Assets/Editor/Icons/Components/Disabled/Cylinder_Shape_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Cylinder_Shape_white.png rename to Assets/Editor/Icons/Components/Disabled/Cylinder_Shape_white.png diff --git a/Editor/Icons/Components/Disabled/Cylinder_white.png b/Assets/Editor/Icons/Components/Disabled/Cylinder_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Cylinder_white.png rename to Assets/Editor/Icons/Components/Disabled/Cylinder_white.png diff --git a/Editor/Icons/Components/Disabled/Decal_white.png b/Assets/Editor/Icons/Components/Disabled/Decal_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Decal_white.png rename to Assets/Editor/Icons/Components/Disabled/Decal_white.png diff --git a/Editor/Icons/Components/Disabled/DynamicContent_white.png b/Assets/Editor/Icons/Components/Disabled/DynamicContent_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/DynamicContent_white.png rename to Assets/Editor/Icons/Components/Disabled/DynamicContent_white.png diff --git a/Editor/Icons/Components/Disabled/DynamicMesh_white.png b/Assets/Editor/Icons/Components/Disabled/DynamicMesh_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/DynamicMesh_white.png rename to Assets/Editor/Icons/Components/Disabled/DynamicMesh_white.png diff --git a/Editor/Icons/Components/Disabled/EntityInSlice_white.png b/Assets/Editor/Icons/Components/Disabled/EntityInSlice_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/EntityInSlice_white.png rename to Assets/Editor/Icons/Components/Disabled/EntityInSlice_white.png diff --git a/Editor/Icons/Components/Disabled/Entity_white.png b/Assets/Editor/Icons/Components/Disabled/Entity_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Entity_white.png rename to Assets/Editor/Icons/Components/Disabled/Entity_white.png diff --git a/Editor/Icons/Components/Disabled/FogVolume_white.png b/Assets/Editor/Icons/Components/Disabled/FogVolume_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/FogVolume_white.png rename to Assets/Editor/Icons/Components/Disabled/FogVolume_white.png diff --git a/Editor/Icons/Components/Disabled/ForceVolume_white.png b/Assets/Editor/Icons/Components/Disabled/ForceVolume_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/ForceVolume_white.png rename to Assets/Editor/Icons/Components/Disabled/ForceVolume_white.png diff --git a/Editor/Icons/Components/Disabled/GeometryCache_white.png b/Assets/Editor/Icons/Components/Disabled/GeometryCache_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/GeometryCache_white.png rename to Assets/Editor/Icons/Components/Disabled/GeometryCache_white.png diff --git a/Editor/Icons/Components/Disabled/HttpClientComponent_white.png b/Assets/Editor/Icons/Components/Disabled/HttpClientComponent_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/HttpClientComponent_white.png rename to Assets/Editor/Icons/Components/Disabled/HttpClientComponent_white.png diff --git a/Editor/Icons/Components/Disabled/LensFlare_white.png b/Assets/Editor/Icons/Components/Disabled/LensFlare_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/LensFlare_white.png rename to Assets/Editor/Icons/Components/Disabled/LensFlare_white.png diff --git a/Editor/Icons/Components/Disabled/Light_white.png b/Assets/Editor/Icons/Components/Disabled/Light_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Light_white.png rename to Assets/Editor/Icons/Components/Disabled/Light_white.png diff --git a/Editor/Icons/Components/Disabled/LightningArc_white.png b/Assets/Editor/Icons/Components/Disabled/LightningArc_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/LightningArc_white.png rename to Assets/Editor/Icons/Components/Disabled/LightningArc_white.png diff --git a/Editor/Icons/Components/Disabled/Lightning_white.png b/Assets/Editor/Icons/Components/Disabled/Lightning_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Lightning_white.png rename to Assets/Editor/Icons/Components/Disabled/Lightning_white.png diff --git a/Editor/Icons/Components/Disabled/LookAt_white.png b/Assets/Editor/Icons/Components/Disabled/LookAt_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/LookAt_white.png rename to Assets/Editor/Icons/Components/Disabled/LookAt_white.png diff --git a/Editor/Icons/Components/Disabled/MannequinScopeContext_white.png b/Assets/Editor/Icons/Components/Disabled/MannequinScopeContext_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/MannequinScopeContext_white.png rename to Assets/Editor/Icons/Components/Disabled/MannequinScopeContext_white.png diff --git a/Editor/Icons/Components/Disabled/Mannequin_white.png b/Assets/Editor/Icons/Components/Disabled/Mannequin_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Mannequin_white.png rename to Assets/Editor/Icons/Components/Disabled/Mannequin_white.png diff --git a/Editor/Icons/Components/Disabled/Mesh_collidaer_white 2.png b/Assets/Editor/Icons/Components/Disabled/Mesh_collidaer_white 2.png similarity index 100% rename from Editor/Icons/Components/Disabled/Mesh_collidaer_white 2.png rename to Assets/Editor/Icons/Components/Disabled/Mesh_collidaer_white 2.png diff --git a/Editor/Icons/Components/Disabled/NavigationArea_white.png b/Assets/Editor/Icons/Components/Disabled/NavigationArea_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/NavigationArea_white.png rename to Assets/Editor/Icons/Components/Disabled/NavigationArea_white.png diff --git a/Editor/Icons/Components/Disabled/NavigationSeed_white.png b/Assets/Editor/Icons/Components/Disabled/NavigationSeed_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/NavigationSeed_white.png rename to Assets/Editor/Icons/Components/Disabled/NavigationSeed_white.png diff --git a/Editor/Icons/Components/Disabled/Navigation_white.png b/Assets/Editor/Icons/Components/Disabled/Navigation_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Navigation_white.png rename to Assets/Editor/Icons/Components/Disabled/Navigation_white.png diff --git a/Editor/Icons/Components/Disabled/NetBinding_white.png b/Assets/Editor/Icons/Components/Disabled/NetBinding_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/NetBinding_white.png rename to Assets/Editor/Icons/Components/Disabled/NetBinding_white.png diff --git a/Editor/Icons/Components/Disabled/ObjectAvoidance_white.png b/Assets/Editor/Icons/Components/Disabled/ObjectAvoidance_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/ObjectAvoidance_white.png rename to Assets/Editor/Icons/Components/Disabled/ObjectAvoidance_white.png diff --git a/Editor/Icons/Components/Disabled/Particle_white.png b/Assets/Editor/Icons/Components/Disabled/Particle_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Particle_white.png rename to Assets/Editor/Icons/Components/Disabled/Particle_white.png diff --git a/Editor/Icons/Components/Disabled/PhysicsConstraint_white.png b/Assets/Editor/Icons/Components/Disabled/PhysicsConstraint_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/PhysicsConstraint_white.png rename to Assets/Editor/Icons/Components/Disabled/PhysicsConstraint_white.png diff --git a/Editor/Icons/Components/Disabled/PolygonPrism_white.png b/Assets/Editor/Icons/Components/Disabled/PolygonPrism_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/PolygonPrism_white.png rename to Assets/Editor/Icons/Components/Disabled/PolygonPrism_white.png diff --git a/Editor/Icons/Components/Disabled/PrimitiveCollider_white.png b/Assets/Editor/Icons/Components/Disabled/PrimitiveCollider_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/PrimitiveCollider_white.png rename to Assets/Editor/Icons/Components/Disabled/PrimitiveCollider_white.png diff --git a/Editor/Icons/Components/Disabled/Ragdoll.png b/Assets/Editor/Icons/Components/Disabled/Ragdoll.png similarity index 100% rename from Editor/Icons/Components/Disabled/Ragdoll.png rename to Assets/Editor/Icons/Components/Disabled/Ragdoll.png diff --git a/Editor/Icons/Components/Disabled/Ragdoll_white.png b/Assets/Editor/Icons/Components/Disabled/Ragdoll_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Ragdoll_white.png rename to Assets/Editor/Icons/Components/Disabled/Ragdoll_white.png diff --git a/Editor/Icons/Components/Disabled/RandomTimedSpawner_white.png b/Assets/Editor/Icons/Components/Disabled/RandomTimedSpawner_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/RandomTimedSpawner_white.png rename to Assets/Editor/Icons/Components/Disabled/RandomTimedSpawner_white.png diff --git a/Editor/Icons/Components/Disabled/RigidPhysics_white.png b/Assets/Editor/Icons/Components/Disabled/RigidPhysics_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/RigidPhysics_white.png rename to Assets/Editor/Icons/Components/Disabled/RigidPhysics_white.png diff --git a/Editor/Icons/Components/Disabled/Script_white.png b/Assets/Editor/Icons/Components/Disabled/Script_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Script_white.png rename to Assets/Editor/Icons/Components/Disabled/Script_white.png diff --git a/Editor/Icons/Components/Disabled/SequenceAgent_white.png b/Assets/Editor/Icons/Components/Disabled/SequenceAgent_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/SequenceAgent_white.png rename to Assets/Editor/Icons/Components/Disabled/SequenceAgent_white.png diff --git a/Editor/Icons/Components/Disabled/Sequence_white.png b/Assets/Editor/Icons/Components/Disabled/Sequence_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Sequence_white.png rename to Assets/Editor/Icons/Components/Disabled/Sequence_white.png diff --git a/Editor/Icons/Components/Disabled/Shadow.png b/Assets/Editor/Icons/Components/Disabled/Shadow.png similarity index 100% rename from Editor/Icons/Components/Disabled/Shadow.png rename to Assets/Editor/Icons/Components/Disabled/Shadow.png diff --git a/Editor/Icons/Components/Disabled/SimpleState_white.png b/Assets/Editor/Icons/Components/Disabled/SimpleState_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/SimpleState_white.png rename to Assets/Editor/Icons/Components/Disabled/SimpleState_white.png diff --git a/Editor/Icons/Components/Disabled/SkinnedMesh_white.png b/Assets/Editor/Icons/Components/Disabled/SkinnedMesh_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/SkinnedMesh_white.png rename to Assets/Editor/Icons/Components/Disabled/SkinnedMesh_white.png diff --git a/Editor/Icons/Components/Disabled/SkyHighlight_white.png b/Assets/Editor/Icons/Components/Disabled/SkyHighlight_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/SkyHighlight_white.png rename to Assets/Editor/Icons/Components/Disabled/SkyHighlight_white.png diff --git a/Editor/Icons/Components/Disabled/Snow_white.png b/Assets/Editor/Icons/Components/Disabled/Snow_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Snow_white.png rename to Assets/Editor/Icons/Components/Disabled/Snow_white.png diff --git a/Editor/Icons/Components/Disabled/Spawner_white.png b/Assets/Editor/Icons/Components/Disabled/Spawner_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Spawner_white.png rename to Assets/Editor/Icons/Components/Disabled/Spawner_white.png diff --git a/Editor/Icons/Components/Disabled/Sphere_Shape_white.png b/Assets/Editor/Icons/Components/Disabled/Sphere_Shape_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Sphere_Shape_white.png rename to Assets/Editor/Icons/Components/Disabled/Sphere_Shape_white.png diff --git a/Editor/Icons/Components/Disabled/Sphere_white.png b/Assets/Editor/Icons/Components/Disabled/Sphere_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Sphere_white.png rename to Assets/Editor/Icons/Components/Disabled/Sphere_white.png diff --git a/Editor/Icons/Components/Disabled/Spline_white.png b/Assets/Editor/Icons/Components/Disabled/Spline_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Spline_white.png rename to Assets/Editor/Icons/Components/Disabled/Spline_white.png diff --git a/Editor/Icons/Components/Disabled/StaticData_white.png b/Assets/Editor/Icons/Components/Disabled/StaticData_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/StaticData_white.png rename to Assets/Editor/Icons/Components/Disabled/StaticData_white.png diff --git a/Editor/Icons/Components/Disabled/StaticMesh_white.png b/Assets/Editor/Icons/Components/Disabled/StaticMesh_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/StaticMesh_white.png rename to Assets/Editor/Icons/Components/Disabled/StaticMesh_white.png diff --git a/Editor/Icons/Components/Disabled/StaticPhysics_white.png b/Assets/Editor/Icons/Components/Disabled/StaticPhysics_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/StaticPhysics_white.png rename to Assets/Editor/Icons/Components/Disabled/StaticPhysics_white.png diff --git a/Editor/Icons/Components/Disabled/Tag_white.png b/Assets/Editor/Icons/Components/Disabled/Tag_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Tag_white.png rename to Assets/Editor/Icons/Components/Disabled/Tag_white.png diff --git a/Editor/Icons/Components/Disabled/Transform_white.png b/Assets/Editor/Icons/Components/Disabled/Transform_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Transform_white.png rename to Assets/Editor/Icons/Components/Disabled/Transform_white.png diff --git a/Editor/Icons/Components/Disabled/Trigger_white.png b/Assets/Editor/Icons/Components/Disabled/Trigger_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/Trigger_white.png rename to Assets/Editor/Icons/Components/Disabled/Trigger_white.png diff --git a/Editor/Icons/Components/Disabled/UiCanvasOnMesh_white.png b/Assets/Editor/Icons/Components/Disabled/UiCanvasOnMesh_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/UiCanvasOnMesh_white.png rename to Assets/Editor/Icons/Components/Disabled/UiCanvasOnMesh_white.png diff --git a/Editor/Icons/Components/Disabled/UiCanvasRef_white.png b/Assets/Editor/Icons/Components/Disabled/UiCanvasRef_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/UiCanvasRef_white.png rename to Assets/Editor/Icons/Components/Disabled/UiCanvasRef_white.png diff --git a/Editor/Icons/Components/Disabled/WaterVolume_white.png b/Assets/Editor/Icons/Components/Disabled/WaterVolume_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/WaterVolume_white.png rename to Assets/Editor/Icons/Components/Disabled/WaterVolume_white.png diff --git a/Editor/Icons/Components/Disabled/WindVolume_white.png b/Assets/Editor/Icons/Components/Disabled/WindVolume_white.png similarity index 100% rename from Editor/Icons/Components/Disabled/WindVolume_white.png rename to Assets/Editor/Icons/Components/Disabled/WindVolume_white.png diff --git a/Editor/Icons/Components/Disk_Shape.svg b/Assets/Editor/Icons/Components/Disk_Shape.svg similarity index 100% rename from Editor/Icons/Components/Disk_Shape.svg rename to Assets/Editor/Icons/Components/Disk_Shape.svg diff --git a/Editor/Icons/Components/DynamicContent.png b/Assets/Editor/Icons/Components/DynamicContent.png similarity index 100% rename from Editor/Icons/Components/DynamicContent.png rename to Assets/Editor/Icons/Components/DynamicContent.png diff --git a/Editor/Icons/Components/DynamicMesh.png b/Assets/Editor/Icons/Components/DynamicMesh.png similarity index 100% rename from Editor/Icons/Components/DynamicMesh.png rename to Assets/Editor/Icons/Components/DynamicMesh.png diff --git a/Editor/Icons/Components/Entity.png b/Assets/Editor/Icons/Components/Entity.png similarity index 100% rename from Editor/Icons/Components/Entity.png rename to Assets/Editor/Icons/Components/Entity.png diff --git a/Editor/Icons/Components/EntityInSlice.png b/Assets/Editor/Icons/Components/EntityInSlice.png similarity index 100% rename from Editor/Icons/Components/EntityInSlice.png rename to Assets/Editor/Icons/Components/EntityInSlice.png diff --git a/Editor/Icons/Components/EnvironmentProbe.svg b/Assets/Editor/Icons/Components/EnvironmentProbe.svg similarity index 100% rename from Editor/Icons/Components/EnvironmentProbe.svg rename to Assets/Editor/Icons/Components/EnvironmentProbe.svg diff --git a/Editor/Icons/Components/Flipbook.png b/Assets/Editor/Icons/Components/Flipbook.png similarity index 100% rename from Editor/Icons/Components/Flipbook.png rename to Assets/Editor/Icons/Components/Flipbook.png diff --git a/Editor/Icons/Components/FogVolume.svg b/Assets/Editor/Icons/Components/FogVolume.svg similarity index 100% rename from Editor/Icons/Components/FogVolume.svg rename to Assets/Editor/Icons/Components/FogVolume.svg diff --git a/Editor/Icons/Components/Footstep1.svg b/Assets/Editor/Icons/Components/Footstep1.svg similarity index 100% rename from Editor/Icons/Components/Footstep1.svg rename to Assets/Editor/Icons/Components/Footstep1.svg diff --git a/Editor/Icons/Components/ForceRegion.png b/Assets/Editor/Icons/Components/ForceRegion.png similarity index 100% rename from Editor/Icons/Components/ForceRegion.png rename to Assets/Editor/Icons/Components/ForceRegion.png diff --git a/Editor/Icons/Components/ForceVolume.svg b/Assets/Editor/Icons/Components/ForceVolume.svg similarity index 100% rename from Editor/Icons/Components/ForceVolume.svg rename to Assets/Editor/Icons/Components/ForceVolume.svg diff --git a/Editor/Icons/Components/GeometryCache.svg b/Assets/Editor/Icons/Components/GeometryCache.svg similarity index 100% rename from Editor/Icons/Components/GeometryCache.svg rename to Assets/Editor/Icons/Components/GeometryCache.svg diff --git a/Editor/Icons/Components/HttpClientComponent.png b/Assets/Editor/Icons/Components/HttpClientComponent.png similarity index 100% rename from Editor/Icons/Components/HttpClientComponent.png rename to Assets/Editor/Icons/Components/HttpClientComponent.png diff --git a/Editor/Icons/Components/Layers.svg b/Assets/Editor/Icons/Components/Layers.svg similarity index 100% rename from Editor/Icons/Components/Layers.svg rename to Assets/Editor/Icons/Components/Layers.svg diff --git a/Editor/Icons/Components/LegacyTerrain.svg b/Assets/Editor/Icons/Components/LegacyTerrain.svg similarity index 100% rename from Editor/Icons/Components/LegacyTerrain.svg rename to Assets/Editor/Icons/Components/LegacyTerrain.svg diff --git a/Editor/Icons/Components/LensFlare.svg b/Assets/Editor/Icons/Components/LensFlare.svg similarity index 100% rename from Editor/Icons/Components/LensFlare.svg rename to Assets/Editor/Icons/Components/LensFlare.svg diff --git a/Editor/Icons/Components/Light.png b/Assets/Editor/Icons/Components/Light.png similarity index 100% rename from Editor/Icons/Components/Light.png rename to Assets/Editor/Icons/Components/Light.png diff --git a/Editor/Icons/Components/Lightning.svg b/Assets/Editor/Icons/Components/Lightning.svg similarity index 100% rename from Editor/Icons/Components/Lightning.svg rename to Assets/Editor/Icons/Components/Lightning.svg diff --git a/Editor/Icons/Components/LightningArc.svg b/Assets/Editor/Icons/Components/LightningArc.svg similarity index 100% rename from Editor/Icons/Components/LightningArc.svg rename to Assets/Editor/Icons/Components/LightningArc.svg diff --git a/Editor/Icons/Components/LookAt.png b/Assets/Editor/Icons/Components/LookAt.png similarity index 100% rename from Editor/Icons/Components/LookAt.png rename to Assets/Editor/Icons/Components/LookAt.png diff --git a/Editor/Icons/Components/LuaScript.svg b/Assets/Editor/Icons/Components/LuaScript.svg similarity index 100% rename from Editor/Icons/Components/LuaScript.svg rename to Assets/Editor/Icons/Components/LuaScript.svg diff --git a/Editor/Icons/Components/Mannequin.svg b/Assets/Editor/Icons/Components/Mannequin.svg similarity index 100% rename from Editor/Icons/Components/Mannequin.svg rename to Assets/Editor/Icons/Components/Mannequin.svg diff --git a/Editor/Icons/Components/MannequinScopeContext.svg b/Assets/Editor/Icons/Components/MannequinScopeContext.svg similarity index 100% rename from Editor/Icons/Components/MannequinScopeContext.svg rename to Assets/Editor/Icons/Components/MannequinScopeContext.svg diff --git a/Editor/Icons/Components/MotionParameterSmoothing.svg b/Assets/Editor/Icons/Components/MotionParameterSmoothing.svg similarity index 100% rename from Editor/Icons/Components/MotionParameterSmoothing.svg rename to Assets/Editor/Icons/Components/MotionParameterSmoothing.svg diff --git a/Editor/Icons/Components/Navigation.svg b/Assets/Editor/Icons/Components/Navigation.svg similarity index 100% rename from Editor/Icons/Components/Navigation.svg rename to Assets/Editor/Icons/Components/Navigation.svg diff --git a/Editor/Icons/Components/NavigationArea.svg b/Assets/Editor/Icons/Components/NavigationArea.svg similarity index 100% rename from Editor/Icons/Components/NavigationArea.svg rename to Assets/Editor/Icons/Components/NavigationArea.svg diff --git a/Editor/Icons/Components/NavigationSeed.svg b/Assets/Editor/Icons/Components/NavigationSeed.svg similarity index 100% rename from Editor/Icons/Components/NavigationSeed.svg rename to Assets/Editor/Icons/Components/NavigationSeed.svg diff --git a/Editor/Icons/Components/NetBinding.svg b/Assets/Editor/Icons/Components/NetBinding.svg similarity index 100% rename from Editor/Icons/Components/NetBinding.svg rename to Assets/Editor/Icons/Components/NetBinding.svg diff --git a/Editor/Icons/Components/ObjectAvoidance.png b/Assets/Editor/Icons/Components/ObjectAvoidance.png similarity index 100% rename from Editor/Icons/Components/ObjectAvoidance.png rename to Assets/Editor/Icons/Components/ObjectAvoidance.png diff --git a/Editor/Icons/Components/Particle.svg b/Assets/Editor/Icons/Components/Particle.svg similarity index 100% rename from Editor/Icons/Components/Particle.svg rename to Assets/Editor/Icons/Components/Particle.svg diff --git a/Editor/Icons/Components/PhysXCharacter.svg b/Assets/Editor/Icons/Components/PhysXCharacter.svg similarity index 100% rename from Editor/Icons/Components/PhysXCharacter.svg rename to Assets/Editor/Icons/Components/PhysXCharacter.svg diff --git a/Editor/Icons/Components/PhysXCollider.svg b/Assets/Editor/Icons/Components/PhysXCollider.svg similarity index 100% rename from Editor/Icons/Components/PhysXCollider.svg rename to Assets/Editor/Icons/Components/PhysXCollider.svg diff --git a/Editor/Icons/Components/PhysXRagdoll.svg b/Assets/Editor/Icons/Components/PhysXRagdoll.svg similarity index 100% rename from Editor/Icons/Components/PhysXRagdoll.svg rename to Assets/Editor/Icons/Components/PhysXRagdoll.svg diff --git a/Editor/Icons/Components/PhysXRigidBody.svg b/Assets/Editor/Icons/Components/PhysXRigidBody.svg similarity index 100% rename from Editor/Icons/Components/PhysXRigidBody.svg rename to Assets/Editor/Icons/Components/PhysXRigidBody.svg diff --git a/Editor/Icons/Components/PhysXTerrain.svg b/Assets/Editor/Icons/Components/PhysXTerrain.svg similarity index 100% rename from Editor/Icons/Components/PhysXTerrain.svg rename to Assets/Editor/Icons/Components/PhysXTerrain.svg diff --git a/Editor/Icons/Components/Physics.png b/Assets/Editor/Icons/Components/Physics.png similarity index 100% rename from Editor/Icons/Components/Physics.png rename to Assets/Editor/Icons/Components/Physics.png diff --git a/Editor/Icons/Components/PhysicsConstraint.svg b/Assets/Editor/Icons/Components/PhysicsConstraint.svg similarity index 100% rename from Editor/Icons/Components/PhysicsConstraint.svg rename to Assets/Editor/Icons/Components/PhysicsConstraint.svg diff --git a/Editor/Icons/Components/PointLight.svg b/Assets/Editor/Icons/Components/PointLight.svg similarity index 100% rename from Editor/Icons/Components/PointLight.svg rename to Assets/Editor/Icons/Components/PointLight.svg diff --git a/Editor/Icons/Components/PolygonPrism.svg b/Assets/Editor/Icons/Components/PolygonPrism.svg similarity index 100% rename from Editor/Icons/Components/PolygonPrism.svg rename to Assets/Editor/Icons/Components/PolygonPrism.svg diff --git a/Editor/Icons/Components/PrimitiveCollider.svg b/Assets/Editor/Icons/Components/PrimitiveCollider.svg similarity index 100% rename from Editor/Icons/Components/PrimitiveCollider.svg rename to Assets/Editor/Icons/Components/PrimitiveCollider.svg diff --git a/Editor/Icons/Components/ProjectorLight.svg b/Assets/Editor/Icons/Components/ProjectorLight.svg similarity index 100% rename from Editor/Icons/Components/ProjectorLight.svg rename to Assets/Editor/Icons/Components/ProjectorLight.svg diff --git a/Editor/Icons/Components/Quad_Shape.svg b/Assets/Editor/Icons/Components/Quad_Shape.svg similarity index 100% rename from Editor/Icons/Components/Quad_Shape.svg rename to Assets/Editor/Icons/Components/Quad_Shape.svg diff --git a/Editor/Icons/Components/Ragdoll.png b/Assets/Editor/Icons/Components/Ragdoll.png similarity index 100% rename from Editor/Icons/Components/Ragdoll.png rename to Assets/Editor/Icons/Components/Ragdoll.png diff --git a/Editor/Icons/Components/RandomTimedSpawner.svg b/Assets/Editor/Icons/Components/RandomTimedSpawner.svg similarity index 100% rename from Editor/Icons/Components/RandomTimedSpawner.svg rename to Assets/Editor/Icons/Components/RandomTimedSpawner.svg diff --git a/Editor/Icons/Components/RigidPhysics.svg b/Assets/Editor/Icons/Components/RigidPhysics.svg similarity index 100% rename from Editor/Icons/Components/RigidPhysics.svg rename to Assets/Editor/Icons/Components/RigidPhysics.svg diff --git a/Editor/Icons/Components/ScriptEventAssetReference.png b/Assets/Editor/Icons/Components/ScriptEventAssetReference.png similarity index 100% rename from Editor/Icons/Components/ScriptEventAssetReference.png rename to Assets/Editor/Icons/Components/ScriptEventAssetReference.png diff --git a/Editor/Icons/Components/Sequence.png b/Assets/Editor/Icons/Components/Sequence.png similarity index 100% rename from Editor/Icons/Components/Sequence.png rename to Assets/Editor/Icons/Components/Sequence.png diff --git a/Editor/Icons/Components/SequenceAgent.png b/Assets/Editor/Icons/Components/SequenceAgent.png similarity index 100% rename from Editor/Icons/Components/SequenceAgent.png rename to Assets/Editor/Icons/Components/SequenceAgent.png diff --git a/Editor/Icons/Components/Shadow.svg b/Assets/Editor/Icons/Components/Shadow.svg similarity index 100% rename from Editor/Icons/Components/Shadow.svg rename to Assets/Editor/Icons/Components/Shadow.svg diff --git a/Editor/Icons/Components/SimpleAnimation.svg b/Assets/Editor/Icons/Components/SimpleAnimation.svg similarity index 100% rename from Editor/Icons/Components/SimpleAnimation.svg rename to Assets/Editor/Icons/Components/SimpleAnimation.svg diff --git a/Editor/Icons/Components/SimpleLODDistance.svg b/Assets/Editor/Icons/Components/SimpleLODDistance.svg similarity index 100% rename from Editor/Icons/Components/SimpleLODDistance.svg rename to Assets/Editor/Icons/Components/SimpleLODDistance.svg diff --git a/Editor/Icons/Components/SimpleMotion.svg b/Assets/Editor/Icons/Components/SimpleMotion.svg similarity index 100% rename from Editor/Icons/Components/SimpleMotion.svg rename to Assets/Editor/Icons/Components/SimpleMotion.svg diff --git a/Editor/Icons/Components/SimpleState.svg b/Assets/Editor/Icons/Components/SimpleState.svg similarity index 100% rename from Editor/Icons/Components/SimpleState.svg rename to Assets/Editor/Icons/Components/SimpleState.svg diff --git a/Editor/Icons/Components/SkinnedMesh.svg b/Assets/Editor/Icons/Components/SkinnedMesh.svg similarity index 100% rename from Editor/Icons/Components/SkinnedMesh.svg rename to Assets/Editor/Icons/Components/SkinnedMesh.svg diff --git a/Editor/Icons/Components/SkyHighlight.svg b/Assets/Editor/Icons/Components/SkyHighlight.svg similarity index 100% rename from Editor/Icons/Components/SkyHighlight.svg rename to Assets/Editor/Icons/Components/SkyHighlight.svg diff --git a/Editor/Icons/Components/Snow.svg b/Assets/Editor/Icons/Components/Snow.svg similarity index 100% rename from Editor/Icons/Components/Snow.svg rename to Assets/Editor/Icons/Components/Snow.svg diff --git a/Editor/Icons/Components/Spawner.svg b/Assets/Editor/Icons/Components/Spawner.svg similarity index 100% rename from Editor/Icons/Components/Spawner.svg rename to Assets/Editor/Icons/Components/Spawner.svg diff --git a/Editor/Icons/Components/Sphere.png b/Assets/Editor/Icons/Components/Sphere.png similarity index 100% rename from Editor/Icons/Components/Sphere.png rename to Assets/Editor/Icons/Components/Sphere.png diff --git a/Editor/Icons/Components/Sphere_Shape.svg b/Assets/Editor/Icons/Components/Sphere_Shape.svg similarity index 100% rename from Editor/Icons/Components/Sphere_Shape.svg rename to Assets/Editor/Icons/Components/Sphere_Shape.svg diff --git a/Editor/Icons/Components/Spline.svg b/Assets/Editor/Icons/Components/Spline.svg similarity index 100% rename from Editor/Icons/Components/Spline.svg rename to Assets/Editor/Icons/Components/Spline.svg diff --git a/Editor/Icons/Components/StaticData.png b/Assets/Editor/Icons/Components/StaticData.png similarity index 100% rename from Editor/Icons/Components/StaticData.png rename to Assets/Editor/Icons/Components/StaticData.png diff --git a/Editor/Icons/Components/StaticMesh.svg b/Assets/Editor/Icons/Components/StaticMesh.svg similarity index 100% rename from Editor/Icons/Components/StaticMesh.svg rename to Assets/Editor/Icons/Components/StaticMesh.svg diff --git a/Editor/Icons/Components/StaticPhysics.svg b/Assets/Editor/Icons/Components/StaticPhysics.svg similarity index 100% rename from Editor/Icons/Components/StaticPhysics.svg rename to Assets/Editor/Icons/Components/StaticPhysics.svg diff --git a/Editor/Icons/Components/Tag.svg b/Assets/Editor/Icons/Components/Tag.svg similarity index 100% rename from Editor/Icons/Components/Tag.svg rename to Assets/Editor/Icons/Components/Tag.svg diff --git a/Editor/Icons/Components/Transform.svg b/Assets/Editor/Icons/Components/Transform.svg similarity index 100% rename from Editor/Icons/Components/Transform.svg rename to Assets/Editor/Icons/Components/Transform.svg diff --git a/Editor/Icons/Components/TriggerArea.svg b/Assets/Editor/Icons/Components/TriggerArea.svg similarity index 100% rename from Editor/Icons/Components/TriggerArea.svg rename to Assets/Editor/Icons/Components/TriggerArea.svg diff --git a/Editor/Icons/Components/Tube_Shape.svg b/Assets/Editor/Icons/Components/Tube_Shape.svg similarity index 100% rename from Editor/Icons/Components/Tube_Shape.svg rename to Assets/Editor/Icons/Components/Tube_Shape.svg diff --git a/Editor/Icons/Components/UICanvasAssetRef.svg b/Assets/Editor/Icons/Components/UICanvasAssetRef.svg similarity index 100% rename from Editor/Icons/Components/UICanvasAssetRef.svg rename to Assets/Editor/Icons/Components/UICanvasAssetRef.svg diff --git a/Editor/Icons/Components/UICanvasOnMesh.svg b/Assets/Editor/Icons/Components/UICanvasOnMesh.svg similarity index 100% rename from Editor/Icons/Components/UICanvasOnMesh.svg rename to Assets/Editor/Icons/Components/UICanvasOnMesh.svg diff --git a/Editor/Icons/Components/UICanvasProxyRef.svg b/Assets/Editor/Icons/Components/UICanvasProxyRef.svg similarity index 100% rename from Editor/Icons/Components/UICanvasProxyRef.svg rename to Assets/Editor/Icons/Components/UICanvasProxyRef.svg diff --git a/Editor/Icons/Components/VRPreview.svg b/Assets/Editor/Icons/Components/VRPreview.svg similarity index 100% rename from Editor/Icons/Components/VRPreview.svg rename to Assets/Editor/Icons/Components/VRPreview.svg diff --git a/Editor/Icons/Components/Viewport/Animation.png b/Assets/Editor/Icons/Components/Viewport/Animation.png similarity index 100% rename from Editor/Icons/Components/Viewport/Animation.png rename to Assets/Editor/Icons/Components/Viewport/Animation.png diff --git a/Editor/Icons/Components/Viewport/AreaLight.png b/Assets/Editor/Icons/Components/Viewport/AreaLight.png similarity index 100% rename from Editor/Icons/Components/Viewport/AreaLight.png rename to Assets/Editor/Icons/Components/Viewport/AreaLight.png diff --git a/Editor/Icons/Components/Viewport/Attachment.png b/Assets/Editor/Icons/Components/Viewport/Attachment.png similarity index 100% rename from Editor/Icons/Components/Viewport/Attachment.png rename to Assets/Editor/Icons/Components/Viewport/Attachment.png diff --git a/Editor/Icons/Components/Viewport/AudioArea.png b/Assets/Editor/Icons/Components/Viewport/AudioArea.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioArea.png rename to Assets/Editor/Icons/Components/Viewport/AudioArea.png diff --git a/Editor/Icons/Components/Viewport/AudioAreaEnvironment.png b/Assets/Editor/Icons/Components/Viewport/AudioAreaEnvironment.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioAreaEnvironment.png rename to Assets/Editor/Icons/Components/Viewport/AudioAreaEnvironment.png diff --git a/Editor/Icons/Components/Viewport/AudioEnvironment.png b/Assets/Editor/Icons/Components/Viewport/AudioEnvironment.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioEnvironment.png rename to Assets/Editor/Icons/Components/Viewport/AudioEnvironment.png diff --git a/Editor/Icons/Components/Viewport/AudioListener.png b/Assets/Editor/Icons/Components/Viewport/AudioListener.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioListener.png rename to Assets/Editor/Icons/Components/Viewport/AudioListener.png diff --git a/Editor/Icons/Components/Viewport/AudioMultiPosition.png b/Assets/Editor/Icons/Components/Viewport/AudioMultiPosition.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioMultiPosition.png rename to Assets/Editor/Icons/Components/Viewport/AudioMultiPosition.png diff --git a/Editor/Icons/Components/Viewport/AudioRtpc.png b/Assets/Editor/Icons/Components/Viewport/AudioRtpc.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioRtpc.png rename to Assets/Editor/Icons/Components/Viewport/AudioRtpc.png diff --git a/Editor/Icons/Components/Viewport/AudioSwitch.png b/Assets/Editor/Icons/Components/Viewport/AudioSwitch.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioSwitch.png rename to Assets/Editor/Icons/Components/Viewport/AudioSwitch.png diff --git a/Editor/Icons/Components/Viewport/AudioTrigger.png b/Assets/Editor/Icons/Components/Viewport/AudioTrigger.png similarity index 100% rename from Editor/Icons/Components/Viewport/AudioTrigger.png rename to Assets/Editor/Icons/Components/Viewport/AudioTrigger.png diff --git a/Editor/Icons/Components/Viewport/BehaviorTree.png b/Assets/Editor/Icons/Components/Viewport/BehaviorTree.png similarity index 100% rename from Editor/Icons/Components/Viewport/BehaviorTree.png rename to Assets/Editor/Icons/Components/Viewport/BehaviorTree.png diff --git a/Editor/Icons/Components/Viewport/Box.png b/Assets/Editor/Icons/Components/Viewport/Box.png similarity index 100% rename from Editor/Icons/Components/Viewport/Box.png rename to Assets/Editor/Icons/Components/Viewport/Box.png diff --git a/Editor/Icons/Components/Viewport/Box_Shape.png b/Assets/Editor/Icons/Components/Viewport/Box_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Box_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Box_Shape.png diff --git a/Editor/Icons/Components/Viewport/Capsule.png b/Assets/Editor/Icons/Components/Viewport/Capsule.png similarity index 100% rename from Editor/Icons/Components/Viewport/Capsule.png rename to Assets/Editor/Icons/Components/Viewport/Capsule.png diff --git a/Editor/Icons/Components/Viewport/Capsule_Shape.png b/Assets/Editor/Icons/Components/Viewport/Capsule_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Capsule_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Capsule_Shape.png diff --git a/Editor/Icons/Components/Viewport/CharacterPhysics.png b/Assets/Editor/Icons/Components/Viewport/CharacterPhysics.png similarity index 100% rename from Editor/Icons/Components/Viewport/CharacterPhysics.png rename to Assets/Editor/Icons/Components/Viewport/CharacterPhysics.png diff --git a/Editor/Icons/Components/Viewport/Comment.png b/Assets/Editor/Icons/Components/Viewport/Comment.png similarity index 100% rename from Editor/Icons/Components/Viewport/Comment.png rename to Assets/Editor/Icons/Components/Viewport/Comment.png diff --git a/Editor/Icons/Components/Viewport/ComponentPlaceholder.png b/Assets/Editor/Icons/Components/Viewport/ComponentPlaceholder.png similarity index 100% rename from Editor/Icons/Components/Viewport/ComponentPlaceholder.png rename to Assets/Editor/Icons/Components/Viewport/ComponentPlaceholder.png diff --git a/Editor/Icons/Components/Viewport/Component_Placeholder.png b/Assets/Editor/Icons/Components/Viewport/Component_Placeholder.png similarity index 100% rename from Editor/Icons/Components/Viewport/Component_Placeholder.png rename to Assets/Editor/Icons/Components/Viewport/Component_Placeholder.png diff --git a/Editor/Icons/Components/Viewport/Cylinder.png b/Assets/Editor/Icons/Components/Viewport/Cylinder.png similarity index 100% rename from Editor/Icons/Components/Viewport/Cylinder.png rename to Assets/Editor/Icons/Components/Viewport/Cylinder.png diff --git a/Editor/Icons/Components/Viewport/Cylinder_Shape.png b/Assets/Editor/Icons/Components/Viewport/Cylinder_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Cylinder_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Cylinder_Shape.png diff --git a/Editor/Icons/Components/Viewport/Decal.png b/Assets/Editor/Icons/Components/Viewport/Decal.png similarity index 100% rename from Editor/Icons/Components/Viewport/Decal.png rename to Assets/Editor/Icons/Components/Viewport/Decal.png diff --git a/Editor/Icons/Components/Viewport/Disk_Shape.png b/Assets/Editor/Icons/Components/Viewport/Disk_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Disk_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Disk_Shape.png diff --git a/Editor/Icons/Components/Viewport/DynamicContent.png b/Assets/Editor/Icons/Components/Viewport/DynamicContent.png similarity index 100% rename from Editor/Icons/Components/Viewport/DynamicContent.png rename to Assets/Editor/Icons/Components/Viewport/DynamicContent.png diff --git a/Editor/Icons/Components/Viewport/DynamicMesh.png b/Assets/Editor/Icons/Components/Viewport/DynamicMesh.png similarity index 100% rename from Editor/Icons/Components/Viewport/DynamicMesh.png rename to Assets/Editor/Icons/Components/Viewport/DynamicMesh.png diff --git a/Editor/Icons/Components/Viewport/Entity.png b/Assets/Editor/Icons/Components/Viewport/Entity.png similarity index 100% rename from Editor/Icons/Components/Viewport/Entity.png rename to Assets/Editor/Icons/Components/Viewport/Entity.png diff --git a/Editor/Icons/Components/Viewport/EntityInSlice.png b/Assets/Editor/Icons/Components/Viewport/EntityInSlice.png similarity index 100% rename from Editor/Icons/Components/Viewport/EntityInSlice.png rename to Assets/Editor/Icons/Components/Viewport/EntityInSlice.png diff --git a/Editor/Icons/Components/Viewport/EnvironmentProbe.png b/Assets/Editor/Icons/Components/Viewport/EnvironmentProbe.png similarity index 100% rename from Editor/Icons/Components/Viewport/EnvironmentProbe.png rename to Assets/Editor/Icons/Components/Viewport/EnvironmentProbe.png diff --git a/Editor/Icons/Components/Viewport/Flipbook.png b/Assets/Editor/Icons/Components/Viewport/Flipbook.png similarity index 100% rename from Editor/Icons/Components/Viewport/Flipbook.png rename to Assets/Editor/Icons/Components/Viewport/Flipbook.png diff --git a/Editor/Icons/Components/Viewport/FogVolume.png b/Assets/Editor/Icons/Components/Viewport/FogVolume.png similarity index 100% rename from Editor/Icons/Components/Viewport/FogVolume.png rename to Assets/Editor/Icons/Components/Viewport/FogVolume.png diff --git a/Editor/Icons/Components/Viewport/ForceVolume.png b/Assets/Editor/Icons/Components/Viewport/ForceVolume.png similarity index 100% rename from Editor/Icons/Components/Viewport/ForceVolume.png rename to Assets/Editor/Icons/Components/Viewport/ForceVolume.png diff --git a/Editor/Icons/Components/Viewport/GeometryCache.png b/Assets/Editor/Icons/Components/Viewport/GeometryCache.png similarity index 100% rename from Editor/Icons/Components/Viewport/GeometryCache.png rename to Assets/Editor/Icons/Components/Viewport/GeometryCache.png diff --git a/Editor/Icons/Components/Viewport/HttpClientComponent.png b/Assets/Editor/Icons/Components/Viewport/HttpClientComponent.png similarity index 100% rename from Editor/Icons/Components/Viewport/HttpClientComponent.png rename to Assets/Editor/Icons/Components/Viewport/HttpClientComponent.png diff --git a/Editor/Icons/Components/Viewport/LensFlare.png b/Assets/Editor/Icons/Components/Viewport/LensFlare.png similarity index 100% rename from Editor/Icons/Components/Viewport/LensFlare.png rename to Assets/Editor/Icons/Components/Viewport/LensFlare.png diff --git a/Editor/Icons/Components/Viewport/Light.png b/Assets/Editor/Icons/Components/Viewport/Light.png similarity index 100% rename from Editor/Icons/Components/Viewport/Light.png rename to Assets/Editor/Icons/Components/Viewport/Light.png diff --git a/Editor/Icons/Components/Viewport/Lightning.png b/Assets/Editor/Icons/Components/Viewport/Lightning.png similarity index 100% rename from Editor/Icons/Components/Viewport/Lightning.png rename to Assets/Editor/Icons/Components/Viewport/Lightning.png diff --git a/Editor/Icons/Components/Viewport/LightningArc.png b/Assets/Editor/Icons/Components/Viewport/LightningArc.png similarity index 100% rename from Editor/Icons/Components/Viewport/LightningArc.png rename to Assets/Editor/Icons/Components/Viewport/LightningArc.png diff --git a/Editor/Icons/Components/Viewport/LookAt.png b/Assets/Editor/Icons/Components/Viewport/LookAt.png similarity index 100% rename from Editor/Icons/Components/Viewport/LookAt.png rename to Assets/Editor/Icons/Components/Viewport/LookAt.png diff --git a/Editor/Icons/Components/Viewport/Mannequin.png b/Assets/Editor/Icons/Components/Viewport/Mannequin.png similarity index 100% rename from Editor/Icons/Components/Viewport/Mannequin.png rename to Assets/Editor/Icons/Components/Viewport/Mannequin.png diff --git a/Editor/Icons/Components/Viewport/MannequinScopeContext.png b/Assets/Editor/Icons/Components/Viewport/MannequinScopeContext.png similarity index 100% rename from Editor/Icons/Components/Viewport/MannequinScopeContext.png rename to Assets/Editor/Icons/Components/Viewport/MannequinScopeContext.png diff --git a/Editor/Icons/Components/Viewport/MeshCollider.png b/Assets/Editor/Icons/Components/Viewport/MeshCollider.png similarity index 100% rename from Editor/Icons/Components/Viewport/MeshCollider.png rename to Assets/Editor/Icons/Components/Viewport/MeshCollider.png diff --git a/Editor/Icons/Components/Viewport/MotionParameterSmoothing.png b/Assets/Editor/Icons/Components/Viewport/MotionParameterSmoothing.png similarity index 100% rename from Editor/Icons/Components/Viewport/MotionParameterSmoothing.png rename to Assets/Editor/Icons/Components/Viewport/MotionParameterSmoothing.png diff --git a/Editor/Icons/Components/Viewport/Navigation.png b/Assets/Editor/Icons/Components/Viewport/Navigation.png similarity index 100% rename from Editor/Icons/Components/Viewport/Navigation.png rename to Assets/Editor/Icons/Components/Viewport/Navigation.png diff --git a/Editor/Icons/Components/Viewport/NavigationArea.png b/Assets/Editor/Icons/Components/Viewport/NavigationArea.png similarity index 100% rename from Editor/Icons/Components/Viewport/NavigationArea.png rename to Assets/Editor/Icons/Components/Viewport/NavigationArea.png diff --git a/Editor/Icons/Components/Viewport/NavigationSeed.png b/Assets/Editor/Icons/Components/Viewport/NavigationSeed.png similarity index 100% rename from Editor/Icons/Components/Viewport/NavigationSeed.png rename to Assets/Editor/Icons/Components/Viewport/NavigationSeed.png diff --git a/Editor/Icons/Components/Viewport/NetBinding.png b/Assets/Editor/Icons/Components/Viewport/NetBinding.png similarity index 100% rename from Editor/Icons/Components/Viewport/NetBinding.png rename to Assets/Editor/Icons/Components/Viewport/NetBinding.png diff --git a/Editor/Icons/Components/Viewport/Nova.png b/Assets/Editor/Icons/Components/Viewport/Nova.png similarity index 100% rename from Editor/Icons/Components/Viewport/Nova.png rename to Assets/Editor/Icons/Components/Viewport/Nova.png diff --git a/Editor/Icons/Components/Viewport/ObjectAvoidance.png b/Assets/Editor/Icons/Components/Viewport/ObjectAvoidance.png similarity index 100% rename from Editor/Icons/Components/Viewport/ObjectAvoidance.png rename to Assets/Editor/Icons/Components/Viewport/ObjectAvoidance.png diff --git a/Editor/Icons/Components/Viewport/Particle.png b/Assets/Editor/Icons/Components/Viewport/Particle.png similarity index 100% rename from Editor/Icons/Components/Viewport/Particle.png rename to Assets/Editor/Icons/Components/Viewport/Particle.png diff --git a/Editor/Icons/Components/Viewport/Physics.png b/Assets/Editor/Icons/Components/Viewport/Physics.png similarity index 100% rename from Editor/Icons/Components/Viewport/Physics.png rename to Assets/Editor/Icons/Components/Viewport/Physics.png diff --git a/Editor/Icons/Components/Viewport/PhysicsConstraint.png b/Assets/Editor/Icons/Components/Viewport/PhysicsConstraint.png similarity index 100% rename from Editor/Icons/Components/Viewport/PhysicsConstraint.png rename to Assets/Editor/Icons/Components/Viewport/PhysicsConstraint.png diff --git a/Editor/Icons/Components/Viewport/PointLight.png b/Assets/Editor/Icons/Components/Viewport/PointLight.png similarity index 100% rename from Editor/Icons/Components/Viewport/PointLight.png rename to Assets/Editor/Icons/Components/Viewport/PointLight.png diff --git a/Editor/Icons/Components/Viewport/PolygonPrism.png b/Assets/Editor/Icons/Components/Viewport/PolygonPrism.png similarity index 100% rename from Editor/Icons/Components/Viewport/PolygonPrism.png rename to Assets/Editor/Icons/Components/Viewport/PolygonPrism.png diff --git a/Editor/Icons/Components/Viewport/Primitive Collider.png b/Assets/Editor/Icons/Components/Viewport/Primitive Collider.png similarity index 100% rename from Editor/Icons/Components/Viewport/Primitive Collider.png rename to Assets/Editor/Icons/Components/Viewport/Primitive Collider.png diff --git a/Editor/Icons/Components/Viewport/PrimitiveCollider.png b/Assets/Editor/Icons/Components/Viewport/PrimitiveCollider.png similarity index 100% rename from Editor/Icons/Components/Viewport/PrimitiveCollider.png rename to Assets/Editor/Icons/Components/Viewport/PrimitiveCollider.png diff --git a/Editor/Icons/Components/Viewport/ProjectorLight.png b/Assets/Editor/Icons/Components/Viewport/ProjectorLight.png similarity index 100% rename from Editor/Icons/Components/Viewport/ProjectorLight.png rename to Assets/Editor/Icons/Components/Viewport/ProjectorLight.png diff --git a/Editor/Icons/Components/Viewport/Quad_Shape.png b/Assets/Editor/Icons/Components/Viewport/Quad_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Quad_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Quad_Shape.png diff --git a/Editor/Icons/Components/Viewport/Ragdoll.png b/Assets/Editor/Icons/Components/Viewport/Ragdoll.png similarity index 100% rename from Editor/Icons/Components/Viewport/Ragdoll.png rename to Assets/Editor/Icons/Components/Viewport/Ragdoll.png diff --git a/Editor/Icons/Components/Viewport/RandomTimedSpawner.png b/Assets/Editor/Icons/Components/Viewport/RandomTimedSpawner.png similarity index 100% rename from Editor/Icons/Components/Viewport/RandomTimedSpawner.png rename to Assets/Editor/Icons/Components/Viewport/RandomTimedSpawner.png diff --git a/Editor/Icons/Components/Viewport/RigidPhysics.png b/Assets/Editor/Icons/Components/Viewport/RigidPhysics.png similarity index 100% rename from Editor/Icons/Components/Viewport/RigidPhysics.png rename to Assets/Editor/Icons/Components/Viewport/RigidPhysics.png diff --git a/Editor/Icons/Components/Viewport/Script.png b/Assets/Editor/Icons/Components/Viewport/Script.png similarity index 100% rename from Editor/Icons/Components/Viewport/Script.png rename to Assets/Editor/Icons/Components/Viewport/Script.png diff --git a/Editor/Icons/Components/Viewport/ScriptEventAssetReference.png b/Assets/Editor/Icons/Components/Viewport/ScriptEventAssetReference.png similarity index 100% rename from Editor/Icons/Components/Viewport/ScriptEventAssetReference.png rename to Assets/Editor/Icons/Components/Viewport/ScriptEventAssetReference.png diff --git a/Editor/Icons/Components/Viewport/Sequence.png b/Assets/Editor/Icons/Components/Viewport/Sequence.png similarity index 100% rename from Editor/Icons/Components/Viewport/Sequence.png rename to Assets/Editor/Icons/Components/Viewport/Sequence.png diff --git a/Editor/Icons/Components/Viewport/SequenceAgent.png b/Assets/Editor/Icons/Components/Viewport/SequenceAgent.png similarity index 100% rename from Editor/Icons/Components/Viewport/SequenceAgent.png rename to Assets/Editor/Icons/Components/Viewport/SequenceAgent.png diff --git a/Editor/Icons/Components/Viewport/Shadow.png b/Assets/Editor/Icons/Components/Viewport/Shadow.png similarity index 100% rename from Editor/Icons/Components/Viewport/Shadow.png rename to Assets/Editor/Icons/Components/Viewport/Shadow.png diff --git a/Editor/Icons/Components/Viewport/SimpleState.png b/Assets/Editor/Icons/Components/Viewport/SimpleState.png similarity index 100% rename from Editor/Icons/Components/Viewport/SimpleState.png rename to Assets/Editor/Icons/Components/Viewport/SimpleState.png diff --git a/Editor/Icons/Components/Viewport/SkinnedMesh.png b/Assets/Editor/Icons/Components/Viewport/SkinnedMesh.png similarity index 100% rename from Editor/Icons/Components/Viewport/SkinnedMesh.png rename to Assets/Editor/Icons/Components/Viewport/SkinnedMesh.png diff --git a/Editor/Icons/Components/Viewport/SkyHighlight.png b/Assets/Editor/Icons/Components/Viewport/SkyHighlight.png similarity index 100% rename from Editor/Icons/Components/Viewport/SkyHighlight.png rename to Assets/Editor/Icons/Components/Viewport/SkyHighlight.png diff --git a/Editor/Icons/Components/Viewport/Snow.png b/Assets/Editor/Icons/Components/Viewport/Snow.png similarity index 100% rename from Editor/Icons/Components/Viewport/Snow.png rename to Assets/Editor/Icons/Components/Viewport/Snow.png diff --git a/Editor/Icons/Components/Viewport/Spawner.png b/Assets/Editor/Icons/Components/Viewport/Spawner.png similarity index 100% rename from Editor/Icons/Components/Viewport/Spawner.png rename to Assets/Editor/Icons/Components/Viewport/Spawner.png diff --git a/Editor/Icons/Components/Viewport/Sphere.png b/Assets/Editor/Icons/Components/Viewport/Sphere.png similarity index 100% rename from Editor/Icons/Components/Viewport/Sphere.png rename to Assets/Editor/Icons/Components/Viewport/Sphere.png diff --git a/Editor/Icons/Components/Viewport/Sphere_Shape.png b/Assets/Editor/Icons/Components/Viewport/Sphere_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Sphere_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Sphere_Shape.png diff --git a/Editor/Icons/Components/Viewport/Spline.png b/Assets/Editor/Icons/Components/Viewport/Spline.png similarity index 100% rename from Editor/Icons/Components/Viewport/Spline.png rename to Assets/Editor/Icons/Components/Viewport/Spline.png diff --git a/Editor/Icons/Components/Viewport/StaticData.png b/Assets/Editor/Icons/Components/Viewport/StaticData.png similarity index 100% rename from Editor/Icons/Components/Viewport/StaticData.png rename to Assets/Editor/Icons/Components/Viewport/StaticData.png diff --git a/Editor/Icons/Components/Viewport/StaticMesh.png b/Assets/Editor/Icons/Components/Viewport/StaticMesh.png similarity index 100% rename from Editor/Icons/Components/Viewport/StaticMesh.png rename to Assets/Editor/Icons/Components/Viewport/StaticMesh.png diff --git a/Editor/Icons/Components/Viewport/StaticPhysics.png b/Assets/Editor/Icons/Components/Viewport/StaticPhysics.png similarity index 100% rename from Editor/Icons/Components/Viewport/StaticPhysics.png rename to Assets/Editor/Icons/Components/Viewport/StaticPhysics.png diff --git a/Editor/Icons/Components/Viewport/Tag.png b/Assets/Editor/Icons/Components/Viewport/Tag.png similarity index 100% rename from Editor/Icons/Components/Viewport/Tag.png rename to Assets/Editor/Icons/Components/Viewport/Tag.png diff --git a/Editor/Icons/Components/Viewport/TerrainPhysics.png b/Assets/Editor/Icons/Components/Viewport/TerrainPhysics.png similarity index 100% rename from Editor/Icons/Components/Viewport/TerrainPhysics.png rename to Assets/Editor/Icons/Components/Viewport/TerrainPhysics.png diff --git a/Editor/Icons/Components/Viewport/Transform.png b/Assets/Editor/Icons/Components/Viewport/Transform.png similarity index 100% rename from Editor/Icons/Components/Viewport/Transform.png rename to Assets/Editor/Icons/Components/Viewport/Transform.png diff --git a/Editor/Icons/Components/Viewport/Trigger.png b/Assets/Editor/Icons/Components/Viewport/Trigger.png similarity index 100% rename from Editor/Icons/Components/Viewport/Trigger.png rename to Assets/Editor/Icons/Components/Viewport/Trigger.png diff --git a/Editor/Icons/Components/Viewport/Tube_Shape.png b/Assets/Editor/Icons/Components/Viewport/Tube_Shape.png similarity index 100% rename from Editor/Icons/Components/Viewport/Tube_Shape.png rename to Assets/Editor/Icons/Components/Viewport/Tube_Shape.png diff --git a/Editor/Icons/Components/Viewport/UiCanvasOnMesh.png b/Assets/Editor/Icons/Components/Viewport/UiCanvasOnMesh.png similarity index 100% rename from Editor/Icons/Components/Viewport/UiCanvasOnMesh.png rename to Assets/Editor/Icons/Components/Viewport/UiCanvasOnMesh.png diff --git a/Editor/Icons/Components/Viewport/UiCanvasRef.png b/Assets/Editor/Icons/Components/Viewport/UiCanvasRef.png similarity index 100% rename from Editor/Icons/Components/Viewport/UiCanvasRef.png rename to Assets/Editor/Icons/Components/Viewport/UiCanvasRef.png diff --git a/Editor/Icons/Components/Viewport/VRPreview.png b/Assets/Editor/Icons/Components/Viewport/VRPreview.png similarity index 100% rename from Editor/Icons/Components/Viewport/VRPreview.png rename to Assets/Editor/Icons/Components/Viewport/VRPreview.png diff --git a/Editor/Icons/Components/Viewport/WaterVolume.png b/Assets/Editor/Icons/Components/Viewport/WaterVolume.png similarity index 100% rename from Editor/Icons/Components/Viewport/WaterVolume.png rename to Assets/Editor/Icons/Components/Viewport/WaterVolume.png diff --git a/Editor/Icons/Components/Viewport/WindVolume.png b/Assets/Editor/Icons/Components/Viewport/WindVolume.png similarity index 100% rename from Editor/Icons/Components/Viewport/WindVolume.png rename to Assets/Editor/Icons/Components/Viewport/WindVolume.png diff --git a/Editor/Icons/Components/WaterRippleGenerator.svg b/Assets/Editor/Icons/Components/WaterRippleGenerator.svg similarity index 100% rename from Editor/Icons/Components/WaterRippleGenerator.svg rename to Assets/Editor/Icons/Components/WaterRippleGenerator.svg diff --git a/Editor/Icons/Components/WaterVolume.svg b/Assets/Editor/Icons/Components/WaterVolume.svg similarity index 100% rename from Editor/Icons/Components/WaterVolume.svg rename to Assets/Editor/Icons/Components/WaterVolume.svg diff --git a/Editor/Icons/Components/WindVolume.svg b/Assets/Editor/Icons/Components/WindVolume.svg similarity index 100% rename from Editor/Icons/Components/WindVolume.svg rename to Assets/Editor/Icons/Components/WindVolume.svg diff --git a/Editor/Icons/PhysX/Move.svg b/Assets/Editor/Icons/PhysX/Move.svg similarity index 100% rename from Editor/Icons/PhysX/Move.svg rename to Assets/Editor/Icons/PhysX/Move.svg diff --git a/Editor/Icons/PhysX/Rotate.svg b/Assets/Editor/Icons/PhysX/Rotate.svg similarity index 100% rename from Editor/Icons/PhysX/Rotate.svg rename to Assets/Editor/Icons/PhysX/Rotate.svg diff --git a/Editor/Icons/PhysX/Scale.svg b/Assets/Editor/Icons/PhysX/Scale.svg similarity index 100% rename from Editor/Icons/PhysX/Scale.svg rename to Assets/Editor/Icons/PhysX/Scale.svg diff --git a/Editor/Icons/PropertyEditor/Browse.png b/Assets/Editor/Icons/PropertyEditor/Browse.png similarity index 100% rename from Editor/Icons/PropertyEditor/Browse.png rename to Assets/Editor/Icons/PropertyEditor/Browse.png diff --git a/Editor/Icons/PropertyEditor/Browse_on.png b/Assets/Editor/Icons/PropertyEditor/Browse_on.png similarity index 100% rename from Editor/Icons/PropertyEditor/Browse_on.png rename to Assets/Editor/Icons/PropertyEditor/Browse_on.png diff --git a/Editor/Icons/PropertyEditor/add.png b/Assets/Editor/Icons/PropertyEditor/add.png similarity index 100% rename from Editor/Icons/PropertyEditor/add.png rename to Assets/Editor/Icons/PropertyEditor/add.png diff --git a/Editor/Icons/PropertyEditor/cross-circle-small.png b/Assets/Editor/Icons/PropertyEditor/cross-circle-small.png similarity index 100% rename from Editor/Icons/PropertyEditor/cross-circle-small.png rename to Assets/Editor/Icons/PropertyEditor/cross-circle-small.png diff --git a/Editor/Icons/PropertyEditor/cross-small.png b/Assets/Editor/Icons/PropertyEditor/cross-small.png similarity index 100% rename from Editor/Icons/PropertyEditor/cross-small.png rename to Assets/Editor/Icons/PropertyEditor/cross-small.png diff --git a/Editor/Icons/PropertyEditor/error_icon.png b/Assets/Editor/Icons/PropertyEditor/error_icon.png similarity index 100% rename from Editor/Icons/PropertyEditor/error_icon.png rename to Assets/Editor/Icons/PropertyEditor/error_icon.png diff --git a/Editor/Icons/PropertyEditor/group_closed.png b/Assets/Editor/Icons/PropertyEditor/group_closed.png similarity index 100% rename from Editor/Icons/PropertyEditor/group_closed.png rename to Assets/Editor/Icons/PropertyEditor/group_closed.png diff --git a/Editor/Icons/PropertyEditor/group_open.png b/Assets/Editor/Icons/PropertyEditor/group_open.png similarity index 100% rename from Editor/Icons/PropertyEditor/group_open.png rename to Assets/Editor/Icons/PropertyEditor/group_open.png diff --git a/Editor/Icons/PropertyEditor/image_icon.svg b/Assets/Editor/Icons/PropertyEditor/image_icon.svg similarity index 100% rename from Editor/Icons/PropertyEditor/image_icon.svg rename to Assets/Editor/Icons/PropertyEditor/image_icon.svg diff --git a/Editor/Icons/PropertyEditor/list-add-small.png b/Assets/Editor/Icons/PropertyEditor/list-add-small.png similarity index 100% rename from Editor/Icons/PropertyEditor/list-add-small.png rename to Assets/Editor/Icons/PropertyEditor/list-add-small.png diff --git a/Editor/Icons/PropertyEditor/open_in.png b/Assets/Editor/Icons/PropertyEditor/open_in.png similarity index 100% rename from Editor/Icons/PropertyEditor/open_in.png rename to Assets/Editor/Icons/PropertyEditor/open_in.png diff --git a/Editor/Icons/PropertyEditor/point_hand.png b/Assets/Editor/Icons/PropertyEditor/point_hand.png similarity index 100% rename from Editor/Icons/PropertyEditor/point_hand.png rename to Assets/Editor/Icons/PropertyEditor/point_hand.png diff --git a/Editor/Icons/PropertyEditor/remove.png b/Assets/Editor/Icons/PropertyEditor/remove.png similarity index 100% rename from Editor/Icons/PropertyEditor/remove.png rename to Assets/Editor/Icons/PropertyEditor/remove.png diff --git a/Editor/Icons/PropertyEditor/reset_icon.png b/Assets/Editor/Icons/PropertyEditor/reset_icon.png similarity index 100% rename from Editor/Icons/PropertyEditor/reset_icon.png rename to Assets/Editor/Icons/PropertyEditor/reset_icon.png diff --git a/Editor/Icons/PropertyEditor/tool_cancel.png b/Assets/Editor/Icons/PropertyEditor/tool_cancel.png similarity index 100% rename from Editor/Icons/PropertyEditor/tool_cancel.png rename to Assets/Editor/Icons/PropertyEditor/tool_cancel.png diff --git a/Editor/Icons/PropertyEditor/tool_cancel_highlight.png b/Assets/Editor/Icons/PropertyEditor/tool_cancel_highlight.png similarity index 100% rename from Editor/Icons/PropertyEditor/tool_cancel_highlight.png rename to Assets/Editor/Icons/PropertyEditor/tool_cancel_highlight.png diff --git a/Editor/Icons/PropertyEditor/tool_cancel_hover.png b/Assets/Editor/Icons/PropertyEditor/tool_cancel_hover.png similarity index 100% rename from Editor/Icons/PropertyEditor/tool_cancel_hover.png rename to Assets/Editor/Icons/PropertyEditor/tool_cancel_hover.png diff --git a/Editor/Icons/PropertyEditor/trash-small.png b/Assets/Editor/Icons/PropertyEditor/trash-small.png similarity index 100% rename from Editor/Icons/PropertyEditor/trash-small.png rename to Assets/Editor/Icons/PropertyEditor/trash-small.png diff --git a/Editor/Icons/PropertyEditor/tree_closed.png b/Assets/Editor/Icons/PropertyEditor/tree_closed.png similarity index 100% rename from Editor/Icons/PropertyEditor/tree_closed.png rename to Assets/Editor/Icons/PropertyEditor/tree_closed.png diff --git a/Editor/Icons/PropertyEditor/tree_open.png b/Assets/Editor/Icons/PropertyEditor/tree_open.png similarity index 100% rename from Editor/Icons/PropertyEditor/tree_open.png rename to Assets/Editor/Icons/PropertyEditor/tree_open.png diff --git a/Editor/Icons/RotationWarning.png b/Assets/Editor/Icons/RotationWarning.png similarity index 100% rename from Editor/Icons/RotationWarning.png rename to Assets/Editor/Icons/RotationWarning.png diff --git a/Editor/Icons/ScaleWarning.png b/Assets/Editor/Icons/ScaleWarning.png similarity index 100% rename from Editor/Icons/ScaleWarning.png rename to Assets/Editor/Icons/ScaleWarning.png diff --git a/Editor/Icons/ScriptCanvas/Add.png b/Assets/Editor/Icons/ScriptCanvas/Add.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Add.png rename to Assets/Editor/Icons/ScriptCanvas/Add.png diff --git a/Editor/Icons/ScriptCanvas/And.png b/Assets/Editor/Icons/ScriptCanvas/And.png similarity index 100% rename from Editor/Icons/ScriptCanvas/And.png rename to Assets/Editor/Icons/ScriptCanvas/And.png diff --git a/Editor/Icons/ScriptCanvas/Boolean.png b/Assets/Editor/Icons/ScriptCanvas/Boolean.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Boolean.png rename to Assets/Editor/Icons/ScriptCanvas/Boolean.png diff --git a/Editor/Icons/ScriptCanvas/Breakpoint.png b/Assets/Editor/Icons/ScriptCanvas/Breakpoint.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Breakpoint.png rename to Assets/Editor/Icons/ScriptCanvas/Breakpoint.png diff --git a/Editor/Icons/ScriptCanvas/Bus.png b/Assets/Editor/Icons/ScriptCanvas/Bus.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Bus.png rename to Assets/Editor/Icons/ScriptCanvas/Bus.png diff --git a/Editor/Icons/ScriptCanvas/Connect.png b/Assets/Editor/Icons/ScriptCanvas/Connect.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Connect.png rename to Assets/Editor/Icons/ScriptCanvas/Connect.png diff --git a/Editor/Icons/ScriptCanvas/Delay.png b/Assets/Editor/Icons/ScriptCanvas/Delay.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Delay.png rename to Assets/Editor/Icons/ScriptCanvas/Delay.png diff --git a/Editor/Icons/ScriptCanvas/Disabled/ScriptCanvas_white.png b/Assets/Editor/Icons/ScriptCanvas/Disabled/ScriptCanvas_white.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Disabled/ScriptCanvas_white.png rename to Assets/Editor/Icons/ScriptCanvas/Disabled/ScriptCanvas_white.png diff --git a/Editor/Icons/ScriptCanvas/Disconnect.png b/Assets/Editor/Icons/ScriptCanvas/Disconnect.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Disconnect.png rename to Assets/Editor/Icons/ScriptCanvas/Disconnect.png diff --git a/Editor/Icons/ScriptCanvas/Divide.png b/Assets/Editor/Icons/ScriptCanvas/Divide.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Divide.png rename to Assets/Editor/Icons/ScriptCanvas/Divide.png diff --git a/Editor/Icons/ScriptCanvas/EntityRef.png b/Assets/Editor/Icons/ScriptCanvas/EntityRef.png similarity index 100% rename from Editor/Icons/ScriptCanvas/EntityRef.png rename to Assets/Editor/Icons/ScriptCanvas/EntityRef.png diff --git a/Editor/Icons/ScriptCanvas/Libraries/All.png b/Assets/Editor/Icons/ScriptCanvas/Libraries/All.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Libraries/All.png rename to Assets/Editor/Icons/ScriptCanvas/Libraries/All.png diff --git a/Editor/Icons/ScriptCanvas/Libraries/Core.png b/Assets/Editor/Icons/ScriptCanvas/Libraries/Core.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Libraries/Core.png rename to Assets/Editor/Icons/ScriptCanvas/Libraries/Core.png diff --git a/Editor/Icons/ScriptCanvas/Libraries/Entity.png b/Assets/Editor/Icons/ScriptCanvas/Libraries/Entity.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Libraries/Entity.png rename to Assets/Editor/Icons/ScriptCanvas/Libraries/Entity.png diff --git a/Editor/Icons/ScriptCanvas/Libraries/Logic.png b/Assets/Editor/Icons/ScriptCanvas/Libraries/Logic.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Libraries/Logic.png rename to Assets/Editor/Icons/ScriptCanvas/Libraries/Logic.png diff --git a/Editor/Icons/ScriptCanvas/Libraries/Math.png b/Assets/Editor/Icons/ScriptCanvas/Libraries/Math.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Libraries/Math.png rename to Assets/Editor/Icons/ScriptCanvas/Libraries/Math.png diff --git a/Editor/Icons/ScriptCanvas/Multiply.png b/Assets/Editor/Icons/ScriptCanvas/Multiply.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Multiply.png rename to Assets/Editor/Icons/ScriptCanvas/Multiply.png diff --git a/Editor/Icons/ScriptCanvas/Not.png b/Assets/Editor/Icons/ScriptCanvas/Not.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Not.png rename to Assets/Editor/Icons/ScriptCanvas/Not.png diff --git a/Editor/Icons/ScriptCanvas/Number.png b/Assets/Editor/Icons/ScriptCanvas/Number.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Number.png rename to Assets/Editor/Icons/ScriptCanvas/Number.png diff --git a/Editor/Icons/ScriptCanvas/Or.png b/Assets/Editor/Icons/ScriptCanvas/Or.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Or.png rename to Assets/Editor/Icons/ScriptCanvas/Or.png diff --git a/Editor/Icons/ScriptCanvas/Placeholder.png b/Assets/Editor/Icons/ScriptCanvas/Placeholder.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Placeholder.png rename to Assets/Editor/Icons/ScriptCanvas/Placeholder.png diff --git a/Editor/Icons/ScriptCanvas/Print.png b/Assets/Editor/Icons/ScriptCanvas/Print.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Print.png rename to Assets/Editor/Icons/ScriptCanvas/Print.png diff --git a/Editor/Icons/ScriptCanvas/Random.png b/Assets/Editor/Icons/ScriptCanvas/Random.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Random.png rename to Assets/Editor/Icons/ScriptCanvas/Random.png diff --git a/Editor/Icons/ScriptCanvas/Rotate.png b/Assets/Editor/Icons/ScriptCanvas/Rotate.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Rotate.png rename to Assets/Editor/Icons/ScriptCanvas/Rotate.png diff --git a/Editor/Icons/ScriptCanvas/ScriptCanvas.svg b/Assets/Editor/Icons/ScriptCanvas/ScriptCanvas.svg similarity index 100% rename from Editor/Icons/ScriptCanvas/ScriptCanvas.svg rename to Assets/Editor/Icons/ScriptCanvas/ScriptCanvas.svg diff --git a/Editor/Icons/ScriptCanvas/Start.png b/Assets/Editor/Icons/ScriptCanvas/Start.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Start.png rename to Assets/Editor/Icons/ScriptCanvas/Start.png diff --git a/Editor/Icons/ScriptCanvas/Step In.png b/Assets/Editor/Icons/ScriptCanvas/Step In.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Step In.png rename to Assets/Editor/Icons/ScriptCanvas/Step In.png diff --git a/Editor/Icons/ScriptCanvas/Step Over.png b/Assets/Editor/Icons/ScriptCanvas/Step Over.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Step Over.png rename to Assets/Editor/Icons/ScriptCanvas/Step Over.png diff --git a/Editor/Icons/ScriptCanvas/String.png b/Assets/Editor/Icons/ScriptCanvas/String.png similarity index 100% rename from Editor/Icons/ScriptCanvas/String.png rename to Assets/Editor/Icons/ScriptCanvas/String.png diff --git a/Editor/Icons/ScriptCanvas/Subtract.png b/Assets/Editor/Icons/ScriptCanvas/Subtract.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Subtract.png rename to Assets/Editor/Icons/ScriptCanvas/Subtract.png diff --git a/Editor/Icons/ScriptCanvas/Sum.png b/Assets/Editor/Icons/ScriptCanvas/Sum.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Sum.png rename to Assets/Editor/Icons/ScriptCanvas/Sum.png diff --git a/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png b/Assets/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png rename to Assets/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png diff --git a/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png b/Assets/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png rename to Assets/Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png diff --git a/Editor/Icons/ScriptCanvas/Xor.png b/Assets/Editor/Icons/ScriptCanvas/Xor.png similarity index 100% rename from Editor/Icons/ScriptCanvas/Xor.png rename to Assets/Editor/Icons/ScriptCanvas/Xor.png diff --git a/Editor/Icons/ScriptCanvas/settings.png b/Assets/Editor/Icons/ScriptCanvas/settings.png similarity index 100% rename from Editor/Icons/ScriptCanvas/settings.png rename to Assets/Editor/Icons/ScriptCanvas/settings.png diff --git a/Editor/Icons/WhiteBox/Move.svg b/Assets/Editor/Icons/WhiteBox/Move.svg similarity index 100% rename from Editor/Icons/WhiteBox/Move.svg rename to Assets/Editor/Icons/WhiteBox/Move.svg diff --git a/Editor/Icons/WhiteBox/RestoreMode.svg b/Assets/Editor/Icons/WhiteBox/RestoreMode.svg similarity index 100% rename from Editor/Icons/WhiteBox/RestoreMode.svg rename to Assets/Editor/Icons/WhiteBox/RestoreMode.svg diff --git a/Editor/Icons/WhiteBox/Rotate.svg b/Assets/Editor/Icons/WhiteBox/Rotate.svg similarity index 100% rename from Editor/Icons/WhiteBox/Rotate.svg rename to Assets/Editor/Icons/WhiteBox/Rotate.svg diff --git a/Editor/Icons/WhiteBox/Scale.svg b/Assets/Editor/Icons/WhiteBox/Scale.svg similarity index 100% rename from Editor/Icons/WhiteBox/Scale.svg rename to Assets/Editor/Icons/WhiteBox/Scale.svg diff --git a/Editor/Icons/WhiteBox/SketchMode.svg b/Assets/Editor/Icons/WhiteBox/SketchMode.svg similarity index 100% rename from Editor/Icons/WhiteBox/SketchMode.svg rename to Assets/Editor/Icons/WhiteBox/SketchMode.svg diff --git a/Editor/Icons/animation/add.png b/Assets/Editor/Icons/animation/add.png similarity index 100% rename from Editor/Icons/animation/add.png rename to Assets/Editor/Icons/animation/add.png diff --git a/Editor/Icons/animation/animation.png b/Assets/Editor/Icons/animation/animation.png similarity index 100% rename from Editor/Icons/animation/animation.png rename to Assets/Editor/Icons/animation/animation.png diff --git a/Editor/Icons/animation/animation_additive.png b/Assets/Editor/Icons/animation/animation_additive.png similarity index 100% rename from Editor/Icons/animation/animation_additive.png rename to Assets/Editor/Icons/animation/animation_additive.png diff --git a/Editor/Icons/animation/animation_aimpose.png b/Assets/Editor/Icons/animation/animation_aimpose.png similarity index 100% rename from Editor/Icons/animation/animation_aimpose.png rename to Assets/Editor/Icons/animation/animation_aimpose.png diff --git a/Editor/Icons/animation/animation_bspace.png b/Assets/Editor/Icons/animation/animation_bspace.png similarity index 100% rename from Editor/Icons/animation/animation_bspace.png rename to Assets/Editor/Icons/animation/animation_bspace.png diff --git a/Editor/Icons/animation/animation_comb.png b/Assets/Editor/Icons/animation/animation_comb.png similarity index 100% rename from Editor/Icons/animation/animation_comb.png rename to Assets/Editor/Icons/animation/animation_comb.png diff --git a/Editor/Icons/animation/animation_lookpose.png b/Assets/Editor/Icons/animation/animation_lookpose.png similarity index 100% rename from Editor/Icons/animation/animation_lookpose.png rename to Assets/Editor/Icons/animation/animation_lookpose.png diff --git a/Editor/Icons/animation/animation_offline.png b/Assets/Editor/Icons/animation/animation_offline.png similarity index 100% rename from Editor/Icons/animation/animation_offline.png rename to Assets/Editor/Icons/animation/animation_offline.png diff --git a/Editor/Icons/animation/attachment.png b/Assets/Editor/Icons/animation/attachment.png similarity index 100% rename from Editor/Icons/animation/attachment.png rename to Assets/Editor/Icons/animation/attachment.png diff --git a/Editor/Icons/animation/audio_event_16.png b/Assets/Editor/Icons/animation/audio_event_16.png similarity index 100% rename from Editor/Icons/animation/audio_event_16.png rename to Assets/Editor/Icons/animation/audio_event_16.png diff --git a/Editor/Icons/animation/back_16.png b/Assets/Editor/Icons/animation/back_16.png similarity index 100% rename from Editor/Icons/animation/back_16.png rename to Assets/Editor/Icons/animation/back_16.png diff --git a/Editor/Icons/animation/bind_pose.png b/Assets/Editor/Icons/animation/bind_pose.png similarity index 100% rename from Editor/Icons/animation/bind_pose.png rename to Assets/Editor/Icons/animation/bind_pose.png diff --git a/Editor/Icons/animation/bone.png b/Assets/Editor/Icons/animation/bone.png similarity index 100% rename from Editor/Icons/animation/bone.png rename to Assets/Editor/Icons/animation/bone.png diff --git a/Editor/Icons/animation/build.png b/Assets/Editor/Icons/animation/build.png similarity index 100% rename from Editor/Icons/animation/build.png rename to Assets/Editor/Icons/animation/build.png diff --git a/Editor/Icons/animation/character.png b/Assets/Editor/Icons/animation/character.png similarity index 100% rename from Editor/Icons/animation/character.png rename to Assets/Editor/Icons/animation/character.png diff --git a/Editor/Icons/animation/close.png b/Assets/Editor/Icons/animation/close.png similarity index 100% rename from Editor/Icons/animation/close.png rename to Assets/Editor/Icons/animation/close.png diff --git a/Editor/Icons/animation/close_highlight.png b/Assets/Editor/Icons/animation/close_highlight.png similarity index 100% rename from Editor/Icons/animation/close_highlight.png rename to Assets/Editor/Icons/animation/close_highlight.png diff --git a/Editor/Icons/animation/create_cdf.png b/Assets/Editor/Icons/animation/create_cdf.png similarity index 100% rename from Editor/Icons/animation/create_cdf.png rename to Assets/Editor/Icons/animation/create_cdf.png diff --git a/Editor/Icons/animation/display_options.png b/Assets/Editor/Icons/animation/display_options.png similarity index 100% rename from Editor/Icons/animation/display_options.png rename to Assets/Editor/Icons/animation/display_options.png diff --git a/Editor/Icons/animation/filter_16.png b/Assets/Editor/Icons/animation/filter_16.png similarity index 100% rename from Editor/Icons/animation/filter_16.png rename to Assets/Editor/Icons/animation/filter_16.png diff --git a/Editor/Icons/animation/footsteps.png b/Assets/Editor/Icons/animation/footsteps.png similarity index 100% rename from Editor/Icons/animation/footsteps.png rename to Assets/Editor/Icons/animation/footsteps.png diff --git a/Editor/Icons/animation/force_recompile.png b/Assets/Editor/Icons/animation/force_recompile.png similarity index 100% rename from Editor/Icons/animation/force_recompile.png rename to Assets/Editor/Icons/animation/force_recompile.png diff --git a/Editor/Icons/animation/forward_16.png b/Assets/Editor/Icons/animation/forward_16.png similarity index 100% rename from Editor/Icons/animation/forward_16.png rename to Assets/Editor/Icons/animation/forward_16.png diff --git a/Editor/Icons/animation/gizmo_location.png b/Assets/Editor/Icons/animation/gizmo_location.png similarity index 100% rename from Editor/Icons/animation/gizmo_location.png rename to Assets/Editor/Icons/animation/gizmo_location.png diff --git a/Editor/Icons/animation/grid.png b/Assets/Editor/Icons/animation/grid.png similarity index 100% rename from Editor/Icons/animation/grid.png rename to Assets/Editor/Icons/animation/grid.png diff --git a/Editor/Icons/animation/group.png b/Assets/Editor/Icons/animation/group.png similarity index 100% rename from Editor/Icons/animation/group.png rename to Assets/Editor/Icons/animation/group.png diff --git a/Editor/Icons/animation/import.png b/Assets/Editor/Icons/animation/import.png similarity index 100% rename from Editor/Icons/animation/import.png rename to Assets/Editor/Icons/animation/import.png diff --git a/Editor/Icons/animation/in_folder_16.png b/Assets/Editor/Icons/animation/in_folder_16.png similarity index 100% rename from Editor/Icons/animation/in_folder_16.png rename to Assets/Editor/Icons/animation/in_folder_16.png diff --git a/Editor/Icons/animation/in_folder_and_pak_16.png b/Assets/Editor/Icons/animation/in_folder_and_pak_16.png similarity index 100% rename from Editor/Icons/animation/in_folder_and_pak_16.png rename to Assets/Editor/Icons/animation/in_folder_and_pak_16.png diff --git a/Editor/Icons/animation/in_pak_16.png b/Assets/Editor/Icons/animation/in_pak_16.png similarity index 100% rename from Editor/Icons/animation/in_pak_16.png rename to Assets/Editor/Icons/animation/in_pak_16.png diff --git a/Editor/Icons/animation/lock_16.png b/Assets/Editor/Icons/animation/lock_16.png similarity index 100% rename from Editor/Icons/animation/lock_16.png rename to Assets/Editor/Icons/animation/lock_16.png diff --git a/Editor/Icons/animation/new_animation.png b/Assets/Editor/Icons/animation/new_animation.png similarity index 100% rename from Editor/Icons/animation/new_animation.png rename to Assets/Editor/Icons/animation/new_animation.png diff --git a/Editor/Icons/animation/physics.png b/Assets/Editor/Icons/animation/physics.png similarity index 100% rename from Editor/Icons/animation/physics.png rename to Assets/Editor/Icons/animation/physics.png diff --git a/Editor/Icons/animation/playback_options.png b/Assets/Editor/Icons/animation/playback_options.png similarity index 100% rename from Editor/Icons/animation/playback_options.png rename to Assets/Editor/Icons/animation/playback_options.png diff --git a/Editor/Icons/animation/redo.png b/Assets/Editor/Icons/animation/redo.png similarity index 100% rename from Editor/Icons/animation/redo.png rename to Assets/Editor/Icons/animation/redo.png diff --git a/Editor/Icons/animation/revert.png b/Assets/Editor/Icons/animation/revert.png similarity index 100% rename from Editor/Icons/animation/revert.png rename to Assets/Editor/Icons/animation/revert.png diff --git a/Editor/Icons/animation/rig.png b/Assets/Editor/Icons/animation/rig.png similarity index 100% rename from Editor/Icons/animation/rig.png rename to Assets/Editor/Icons/animation/rig.png diff --git a/Editor/Icons/animation/save.png b/Assets/Editor/Icons/animation/save.png similarity index 100% rename from Editor/Icons/animation/save.png rename to Assets/Editor/Icons/animation/save.png diff --git a/Editor/Icons/animation/selection_16.png b/Assets/Editor/Icons/animation/selection_16.png similarity index 100% rename from Editor/Icons/animation/selection_16.png rename to Assets/Editor/Icons/animation/selection_16.png diff --git a/Editor/Icons/animation/show_in_explorer.png b/Assets/Editor/Icons/animation/show_in_explorer.png similarity index 100% rename from Editor/Icons/animation/show_in_explorer.png rename to Assets/Editor/Icons/animation/show_in_explorer.png diff --git a/Editor/Icons/animation/skeleton.png b/Assets/Editor/Icons/animation/skeleton.png similarity index 100% rename from Editor/Icons/animation/skeleton.png rename to Assets/Editor/Icons/animation/skeleton.png diff --git a/Editor/Icons/animation/skin.png b/Assets/Editor/Icons/animation/skin.png similarity index 100% rename from Editor/Icons/animation/skin.png rename to Assets/Editor/Icons/animation/skin.png diff --git a/Editor/Icons/animation/source_asset_16.png b/Assets/Editor/Icons/animation/source_asset_16.png similarity index 100% rename from Editor/Icons/animation/source_asset_16.png rename to Assets/Editor/Icons/animation/source_asset_16.png diff --git a/Editor/Icons/animation/tool_move.png b/Assets/Editor/Icons/animation/tool_move.png similarity index 100% rename from Editor/Icons/animation/tool_move.png rename to Assets/Editor/Icons/animation/tool_move.png diff --git a/Editor/Icons/animation/tool_rotate.png b/Assets/Editor/Icons/animation/tool_rotate.png similarity index 100% rename from Editor/Icons/animation/tool_rotate.png rename to Assets/Editor/Icons/animation/tool_rotate.png diff --git a/Editor/Icons/animation/tool_scale.png b/Assets/Editor/Icons/animation/tool_scale.png similarity index 100% rename from Editor/Icons/animation/tool_scale.png rename to Assets/Editor/Icons/animation/tool_scale.png diff --git a/Editor/Icons/animation/tool_select.png b/Assets/Editor/Icons/animation/tool_select.png similarity index 100% rename from Editor/Icons/animation/tool_select.png rename to Assets/Editor/Icons/animation/tool_select.png diff --git a/Editor/Icons/animation/undo.png b/Assets/Editor/Icons/animation/undo.png similarity index 100% rename from Editor/Icons/animation/undo.png rename to Assets/Editor/Icons/animation/undo.png diff --git a/Editor/Icons/checkmark_checked.png b/Assets/Editor/Icons/checkmark_checked.png similarity index 100% rename from Editor/Icons/checkmark_checked.png rename to Assets/Editor/Icons/checkmark_checked.png diff --git a/Editor/Icons/checkmark_checked_hover.png b/Assets/Editor/Icons/checkmark_checked_hover.png similarity index 100% rename from Editor/Icons/checkmark_checked_hover.png rename to Assets/Editor/Icons/checkmark_checked_hover.png diff --git a/Editor/Icons/checkmark_unchecked_hover.png b/Assets/Editor/Icons/checkmark_unchecked_hover.png similarity index 100% rename from Editor/Icons/checkmark_unchecked_hover.png rename to Assets/Editor/Icons/checkmark_unchecked_hover.png diff --git a/Editor/Icons/close.png b/Assets/Editor/Icons/close.png similarity index 100% rename from Editor/Icons/close.png rename to Assets/Editor/Icons/close.png diff --git a/Editor/Icons/float.png b/Assets/Editor/Icons/float.png similarity index 100% rename from Editor/Icons/float.png rename to Assets/Editor/Icons/float.png diff --git a/Editor/Icons/lc_camera.png b/Assets/Editor/Icons/lc_camera.png similarity index 100% rename from Editor/Icons/lc_camera.png rename to Assets/Editor/Icons/lc_camera.png diff --git a/Editor/Icons/lc_exportandlaunch.png b/Assets/Editor/Icons/lc_exportandlaunch.png similarity index 100% rename from Editor/Icons/lc_exportandlaunch.png rename to Assets/Editor/Icons/lc_exportandlaunch.png diff --git a/Editor/Icons/lc_pc.png b/Assets/Editor/Icons/lc_pc.png similarity index 100% rename from Editor/Icons/lc_pc.png rename to Assets/Editor/Icons/lc_pc.png diff --git a/Editor/Icons/lc_power.png b/Assets/Editor/Icons/lc_power.png similarity index 100% rename from Editor/Icons/lc_power.png rename to Assets/Editor/Icons/lc_power.png diff --git a/Editor/Icons/lc_sshot.png b/Assets/Editor/Icons/lc_sshot.png similarity index 100% rename from Editor/Icons/lc_sshot.png rename to Assets/Editor/Icons/lc_sshot.png diff --git a/Editor/Icons/lc_sync.png b/Assets/Editor/Icons/lc_sync.png similarity index 100% rename from Editor/Icons/lc_sync.png rename to Assets/Editor/Icons/lc_sync.png diff --git a/Editor/Icons/reset.png b/Assets/Editor/Icons/reset.png similarity index 100% rename from Editor/Icons/reset.png rename to Assets/Editor/Icons/reset.png diff --git a/Editor/Icons/split.png b/Assets/Editor/Icons/split.png similarity index 100% rename from Editor/Icons/split.png rename to Assets/Editor/Icons/split.png diff --git a/Editor/LambdaFunctions/LwALambdaFunction.js b/Assets/Editor/LambdaFunctions/LwALambdaFunction.js similarity index 100% rename from Editor/LambdaFunctions/LwALambdaFunction.js rename to Assets/Editor/LambdaFunctions/LwALambdaFunction.js diff --git a/Editor/LambdaFunctions/LwFacebookLambdaFunction.js b/Assets/Editor/LambdaFunctions/LwFacebookLambdaFunction.js similarity index 100% rename from Editor/LambdaFunctions/LwFacebookLambdaFunction.js rename to Assets/Editor/LambdaFunctions/LwFacebookLambdaFunction.js diff --git a/Editor/LambdaFunctions/LwGenericOpenIdConnectLambdaFunction.js b/Assets/Editor/LambdaFunctions/LwGenericOpenIdConnectLambdaFunction.js similarity index 100% rename from Editor/LambdaFunctions/LwGenericOpenIdConnectLambdaFunction.js rename to Assets/Editor/LambdaFunctions/LwGenericOpenIdConnectLambdaFunction.js diff --git a/Editor/LambdaFunctions/LwGoogleLambdaFunction.js b/Assets/Editor/LambdaFunctions/LwGoogleLambdaFunction.js similarity index 100% rename from Editor/LambdaFunctions/LwGoogleLambdaFunction.js rename to Assets/Editor/LambdaFunctions/LwGoogleLambdaFunction.js diff --git a/Editor/LevelTemplates.xml b/Assets/Editor/LevelTemplates.xml similarity index 100% rename from Editor/LevelTemplates.xml rename to Assets/Editor/LevelTemplates.xml diff --git a/Editor/MapScreenshotSettings.xml b/Assets/Editor/MapScreenshotSettings.xml similarity index 100% rename from Editor/MapScreenshotSettings.xml rename to Assets/Editor/MapScreenshotSettings.xml diff --git a/Editor/Materials/ShaderList.xml b/Assets/Editor/Materials/ShaderList.xml similarity index 100% rename from Editor/Materials/ShaderList.xml rename to Assets/Editor/Materials/ShaderList.xml diff --git a/Editor/Materials/Stripes.tif b/Assets/Editor/Materials/Stripes.tif similarity index 100% rename from Editor/Materials/Stripes.tif rename to Assets/Editor/Materials/Stripes.tif diff --git a/Editor/Materials/Stripes.tif.exportsettings b/Assets/Editor/Materials/Stripes.tif.exportsettings similarity index 100% rename from Editor/Materials/Stripes.tif.exportsettings rename to Assets/Editor/Materials/Stripes.tif.exportsettings diff --git a/Editor/Materials/areasolid.dds b/Assets/Editor/Materials/areasolid.dds similarity index 100% rename from Editor/Materials/areasolid.dds rename to Assets/Editor/Materials/areasolid.dds diff --git a/Editor/Materials/areasolid.mtl b/Assets/Editor/Materials/areasolid.mtl similarity index 100% rename from Editor/Materials/areasolid.mtl rename to Assets/Editor/Materials/areasolid.mtl diff --git a/Editor/Materials/crydesigner_selection.mtl b/Assets/Editor/Materials/crydesigner_selection.mtl similarity index 100% rename from Editor/Materials/crydesigner_selection.mtl rename to Assets/Editor/Materials/crydesigner_selection.mtl diff --git a/Editor/Materials/default_rope.mtl b/Assets/Editor/Materials/default_rope.mtl similarity index 100% rename from Editor/Materials/default_rope.mtl rename to Assets/Editor/Materials/default_rope.mtl diff --git a/Editor/Materials/lodgen_template.mtl b/Assets/Editor/Materials/lodgen_template.mtl similarity index 54% rename from Editor/Materials/lodgen_template.mtl rename to Assets/Editor/Materials/lodgen_template.mtl index 0866c7b28b..761eff9154 100644 --- a/Editor/Materials/lodgen_template.mtl +++ b/Assets/Editor/Materials/lodgen_template.mtl @@ -1,8 +1,8 @@ - - - + + + diff --git a/Editor/Materials/refpicture.mtl b/Assets/Editor/Materials/refpicture.mtl similarity index 100% rename from Editor/Materials/refpicture.mtl rename to Assets/Editor/Materials/refpicture.mtl diff --git a/Editor/Materials/voxel_editor.mtl b/Assets/Editor/Materials/voxel_editor.mtl similarity index 100% rename from Editor/Materials/voxel_editor.mtl rename to Assets/Editor/Materials/voxel_editor.mtl diff --git a/Editor/Materials/voxel_editor.png b/Assets/Editor/Materials/voxel_editor.png similarity index 100% rename from Editor/Materials/voxel_editor.png rename to Assets/Editor/Materials/voxel_editor.png diff --git a/Editor/Materials/voxel_editor.png.exportsettings b/Assets/Editor/Materials/voxel_editor.png.exportsettings similarity index 100% rename from Editor/Materials/voxel_editor.png.exportsettings rename to Assets/Editor/Materials/voxel_editor.png.exportsettings diff --git a/Editor/MissionTemplate.lua b/Assets/Editor/MissionTemplate.lua similarity index 100% rename from Editor/MissionTemplate.lua rename to Assets/Editor/MissionTemplate.lua diff --git a/Editor/ModellingPanel.xml b/Assets/Editor/ModellingPanel.xml similarity index 100% rename from Editor/ModellingPanel.xml rename to Assets/Editor/ModellingPanel.xml diff --git a/Editor/NewEntityTemplate.ent_template b/Assets/Editor/NewEntityTemplate.ent_template similarity index 100% rename from Editor/NewEntityTemplate.ent_template rename to Assets/Editor/NewEntityTemplate.ent_template diff --git a/Editor/NewEntityTemplate.lua_template b/Assets/Editor/NewEntityTemplate.lua_template similarity index 100% rename from Editor/NewEntityTemplate.lua_template rename to Assets/Editor/NewEntityTemplate.lua_template diff --git a/Editor/ObjectIcons/AreaTrigger.bmp b/Assets/Editor/ObjectIcons/AreaTrigger.bmp similarity index 100% rename from Editor/ObjectIcons/AreaTrigger.bmp rename to Assets/Editor/ObjectIcons/AreaTrigger.bmp diff --git a/Editor/ObjectIcons/AudioAreaAmbience.bmp b/Assets/Editor/ObjectIcons/AudioAreaAmbience.bmp similarity index 100% rename from Editor/ObjectIcons/AudioAreaAmbience.bmp rename to Assets/Editor/ObjectIcons/AudioAreaAmbience.bmp diff --git a/Editor/ObjectIcons/AudioAreaEntity.bmp b/Assets/Editor/ObjectIcons/AudioAreaEntity.bmp similarity index 100% rename from Editor/ObjectIcons/AudioAreaEntity.bmp rename to Assets/Editor/ObjectIcons/AudioAreaEntity.bmp diff --git a/Editor/ObjectIcons/AudioAreaRandom.bmp b/Assets/Editor/ObjectIcons/AudioAreaRandom.bmp similarity index 100% rename from Editor/ObjectIcons/AudioAreaRandom.bmp rename to Assets/Editor/ObjectIcons/AudioAreaRandom.bmp diff --git a/Editor/ObjectIcons/Camera.bmp b/Assets/Editor/ObjectIcons/Camera.bmp similarity index 100% rename from Editor/ObjectIcons/Camera.bmp rename to Assets/Editor/ObjectIcons/Camera.bmp diff --git a/Editor/ObjectIcons/Checkpoint.bmp b/Assets/Editor/ObjectIcons/Checkpoint.bmp similarity index 100% rename from Editor/ObjectIcons/Checkpoint.bmp rename to Assets/Editor/ObjectIcons/Checkpoint.bmp diff --git a/Editor/ObjectIcons/ClipVolume.bmp b/Assets/Editor/ObjectIcons/ClipVolume.bmp similarity index 100% rename from Editor/ObjectIcons/ClipVolume.bmp rename to Assets/Editor/ObjectIcons/ClipVolume.bmp diff --git a/Editor/ObjectIcons/Clock.bmp b/Assets/Editor/ObjectIcons/Clock.bmp similarity index 100% rename from Editor/ObjectIcons/Clock.bmp rename to Assets/Editor/ObjectIcons/Clock.bmp diff --git a/Editor/ObjectIcons/Clouds.bmp b/Assets/Editor/ObjectIcons/Clouds.bmp similarity index 100% rename from Editor/ObjectIcons/Clouds.bmp rename to Assets/Editor/ObjectIcons/Clouds.bmp diff --git a/Editor/ObjectIcons/Comment.bmp b/Assets/Editor/ObjectIcons/Comment.bmp similarity index 100% rename from Editor/ObjectIcons/Comment.bmp rename to Assets/Editor/ObjectIcons/Comment.bmp diff --git a/Editor/ObjectIcons/DeadBody.bmp b/Assets/Editor/ObjectIcons/DeadBody.bmp similarity index 100% rename from Editor/ObjectIcons/DeadBody.bmp rename to Assets/Editor/ObjectIcons/DeadBody.bmp diff --git a/Editor/ObjectIcons/Decal.bmp b/Assets/Editor/ObjectIcons/Decal.bmp similarity index 100% rename from Editor/ObjectIcons/Decal.bmp rename to Assets/Editor/ObjectIcons/Decal.bmp diff --git a/Editor/ObjectIcons/Dialog.bmp b/Assets/Editor/ObjectIcons/Dialog.bmp similarity index 100% rename from Editor/ObjectIcons/Dialog.bmp rename to Assets/Editor/ObjectIcons/Dialog.bmp diff --git a/Editor/ObjectIcons/Flash.bmp b/Assets/Editor/ObjectIcons/Flash.bmp similarity index 100% rename from Editor/ObjectIcons/Flash.bmp rename to Assets/Editor/ObjectIcons/Flash.bmp diff --git a/Editor/ObjectIcons/Fog.bmp b/Assets/Editor/ObjectIcons/Fog.bmp similarity index 100% rename from Editor/ObjectIcons/Fog.bmp rename to Assets/Editor/ObjectIcons/Fog.bmp diff --git a/Editor/ObjectIcons/FogVolume.bmp b/Assets/Editor/ObjectIcons/FogVolume.bmp similarity index 100% rename from Editor/ObjectIcons/FogVolume.bmp rename to Assets/Editor/ObjectIcons/FogVolume.bmp diff --git a/Editor/ObjectIcons/GravitySphere.bmp b/Assets/Editor/ObjectIcons/GravitySphere.bmp similarity index 100% rename from Editor/ObjectIcons/GravitySphere.bmp rename to Assets/Editor/ObjectIcons/GravitySphere.bmp diff --git a/Editor/ObjectIcons/Item.bmp b/Assets/Editor/ObjectIcons/Item.bmp similarity index 100% rename from Editor/ObjectIcons/Item.bmp rename to Assets/Editor/ObjectIcons/Item.bmp diff --git a/Editor/ObjectIcons/Ladder.bmp b/Assets/Editor/ObjectIcons/Ladder.bmp similarity index 100% rename from Editor/ObjectIcons/Ladder.bmp rename to Assets/Editor/ObjectIcons/Ladder.bmp diff --git a/Editor/ObjectIcons/Light.bmp b/Assets/Editor/ObjectIcons/Light.bmp similarity index 100% rename from Editor/ObjectIcons/Light.bmp rename to Assets/Editor/ObjectIcons/Light.bmp diff --git a/Editor/ObjectIcons/LightPropagationVolume.bmp b/Assets/Editor/ObjectIcons/LightPropagationVolume.bmp similarity index 100% rename from Editor/ObjectIcons/LightPropagationVolume.bmp rename to Assets/Editor/ObjectIcons/LightPropagationVolume.bmp diff --git a/Editor/ObjectIcons/Lightning.bmp b/Assets/Editor/ObjectIcons/Lightning.bmp similarity index 100% rename from Editor/ObjectIcons/Lightning.bmp rename to Assets/Editor/ObjectIcons/Lightning.bmp diff --git a/Editor/ObjectIcons/Magnet.bmp b/Assets/Editor/ObjectIcons/Magnet.bmp similarity index 100% rename from Editor/ObjectIcons/Magnet.bmp rename to Assets/Editor/ObjectIcons/Magnet.bmp diff --git a/Editor/ObjectIcons/MultiTrigger.bmp b/Assets/Editor/ObjectIcons/MultiTrigger.bmp similarity index 100% rename from Editor/ObjectIcons/MultiTrigger.bmp rename to Assets/Editor/ObjectIcons/MultiTrigger.bmp diff --git a/Editor/ObjectIcons/ODD.bmp b/Assets/Editor/ObjectIcons/ODD.bmp similarity index 100% rename from Editor/ObjectIcons/ODD.bmp rename to Assets/Editor/ObjectIcons/ODD.bmp diff --git a/Editor/ObjectIcons/Particles.bmp b/Assets/Editor/ObjectIcons/Particles.bmp similarity index 100% rename from Editor/ObjectIcons/Particles.bmp rename to Assets/Editor/ObjectIcons/Particles.bmp diff --git a/Editor/ObjectIcons/PrecacheCamera.bmp b/Assets/Editor/ObjectIcons/PrecacheCamera.bmp similarity index 100% rename from Editor/ObjectIcons/PrecacheCamera.bmp rename to Assets/Editor/ObjectIcons/PrecacheCamera.bmp diff --git a/Editor/ObjectIcons/Prefab.bmp b/Assets/Editor/ObjectIcons/Prefab.bmp similarity index 100% rename from Editor/ObjectIcons/Prefab.bmp rename to Assets/Editor/ObjectIcons/Prefab.bmp diff --git a/Editor/ObjectIcons/Prompt.bmp b/Assets/Editor/ObjectIcons/Prompt.bmp similarity index 100% rename from Editor/ObjectIcons/Prompt.bmp rename to Assets/Editor/ObjectIcons/Prompt.bmp diff --git a/Editor/ObjectIcons/SavePoint.bmp b/Assets/Editor/ObjectIcons/SavePoint.bmp similarity index 100% rename from Editor/ObjectIcons/SavePoint.bmp rename to Assets/Editor/ObjectIcons/SavePoint.bmp diff --git a/Editor/ObjectIcons/Seed.bmp b/Assets/Editor/ObjectIcons/Seed.bmp similarity index 100% rename from Editor/ObjectIcons/Seed.bmp rename to Assets/Editor/ObjectIcons/Seed.bmp diff --git a/Editor/ObjectIcons/Sound.bmp b/Assets/Editor/ObjectIcons/Sound.bmp similarity index 100% rename from Editor/ObjectIcons/Sound.bmp rename to Assets/Editor/ObjectIcons/Sound.bmp diff --git a/Editor/ObjectIcons/SpawnPoint.bmp b/Assets/Editor/ObjectIcons/SpawnPoint.bmp similarity index 100% rename from Editor/ObjectIcons/SpawnPoint.bmp rename to Assets/Editor/ObjectIcons/SpawnPoint.bmp diff --git a/Editor/ObjectIcons/T.bmp b/Assets/Editor/ObjectIcons/T.bmp similarity index 100% rename from Editor/ObjectIcons/T.bmp rename to Assets/Editor/ObjectIcons/T.bmp diff --git a/Editor/ObjectIcons/TagPoint.bmp b/Assets/Editor/ObjectIcons/TagPoint.bmp similarity index 100% rename from Editor/ObjectIcons/TagPoint.bmp rename to Assets/Editor/ObjectIcons/TagPoint.bmp diff --git a/Editor/ObjectIcons/Trigger.bmp b/Assets/Editor/ObjectIcons/Trigger.bmp similarity index 100% rename from Editor/ObjectIcons/Trigger.bmp rename to Assets/Editor/ObjectIcons/Trigger.bmp diff --git a/Editor/ObjectIcons/UiCanvasRefEntity.bmp b/Assets/Editor/ObjectIcons/UiCanvasRefEntity.bmp similarity index 100% rename from Editor/ObjectIcons/UiCanvasRefEntity.bmp rename to Assets/Editor/ObjectIcons/UiCanvasRefEntity.bmp diff --git a/Editor/ObjectIcons/User.bmp b/Assets/Editor/ObjectIcons/User.bmp similarity index 100% rename from Editor/ObjectIcons/User.bmp rename to Assets/Editor/ObjectIcons/User.bmp diff --git a/Editor/ObjectIcons/VVVArea.bmp b/Assets/Editor/ObjectIcons/VVVArea.bmp similarity index 100% rename from Editor/ObjectIcons/VVVArea.bmp rename to Assets/Editor/ObjectIcons/VVVArea.bmp diff --git a/Editor/ObjectIcons/W.bmp b/Assets/Editor/ObjectIcons/W.bmp similarity index 100% rename from Editor/ObjectIcons/W.bmp rename to Assets/Editor/ObjectIcons/W.bmp diff --git a/Editor/ObjectIcons/Water.bmp b/Assets/Editor/ObjectIcons/Water.bmp similarity index 100% rename from Editor/ObjectIcons/Water.bmp rename to Assets/Editor/ObjectIcons/Water.bmp diff --git a/Editor/ObjectIcons/animobject.bmp b/Assets/Editor/ObjectIcons/animobject.bmp similarity index 100% rename from Editor/ObjectIcons/animobject.bmp rename to Assets/Editor/ObjectIcons/animobject.bmp diff --git a/Editor/ObjectIcons/bird.bmp b/Assets/Editor/ObjectIcons/bird.bmp similarity index 100% rename from Editor/ObjectIcons/bird.bmp rename to Assets/Editor/ObjectIcons/bird.bmp diff --git a/Editor/ObjectIcons/bug.bmp b/Assets/Editor/ObjectIcons/bug.bmp similarity index 100% rename from Editor/ObjectIcons/bug.bmp rename to Assets/Editor/ObjectIcons/bug.bmp diff --git a/Editor/ObjectIcons/character.bmp b/Assets/Editor/ObjectIcons/character.bmp similarity index 100% rename from Editor/ObjectIcons/character.bmp rename to Assets/Editor/ObjectIcons/character.bmp diff --git a/Editor/ObjectIcons/death.bmp b/Assets/Editor/ObjectIcons/death.bmp similarity index 100% rename from Editor/ObjectIcons/death.bmp rename to Assets/Editor/ObjectIcons/death.bmp diff --git a/Editor/ObjectIcons/door.bmp b/Assets/Editor/ObjectIcons/door.bmp similarity index 100% rename from Editor/ObjectIcons/door.bmp rename to Assets/Editor/ObjectIcons/door.bmp diff --git a/Editor/ObjectIcons/elevator.bmp b/Assets/Editor/ObjectIcons/elevator.bmp similarity index 100% rename from Editor/ObjectIcons/elevator.bmp rename to Assets/Editor/ObjectIcons/elevator.bmp diff --git a/Editor/ObjectIcons/environmentProbe.bmp b/Assets/Editor/ObjectIcons/environmentProbe.bmp similarity index 100% rename from Editor/ObjectIcons/environmentProbe.bmp rename to Assets/Editor/ObjectIcons/environmentProbe.bmp diff --git a/Editor/ObjectIcons/explosion.bmp b/Assets/Editor/ObjectIcons/explosion.bmp similarity index 100% rename from Editor/ObjectIcons/explosion.bmp rename to Assets/Editor/ObjectIcons/explosion.bmp diff --git a/Editor/ObjectIcons/fish.bmp b/Assets/Editor/ObjectIcons/fish.bmp similarity index 100% rename from Editor/ObjectIcons/fish.bmp rename to Assets/Editor/ObjectIcons/fish.bmp diff --git a/Editor/ObjectIcons/forbiddenarea.bmp b/Assets/Editor/ObjectIcons/forbiddenarea.bmp similarity index 100% rename from Editor/ObjectIcons/forbiddenarea.bmp rename to Assets/Editor/ObjectIcons/forbiddenarea.bmp diff --git a/Editor/ObjectIcons/hazard.bmp b/Assets/Editor/ObjectIcons/hazard.bmp similarity index 100% rename from Editor/ObjectIcons/hazard.bmp rename to Assets/Editor/ObjectIcons/hazard.bmp diff --git a/Editor/ObjectIcons/health.bmp b/Assets/Editor/ObjectIcons/health.bmp similarity index 100% rename from Editor/ObjectIcons/health.bmp rename to Assets/Editor/ObjectIcons/health.bmp diff --git a/Editor/ObjectIcons/ledge.bmp b/Assets/Editor/ObjectIcons/ledge.bmp similarity index 100% rename from Editor/ObjectIcons/ledge.bmp rename to Assets/Editor/ObjectIcons/ledge.bmp diff --git a/Editor/ObjectIcons/mine.bmp b/Assets/Editor/ObjectIcons/mine.bmp similarity index 100% rename from Editor/ObjectIcons/mine.bmp rename to Assets/Editor/ObjectIcons/mine.bmp diff --git a/Editor/ObjectIcons/physicsobject.bmp b/Assets/Editor/ObjectIcons/physicsobject.bmp similarity index 100% rename from Editor/ObjectIcons/physicsobject.bmp rename to Assets/Editor/ObjectIcons/physicsobject.bmp diff --git a/Editor/ObjectIcons/prefabbuilding.bmp b/Assets/Editor/ObjectIcons/prefabbuilding.bmp similarity index 100% rename from Editor/ObjectIcons/prefabbuilding.bmp rename to Assets/Editor/ObjectIcons/prefabbuilding.bmp diff --git a/Editor/ObjectIcons/proceduralbuilding.bmp b/Assets/Editor/ObjectIcons/proceduralbuilding.bmp similarity index 100% rename from Editor/ObjectIcons/proceduralbuilding.bmp rename to Assets/Editor/ObjectIcons/proceduralbuilding.bmp diff --git a/Editor/ObjectIcons/proceduralobject.bmp b/Assets/Editor/ObjectIcons/proceduralobject.bmp similarity index 100% rename from Editor/ObjectIcons/proceduralobject.bmp rename to Assets/Editor/ObjectIcons/proceduralobject.bmp diff --git a/Editor/ObjectIcons/proximitytrigger.bmp b/Assets/Editor/ObjectIcons/proximitytrigger.bmp similarity index 100% rename from Editor/ObjectIcons/proximitytrigger.bmp rename to Assets/Editor/ObjectIcons/proximitytrigger.bmp diff --git a/Editor/ObjectIcons/river.bmp b/Assets/Editor/ObjectIcons/river.bmp similarity index 100% rename from Editor/ObjectIcons/river.bmp rename to Assets/Editor/ObjectIcons/river.bmp diff --git a/Editor/ObjectIcons/road.bmp b/Assets/Editor/ObjectIcons/road.bmp similarity index 100% rename from Editor/ObjectIcons/road.bmp rename to Assets/Editor/ObjectIcons/road.bmp diff --git a/Editor/ObjectIcons/rope.bmp b/Assets/Editor/ObjectIcons/rope.bmp similarity index 100% rename from Editor/ObjectIcons/rope.bmp rename to Assets/Editor/ObjectIcons/rope.bmp diff --git a/Editor/ObjectIcons/sequence.bmp b/Assets/Editor/ObjectIcons/sequence.bmp similarity index 100% rename from Editor/ObjectIcons/sequence.bmp rename to Assets/Editor/ObjectIcons/sequence.bmp diff --git a/Editor/ObjectIcons/shake.bmp b/Assets/Editor/ObjectIcons/shake.bmp similarity index 100% rename from Editor/ObjectIcons/shake.bmp rename to Assets/Editor/ObjectIcons/shake.bmp diff --git a/Editor/ObjectIcons/smartobject.bmp b/Assets/Editor/ObjectIcons/smartobject.bmp similarity index 100% rename from Editor/ObjectIcons/smartobject.bmp rename to Assets/Editor/ObjectIcons/smartobject.bmp diff --git a/Editor/ObjectIcons/spawngroup.bmp b/Assets/Editor/ObjectIcons/spawngroup.bmp similarity index 100% rename from Editor/ObjectIcons/spawngroup.bmp rename to Assets/Editor/ObjectIcons/spawngroup.bmp diff --git a/Editor/ObjectIcons/spectator.bmp b/Assets/Editor/ObjectIcons/spectator.bmp similarity index 100% rename from Editor/ObjectIcons/spectator.bmp rename to Assets/Editor/ObjectIcons/spectator.bmp diff --git a/Editor/ObjectIcons/switch.bmp b/Assets/Editor/ObjectIcons/switch.bmp similarity index 100% rename from Editor/ObjectIcons/switch.bmp rename to Assets/Editor/ObjectIcons/switch.bmp diff --git a/Editor/ObjectIcons/territory.bmp b/Assets/Editor/ObjectIcons/territory.bmp similarity index 100% rename from Editor/ObjectIcons/territory.bmp rename to Assets/Editor/ObjectIcons/territory.bmp diff --git a/Editor/ObjectIcons/tornado.bmp b/Assets/Editor/ObjectIcons/tornado.bmp similarity index 100% rename from Editor/ObjectIcons/tornado.bmp rename to Assets/Editor/ObjectIcons/tornado.bmp diff --git a/Editor/ObjectIcons/vehicle.bmp b/Assets/Editor/ObjectIcons/vehicle.bmp similarity index 100% rename from Editor/ObjectIcons/vehicle.bmp rename to Assets/Editor/ObjectIcons/vehicle.bmp diff --git a/Editor/ObjectIcons/voxel.bmp b/Assets/Editor/ObjectIcons/voxel.bmp similarity index 100% rename from Editor/ObjectIcons/voxel.bmp rename to Assets/Editor/ObjectIcons/voxel.bmp diff --git a/Editor/ObjectIcons/wave.bmp b/Assets/Editor/ObjectIcons/wave.bmp similarity index 100% rename from Editor/ObjectIcons/wave.bmp rename to Assets/Editor/ObjectIcons/wave.bmp diff --git a/Editor/ObjectTemplates.xml b/Assets/Editor/ObjectTemplates.xml similarity index 100% rename from Editor/ObjectTemplates.xml rename to Assets/Editor/ObjectTemplates.xml diff --git a/Editor/Objects/Arrow.cgf b/Assets/Editor/Objects/Arrow.cgf similarity index 100% rename from Editor/Objects/Arrow.cgf rename to Assets/Editor/Objects/Arrow.cgf diff --git a/Editor/Objects/Axis.cgf b/Assets/Editor/Objects/Axis.cgf similarity index 100% rename from Editor/Objects/Axis.cgf rename to Assets/Editor/Objects/Axis.cgf diff --git a/Editor/Objects/Clock.cgf b/Assets/Editor/Objects/Clock.cgf similarity index 100% rename from Editor/Objects/Clock.cgf rename to Assets/Editor/Objects/Clock.cgf diff --git a/Editor/Objects/Comment.cgf b/Assets/Editor/Objects/Comment.cgf similarity index 100% rename from Editor/Objects/Comment.cgf rename to Assets/Editor/Objects/Comment.cgf diff --git a/Editor/Objects/CryDesigner_camera.grp b/Assets/Editor/Objects/CryDesigner_camera.grp similarity index 100% rename from Editor/Objects/CryDesigner_camera.grp rename to Assets/Editor/Objects/CryDesigner_camera.grp diff --git a/Editor/Objects/M.cgf b/Assets/Editor/Objects/M.cgf similarity index 100% rename from Editor/Objects/M.cgf rename to Assets/Editor/Objects/M.cgf diff --git a/Editor/Objects/MtlBox.cgf b/Assets/Editor/Objects/MtlBox.cgf similarity index 100% rename from Editor/Objects/MtlBox.cgf rename to Assets/Editor/Objects/MtlBox.cgf diff --git a/Editor/Objects/MtlObjects.max b/Assets/Editor/Objects/MtlObjects.max similarity index 100% rename from Editor/Objects/MtlObjects.max rename to Assets/Editor/Objects/MtlObjects.max diff --git a/Editor/Objects/MtlPlane.cgf b/Assets/Editor/Objects/MtlPlane.cgf similarity index 100% rename from Editor/Objects/MtlPlane.cgf rename to Assets/Editor/Objects/MtlPlane.cgf diff --git a/Editor/Objects/MtlSphere.cgf b/Assets/Editor/Objects/MtlSphere.cgf similarity index 100% rename from Editor/Objects/MtlSphere.cgf rename to Assets/Editor/Objects/MtlSphere.cgf diff --git a/Editor/Objects/MtlSwatch.cgf b/Assets/Editor/Objects/MtlSwatch.cgf similarity index 100% rename from Editor/Objects/MtlSwatch.cgf rename to Assets/Editor/Objects/MtlSwatch.cgf diff --git a/Editor/Objects/MtlTeapot.cgf b/Assets/Editor/Objects/MtlTeapot.cgf similarity index 100% rename from Editor/Objects/MtlTeapot.cgf rename to Assets/Editor/Objects/MtlTeapot.cgf diff --git a/Editor/Objects/MusicTheme.cgf b/Assets/Editor/Objects/MusicTheme.cgf similarity index 100% rename from Editor/Objects/MusicTheme.cgf rename to Assets/Editor/Objects/MusicTheme.cgf diff --git a/Editor/Objects/Particles.cgf b/Assets/Editor/Objects/Particles.cgf similarity index 100% rename from Editor/Objects/Particles.cgf rename to Assets/Editor/Objects/Particles.cgf diff --git a/Editor/Objects/Pyramid.cgf b/Assets/Editor/Objects/Pyramid.cgf similarity index 100% rename from Editor/Objects/Pyramid.cgf rename to Assets/Editor/Objects/Pyramid.cgf diff --git a/Editor/Objects/S.cgf b/Assets/Editor/Objects/S.cgf similarity index 100% rename from Editor/Objects/S.cgf rename to Assets/Editor/Objects/S.cgf diff --git a/Editor/Objects/Sound.cgf b/Assets/Editor/Objects/Sound.cgf similarity index 100% rename from Editor/Objects/Sound.cgf rename to Assets/Editor/Objects/Sound.cgf diff --git a/Editor/Objects/Sphere.cgf b/Assets/Editor/Objects/Sphere.cgf similarity index 100% rename from Editor/Objects/Sphere.cgf rename to Assets/Editor/Objects/Sphere.cgf diff --git a/Editor/Objects/T.cgf b/Assets/Editor/Objects/T.cgf similarity index 100% rename from Editor/Objects/T.cgf rename to Assets/Editor/Objects/T.cgf diff --git a/Editor/Objects/Vis.cgf b/Assets/Editor/Objects/Vis.cgf similarity index 100% rename from Editor/Objects/Vis.cgf rename to Assets/Editor/Objects/Vis.cgf diff --git a/Editor/Objects/W.cgf b/Assets/Editor/Objects/W.cgf similarity index 100% rename from Editor/Objects/W.cgf rename to Assets/Editor/Objects/W.cgf diff --git a/Editor/Objects/ai_hide_point.cgf b/Assets/Editor/Objects/ai_hide_point.cgf similarity index 100% rename from Editor/Objects/ai_hide_point.cgf rename to Assets/Editor/Objects/ai_hide_point.cgf diff --git a/Editor/Objects/anchor.cgf b/Assets/Editor/Objects/anchor.cgf similarity index 100% rename from Editor/Objects/anchor.cgf rename to Assets/Editor/Objects/anchor.cgf diff --git a/Editor/Objects/assaultspawn.cgf b/Assets/Editor/Objects/assaultspawn.cgf similarity index 100% rename from Editor/Objects/assaultspawn.cgf rename to Assets/Editor/Objects/assaultspawn.cgf diff --git a/Editor/Objects/border.cgf b/Assets/Editor/Objects/border.cgf similarity index 100% rename from Editor/Objects/border.cgf rename to Assets/Editor/Objects/border.cgf diff --git a/Editor/Objects/box.cgf b/Assets/Editor/Objects/box.cgf similarity index 100% rename from Editor/Objects/box.cgf rename to Assets/Editor/Objects/box.cgf diff --git a/Editor/Objects/box_nodraw.cgf b/Assets/Editor/Objects/box_nodraw.cgf similarity index 100% rename from Editor/Objects/box_nodraw.cgf rename to Assets/Editor/Objects/box_nodraw.cgf diff --git a/Editor/Objects/buyzone.cgf b/Assets/Editor/Objects/buyzone.cgf similarity index 100% rename from Editor/Objects/buyzone.cgf rename to Assets/Editor/Objects/buyzone.cgf diff --git a/Editor/Objects/c2_car_jump_cross.cgf b/Assets/Editor/Objects/c2_car_jump_cross.cgf similarity index 100% rename from Editor/Objects/c2_car_jump_cross.cgf rename to Assets/Editor/Objects/c2_car_jump_cross.cgf diff --git a/Editor/Objects/c2_crawl_h150.cgf b/Assets/Editor/Objects/c2_crawl_h150.cgf similarity index 100% rename from Editor/Objects/c2_crawl_h150.cgf rename to Assets/Editor/Objects/c2_crawl_h150.cgf diff --git a/Editor/Objects/c2_duck_v125.cgf b/Assets/Editor/Objects/c2_duck_v125.cgf similarity index 100% rename from Editor/Objects/c2_duck_v125.cgf rename to Assets/Editor/Objects/c2_duck_v125.cgf diff --git a/Editor/Objects/c2_jump_h1200.cgf b/Assets/Editor/Objects/c2_jump_h1200.cgf similarity index 100% rename from Editor/Objects/c2_jump_h1200.cgf rename to Assets/Editor/Objects/c2_jump_h1200.cgf diff --git a/Editor/Objects/c2_jump_h500.cgf b/Assets/Editor/Objects/c2_jump_h500.cgf similarity index 100% rename from Editor/Objects/c2_jump_h500.cgf rename to Assets/Editor/Objects/c2_jump_h500.cgf diff --git a/Editor/Objects/c2_jump_h900.cgf b/Assets/Editor/Objects/c2_jump_h900.cgf similarity index 100% rename from Editor/Objects/c2_jump_h900.cgf rename to Assets/Editor/Objects/c2_jump_h900.cgf diff --git a/Editor/Objects/c2_jump_h900_v150.cgf b/Assets/Editor/Objects/c2_jump_h900_v150.cgf similarity index 100% rename from Editor/Objects/c2_jump_h900_v150.cgf rename to Assets/Editor/Objects/c2_jump_h900_v150.cgf diff --git a/Editor/Objects/c2_jump_v150.cgf b/Assets/Editor/Objects/c2_jump_v150.cgf similarity index 100% rename from Editor/Objects/c2_jump_v150.cgf rename to Assets/Editor/Objects/c2_jump_v150.cgf diff --git a/Editor/Objects/c2_jump_v300.cgf b/Assets/Editor/Objects/c2_jump_v300.cgf similarity index 100% rename from Editor/Objects/c2_jump_v300.cgf rename to Assets/Editor/Objects/c2_jump_v300.cgf diff --git a/Editor/Objects/c2_jump_v450.cgf b/Assets/Editor/Objects/c2_jump_v450.cgf similarity index 100% rename from Editor/Objects/c2_jump_v450.cgf rename to Assets/Editor/Objects/c2_jump_v450.cgf diff --git a/Editor/Objects/c2_jumpdown_v900.cgf b/Assets/Editor/Objects/c2_jumpdown_v900.cgf similarity index 100% rename from Editor/Objects/c2_jumpdown_v900.cgf rename to Assets/Editor/Objects/c2_jumpdown_v900.cgf diff --git a/Editor/Objects/c2_jumpwindow_combo_v550.cgf b/Assets/Editor/Objects/c2_jumpwindow_combo_v550.cgf similarity index 100% rename from Editor/Objects/c2_jumpwindow_combo_v550.cgf rename to Assets/Editor/Objects/c2_jumpwindow_combo_v550.cgf diff --git a/Editor/Objects/c2_jumpwindow_v550.cgf b/Assets/Editor/Objects/c2_jumpwindow_v550.cgf similarity index 100% rename from Editor/Objects/c2_jumpwindow_v550.cgf rename to Assets/Editor/Objects/c2_jumpwindow_v550.cgf diff --git a/Editor/Objects/c2_jumpzigzag_v300_v750_lft.cgf b/Assets/Editor/Objects/c2_jumpzigzag_v300_v750_lft.cgf similarity index 100% rename from Editor/Objects/c2_jumpzigzag_v300_v750_lft.cgf rename to Assets/Editor/Objects/c2_jumpzigzag_v300_v750_lft.cgf diff --git a/Editor/Objects/c2_jumpzigzag_v300_v750_rgt.cgf b/Assets/Editor/Objects/c2_jumpzigzag_v300_v750_rgt.cgf similarity index 100% rename from Editor/Objects/c2_jumpzigzag_v300_v750_rgt.cgf rename to Assets/Editor/Objects/c2_jumpzigzag_v300_v750_rgt.cgf diff --git a/Editor/Objects/c2_slide_h400.cgf b/Assets/Editor/Objects/c2_slide_h400.cgf similarity index 100% rename from Editor/Objects/c2_slide_h400.cgf rename to Assets/Editor/Objects/c2_slide_h400.cgf diff --git a/Editor/Objects/c2_slidedown_v1800.cgf b/Assets/Editor/Objects/c2_slidedown_v1800.cgf similarity index 100% rename from Editor/Objects/c2_slidedown_v1800.cgf rename to Assets/Editor/Objects/c2_slidedown_v1800.cgf diff --git a/Editor/Objects/c2_vault_v125.cgf b/Assets/Editor/Objects/c2_vault_v125.cgf similarity index 100% rename from Editor/Objects/c2_vault_v125.cgf rename to Assets/Editor/Objects/c2_vault_v125.cgf diff --git a/Editor/Objects/c2_vault_v800.cgf b/Assets/Editor/Objects/c2_vault_v800.cgf similarity index 100% rename from Editor/Objects/c2_vault_v800.cgf rename to Assets/Editor/Objects/c2_vault_v800.cgf diff --git a/Editor/Objects/c2_wall_jump_h900_v450.cgf b/Assets/Editor/Objects/c2_wall_jump_h900_v450.cgf similarity index 100% rename from Editor/Objects/c2_wall_jump_h900_v450.cgf rename to Assets/Editor/Objects/c2_wall_jump_h900_v450.cgf diff --git a/Editor/Objects/c2_wall_run_h900_v300.cgf b/Assets/Editor/Objects/c2_wall_run_h900_v300.cgf similarity index 100% rename from Editor/Objects/c2_wall_run_h900_v300.cgf rename to Assets/Editor/Objects/c2_wall_run_h900_v300.cgf diff --git a/Editor/Objects/c3_dive_h900.cgf b/Assets/Editor/Objects/c3_dive_h900.cgf similarity index 100% rename from Editor/Objects/c3_dive_h900.cgf rename to Assets/Editor/Objects/c3_dive_h900.cgf diff --git a/Editor/Objects/c3_doorbreak_human.cgf b/Assets/Editor/Objects/c3_doorbreak_human.cgf similarity index 100% rename from Editor/Objects/c3_doorbreak_human.cgf rename to Assets/Editor/Objects/c3_doorbreak_human.cgf diff --git a/Editor/Objects/c3_doorframe.cgf b/Assets/Editor/Objects/c3_doorframe.cgf similarity index 100% rename from Editor/Objects/c3_doorframe.cgf rename to Assets/Editor/Objects/c3_doorframe.cgf diff --git a/Editor/Objects/c3_jump_v150_large.cgf b/Assets/Editor/Objects/c3_jump_v150_large.cgf similarity index 100% rename from Editor/Objects/c3_jump_v150_large.cgf rename to Assets/Editor/Objects/c3_jump_v150_large.cgf diff --git a/Editor/Objects/c3_jump_v300_large.cgf b/Assets/Editor/Objects/c3_jump_v300_large.cgf similarity index 100% rename from Editor/Objects/c3_jump_v300_large.cgf rename to Assets/Editor/Objects/c3_jump_v300_large.cgf diff --git a/Editor/Objects/c3_jump_v450_large.cgf b/Assets/Editor/Objects/c3_jump_v450_large.cgf similarity index 100% rename from Editor/Objects/c3_jump_v450_large.cgf rename to Assets/Editor/Objects/c3_jump_v450_large.cgf diff --git a/Editor/Objects/c3_repeldown_v2600.cgf b/Assets/Editor/Objects/c3_repeldown_v2600.cgf similarity index 100% rename from Editor/Objects/c3_repeldown_v2600.cgf rename to Assets/Editor/Objects/c3_repeldown_v2600.cgf diff --git a/Editor/Objects/c3_repeldown_v900.cgf b/Assets/Editor/Objects/c3_repeldown_v900.cgf similarity index 100% rename from Editor/Objects/c3_repeldown_v900.cgf rename to Assets/Editor/Objects/c3_repeldown_v900.cgf diff --git a/Editor/Objects/c3_so_cornerPopOutSearchLeft.cgf b/Assets/Editor/Objects/c3_so_cornerPopOutSearchLeft.cgf similarity index 100% rename from Editor/Objects/c3_so_cornerPopOutSearchLeft.cgf rename to Assets/Editor/Objects/c3_so_cornerPopOutSearchLeft.cgf diff --git a/Editor/Objects/c3_so_cornerPopOutSearchRight.cgf b/Assets/Editor/Objects/c3_so_cornerPopOutSearchRight.cgf similarity index 100% rename from Editor/Objects/c3_so_cornerPopOutSearchRight.cgf rename to Assets/Editor/Objects/c3_so_cornerPopOutSearchRight.cgf diff --git a/Editor/Objects/c3_vault_v125_large.cgf b/Assets/Editor/Objects/c3_vault_v125_large.cgf similarity index 100% rename from Editor/Objects/c3_vault_v125_large.cgf rename to Assets/Editor/Objects/c3_vault_v125_large.cgf diff --git a/Editor/Objects/c3_zipline_7500_15.cgf b/Assets/Editor/Objects/c3_zipline_7500_15.cgf similarity index 100% rename from Editor/Objects/c3_zipline_7500_15.cgf rename to Assets/Editor/Objects/c3_zipline_7500_15.cgf diff --git a/Editor/Objects/collision_dummy_100x50.cgf b/Assets/Editor/Objects/collision_dummy_100x50.cgf similarity index 100% rename from Editor/Objects/collision_dummy_100x50.cgf rename to Assets/Editor/Objects/collision_dummy_100x50.cgf diff --git a/Editor/Objects/collision_dummy_25x50.cgf b/Assets/Editor/Objects/collision_dummy_25x50.cgf similarity index 100% rename from Editor/Objects/collision_dummy_25x50.cgf rename to Assets/Editor/Objects/collision_dummy_25x50.cgf diff --git a/Editor/Objects/collision_dummy_50x50.cgf b/Assets/Editor/Objects/collision_dummy_50x50.cgf similarity index 100% rename from Editor/Objects/collision_dummy_50x50.cgf rename to Assets/Editor/Objects/collision_dummy_50x50.cgf diff --git a/Editor/Objects/corner270.cgf b/Assets/Editor/Objects/corner270.cgf similarity index 100% rename from Editor/Objects/corner270.cgf rename to Assets/Editor/Objects/corner270.cgf diff --git a/Editor/Objects/editor_helpers.max b/Assets/Editor/Objects/editor_helpers.max similarity index 100% rename from Editor/Objects/editor_helpers.max rename to Assets/Editor/Objects/editor_helpers.max diff --git a/Editor/Objects/energypoint.cgf b/Assets/Editor/Objects/energypoint.cgf similarity index 100% rename from Editor/Objects/energypoint.cgf rename to Assets/Editor/Objects/energypoint.cgf diff --git a/Editor/Objects/entrypoint.cgf b/Assets/Editor/Objects/entrypoint.cgf similarity index 100% rename from Editor/Objects/entrypoint.cgf rename to Assets/Editor/Objects/entrypoint.cgf diff --git a/Editor/Objects/envcube.cgf b/Assets/Editor/Objects/envcube.cgf similarity index 100% rename from Editor/Objects/envcube.cgf rename to Assets/Editor/Objects/envcube.cgf diff --git a/Editor/Objects/envcube.max b/Assets/Editor/Objects/envcube.max similarity index 100% rename from Editor/Objects/envcube.max rename to Assets/Editor/Objects/envcube.max diff --git a/Editor/Objects/envcube.mtl b/Assets/Editor/Objects/envcube.mtl similarity index 100% rename from Editor/Objects/envcube.mtl rename to Assets/Editor/Objects/envcube.mtl diff --git a/Editor/Objects/factory.cgf b/Assets/Editor/Objects/factory.cgf similarity index 100% rename from Editor/Objects/factory.cgf rename to Assets/Editor/Objects/factory.cgf diff --git a/Editor/Objects/flock.cgf b/Assets/Editor/Objects/flock.cgf similarity index 100% rename from Editor/Objects/flock.cgf rename to Assets/Editor/Objects/flock.cgf diff --git a/Editor/Objects/forbiddenarea.cgf b/Assets/Editor/Objects/forbiddenarea.cgf similarity index 100% rename from Editor/Objects/forbiddenarea.cgf rename to Assets/Editor/Objects/forbiddenarea.cgf diff --git a/Editor/Objects/gradb.dds b/Assets/Editor/Objects/gradb.dds similarity index 100% rename from Editor/Objects/gradb.dds rename to Assets/Editor/Objects/gradb.dds diff --git a/Editor/Objects/gradf.dds b/Assets/Editor/Objects/gradf.dds similarity index 100% rename from Editor/Objects/gradf.dds rename to Assets/Editor/Objects/gradf.dds diff --git a/Editor/Objects/helper.mtl b/Assets/Editor/Objects/helper.mtl similarity index 100% rename from Editor/Objects/helper.mtl rename to Assets/Editor/Objects/helper.mtl diff --git a/Editor/Objects/helper_illum.mtl b/Assets/Editor/Objects/helper_illum.mtl similarity index 100% rename from Editor/Objects/helper_illum.mtl rename to Assets/Editor/Objects/helper_illum.mtl diff --git a/Editor/Objects/hidepoint.cgf b/Assets/Editor/Objects/hidepoint.cgf similarity index 100% rename from Editor/Objects/hidepoint.cgf rename to Assets/Editor/Objects/hidepoint.cgf diff --git a/Editor/Objects/hidepoint_sec.cgf b/Assets/Editor/Objects/hidepoint_sec.cgf similarity index 100% rename from Editor/Objects/hidepoint_sec.cgf rename to Assets/Editor/Objects/hidepoint_sec.cgf diff --git a/Editor/Objects/highvault.cgf b/Assets/Editor/Objects/highvault.cgf similarity index 100% rename from Editor/Objects/highvault.cgf rename to Assets/Editor/Objects/highvault.cgf diff --git a/Editor/Objects/hq.cgf b/Assets/Editor/Objects/hq.cgf similarity index 100% rename from Editor/Objects/hq.cgf rename to Assets/Editor/Objects/hq.cgf diff --git a/Editor/Objects/invisiblebox.cgf b/Assets/Editor/Objects/invisiblebox.cgf similarity index 100% rename from Editor/Objects/invisiblebox.cgf rename to Assets/Editor/Objects/invisiblebox.cgf diff --git a/Editor/Objects/invisibleobstruct.cgf b/Assets/Editor/Objects/invisibleobstruct.cgf similarity index 100% rename from Editor/Objects/invisibleobstruct.cgf rename to Assets/Editor/Objects/invisibleobstruct.cgf diff --git a/Editor/Objects/invisibleocclude.cgf b/Assets/Editor/Objects/invisibleocclude.cgf similarity index 100% rename from Editor/Objects/invisibleocclude.cgf rename to Assets/Editor/Objects/invisibleocclude.cgf diff --git a/Editor/Objects/invisiblewall.cgf b/Assets/Editor/Objects/invisiblewall.cgf similarity index 100% rename from Editor/Objects/invisiblewall.cgf rename to Assets/Editor/Objects/invisiblewall.cgf diff --git a/Editor/Objects/jump_150.cgf b/Assets/Editor/Objects/jump_150.cgf similarity index 100% rename from Editor/Objects/jump_150.cgf rename to Assets/Editor/Objects/jump_150.cgf diff --git a/Editor/Objects/jump_300.cgf b/Assets/Editor/Objects/jump_300.cgf similarity index 100% rename from Editor/Objects/jump_300.cgf rename to Assets/Editor/Objects/jump_300.cgf diff --git a/Editor/Objects/jump_450.cgf b/Assets/Editor/Objects/jump_450.cgf similarity index 100% rename from Editor/Objects/jump_450.cgf rename to Assets/Editor/Objects/jump_450.cgf diff --git a/Editor/Objects/leap_1000.cgf b/Assets/Editor/Objects/leap_1000.cgf similarity index 100% rename from Editor/Objects/leap_1000.cgf rename to Assets/Editor/Objects/leap_1000.cgf diff --git a/Editor/Objects/leap_500.cgf b/Assets/Editor/Objects/leap_500.cgf similarity index 100% rename from Editor/Objects/leap_500.cgf rename to Assets/Editor/Objects/leap_500.cgf diff --git a/Editor/Objects/light_omni.cgf b/Assets/Editor/Objects/light_omni.cgf similarity index 100% rename from Editor/Objects/light_omni.cgf rename to Assets/Editor/Objects/light_omni.cgf diff --git a/Editor/Objects/light_spot.cgf b/Assets/Editor/Objects/light_spot.cgf similarity index 100% rename from Editor/Objects/light_spot.cgf rename to Assets/Editor/Objects/light_spot.cgf diff --git a/Editor/Objects/lightsphere.cgf b/Assets/Editor/Objects/lightsphere.cgf similarity index 100% rename from Editor/Objects/lightsphere.cgf rename to Assets/Editor/Objects/lightsphere.cgf diff --git a/Editor/Objects/measurehelper_A.cgf b/Assets/Editor/Objects/measurehelper_A.cgf similarity index 100% rename from Editor/Objects/measurehelper_A.cgf rename to Assets/Editor/Objects/measurehelper_A.cgf diff --git a/Editor/Objects/measurehelper_B.cgf b/Assets/Editor/Objects/measurehelper_B.cgf similarity index 100% rename from Editor/Objects/measurehelper_B.cgf rename to Assets/Editor/Objects/measurehelper_B.cgf diff --git a/Editor/Objects/mtlbox.mtl b/Assets/Editor/Objects/mtlbox.mtl similarity index 100% rename from Editor/Objects/mtlbox.mtl rename to Assets/Editor/Objects/mtlbox.mtl diff --git a/Editor/Objects/mtlobjects.mtl b/Assets/Editor/Objects/mtlobjects.mtl similarity index 100% rename from Editor/Objects/mtlobjects.mtl rename to Assets/Editor/Objects/mtlobjects.mtl diff --git a/Editor/Objects/objective.cgf b/Assets/Editor/Objects/objective.cgf similarity index 100% rename from Editor/Objects/objective.cgf rename to Assets/Editor/Objects/objective.cgf diff --git a/Editor/Objects/phoenix.cgf b/Assets/Editor/Objects/phoenix.cgf similarity index 100% rename from Editor/Objects/phoenix.cgf rename to Assets/Editor/Objects/phoenix.cgf diff --git a/Editor/Objects/refpicture.cgf b/Assets/Editor/Objects/refpicture.cgf similarity index 100% rename from Editor/Objects/refpicture.cgf rename to Assets/Editor/Objects/refpicture.cgf diff --git a/Editor/Objects/refpicture.max b/Assets/Editor/Objects/refpicture.max similarity index 100% rename from Editor/Objects/refpicture.max rename to Assets/Editor/Objects/refpicture.max diff --git a/Editor/Objects/reinforcement_point.cgf b/Assets/Editor/Objects/reinforcement_point.cgf similarity index 100% rename from Editor/Objects/reinforcement_point.cgf rename to Assets/Editor/Objects/reinforcement_point.cgf diff --git a/Editor/Objects/smartobject_helper.max b/Assets/Editor/Objects/smartobject_helper.max similarity index 100% rename from Editor/Objects/smartobject_helper.max rename to Assets/Editor/Objects/smartobject_helper.max diff --git a/Editor/Objects/spawngroup.cgf b/Assets/Editor/Objects/spawngroup.cgf similarity index 100% rename from Editor/Objects/spawngroup.cgf rename to Assets/Editor/Objects/spawngroup.cgf diff --git a/Editor/Objects/spawnpointhelper.cgf b/Assets/Editor/Objects/spawnpointhelper.cgf similarity index 100% rename from Editor/Objects/spawnpointhelper.cgf rename to Assets/Editor/Objects/spawnpointhelper.cgf diff --git a/Editor/Objects/spawnpointhelper.mtl b/Assets/Editor/Objects/spawnpointhelper.mtl similarity index 100% rename from Editor/Objects/spawnpointhelper.mtl rename to Assets/Editor/Objects/spawnpointhelper.mtl diff --git a/Editor/Objects/stayOnWallFire_left.cgf b/Assets/Editor/Objects/stayOnWallFire_left.cgf similarity index 100% rename from Editor/Objects/stayOnWallFire_left.cgf rename to Assets/Editor/Objects/stayOnWallFire_left.cgf diff --git a/Editor/Objects/suit_jump_300.cgf b/Assets/Editor/Objects/suit_jump_300.cgf similarity index 100% rename from Editor/Objects/suit_jump_300.cgf rename to Assets/Editor/Objects/suit_jump_300.cgf diff --git a/Editor/Objects/suit_jump_800.cgf b/Assets/Editor/Objects/suit_jump_800.cgf similarity index 100% rename from Editor/Objects/suit_jump_800.cgf rename to Assets/Editor/Objects/suit_jump_800.cgf diff --git a/Editor/Objects/suit_leap_800.cgf b/Assets/Editor/Objects/suit_leap_800.cgf similarity index 100% rename from Editor/Objects/suit_leap_800.cgf rename to Assets/Editor/Objects/suit_leap_800.cgf diff --git a/Editor/Plugins/ParticleEditorPlugin/defaults/DefaultParticleEmitters.xml b/Assets/Editor/Plugins/ParticleEditorPlugin/defaults/DefaultParticleEmitters.xml similarity index 100% rename from Editor/Plugins/ParticleEditorPlugin/defaults/DefaultParticleEmitters.xml rename to Assets/Editor/Plugins/ParticleEditorPlugin/defaults/DefaultParticleEmitters.xml diff --git a/Editor/Plugins/ParticleEditorPlugin/defaults/defaultParticle.dds b/Assets/Editor/Plugins/ParticleEditorPlugin/defaults/defaultParticle.dds similarity index 100% rename from Editor/Plugins/ParticleEditorPlugin/defaults/defaultParticle.dds rename to Assets/Editor/Plugins/ParticleEditorPlugin/defaults/defaultParticle.dds diff --git a/Editor/Plugins/ParticleEditorPlugin/defaults/feather01.tif b/Assets/Editor/Plugins/ParticleEditorPlugin/defaults/feather01.tif similarity index 100% rename from Editor/Plugins/ParticleEditorPlugin/defaults/feather01.tif rename to Assets/Editor/Plugins/ParticleEditorPlugin/defaults/feather01.tif diff --git a/Editor/Plugins/ParticleEditorPlugin/defaults/puffup01.tif b/Assets/Editor/Plugins/ParticleEditorPlugin/defaults/puffup01.tif similarity index 100% rename from Editor/Plugins/ParticleEditorPlugin/defaults/puffup01.tif rename to Assets/Editor/Plugins/ParticleEditorPlugin/defaults/puffup01.tif diff --git a/Editor/Plugins/ParticleEditorPlugin/settings/ToolTips.xml b/Assets/Editor/Plugins/ParticleEditorPlugin/settings/ToolTips.xml similarity index 100% rename from Editor/Plugins/ParticleEditorPlugin/settings/ToolTips.xml rename to Assets/Editor/Plugins/ParticleEditorPlugin/settings/ToolTips.xml diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif diff --git a/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif b/Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif similarity index 100% rename from Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif rename to Assets/Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif diff --git a/Editor/Presets/GeomCache/game.cbc b/Assets/Editor/Presets/GeomCache/game.cbc similarity index 100% rename from Editor/Presets/GeomCache/game.cbc rename to Assets/Editor/Presets/GeomCache/game.cbc diff --git a/Editor/Presets/GeomCache/game_lz4hc.cbc b/Assets/Editor/Presets/GeomCache/game_lz4hc.cbc similarity index 100% rename from Editor/Presets/GeomCache/game_lz4hc.cbc rename to Assets/Editor/Presets/GeomCache/game_lz4hc.cbc diff --git a/Editor/Presets/GeomCache/game_z_up.cbc b/Assets/Editor/Presets/GeomCache/game_z_up.cbc similarity index 100% rename from Editor/Presets/GeomCache/game_z_up.cbc rename to Assets/Editor/Presets/GeomCache/game_z_up.cbc diff --git a/Editor/Presets/GeomCache/game_z_up_lz4hc.cbc b/Assets/Editor/Presets/GeomCache/game_z_up_lz4hc.cbc similarity index 100% rename from Editor/Presets/GeomCache/game_z_up_lz4hc.cbc rename to Assets/Editor/Presets/GeomCache/game_z_up_lz4hc.cbc diff --git a/Editor/Presets/GeomCache/prerendered.cbc b/Assets/Editor/Presets/GeomCache/prerendered.cbc similarity index 100% rename from Editor/Presets/GeomCache/prerendered.cbc rename to Assets/Editor/Presets/GeomCache/prerendered.cbc diff --git a/Editor/Presets/GeomCache/prerendered_z_up.cbc b/Assets/Editor/Presets/GeomCache/prerendered_z_up.cbc similarity index 100% rename from Editor/Presets/GeomCache/prerendered_z_up.cbc rename to Assets/Editor/Presets/GeomCache/prerendered_z_up.cbc diff --git a/Editor/Presets/GeomCache/rigids_only.cbc b/Assets/Editor/Presets/GeomCache/rigids_only.cbc similarity index 100% rename from Editor/Presets/GeomCache/rigids_only.cbc rename to Assets/Editor/Presets/GeomCache/rigids_only.cbc diff --git a/Editor/Presets/GeomCache/rigids_only_z_up.cbc b/Assets/Editor/Presets/GeomCache/rigids_only_z_up.cbc similarity index 100% rename from Editor/Presets/GeomCache/rigids_only_z_up.cbc rename to Assets/Editor/Presets/GeomCache/rigids_only_z_up.cbc diff --git a/Editor/Presets/GeomCache/uncompressed.cbc b/Assets/Editor/Presets/GeomCache/uncompressed.cbc similarity index 100% rename from Editor/Presets/GeomCache/uncompressed.cbc rename to Assets/Editor/Presets/GeomCache/uncompressed.cbc diff --git a/Editor/Presets/GeomCache/uncompressed_z_up.cbc b/Assets/Editor/Presets/GeomCache/uncompressed_z_up.cbc similarity index 100% rename from Editor/Presets/GeomCache/uncompressed_z_up.cbc rename to Assets/Editor/Presets/GeomCache/uncompressed_z_up.cbc diff --git a/Editor/Presets/MobileSettings/GPUAndDriverLists.json b/Assets/Editor/Presets/MobileSettings/GPUAndDriverLists.json similarity index 100% rename from Editor/Presets/MobileSettings/GPUAndDriverLists.json rename to Assets/Editor/Presets/MobileSettings/GPUAndDriverLists.json diff --git a/Editor/Presets/MobileSettings/IPhone7.lms b/Assets/Editor/Presets/MobileSettings/IPhone7.lms similarity index 100% rename from Editor/Presets/MobileSettings/IPhone7.lms rename to Assets/Editor/Presets/MobileSettings/IPhone7.lms diff --git a/Editor/Presets/MobileSettings/IpadPro.lms b/Assets/Editor/Presets/MobileSettings/IpadPro.lms similarity index 100% rename from Editor/Presets/MobileSettings/IpadPro.lms rename to Assets/Editor/Presets/MobileSettings/IpadPro.lms diff --git a/Editor/Presets/MobileSettings/MobileFeatureBlackList.json b/Assets/Editor/Presets/MobileSettings/MobileFeatureBlackList.json similarity index 100% rename from Editor/Presets/MobileSettings/MobileFeatureBlackList.json rename to Assets/Editor/Presets/MobileSettings/MobileFeatureBlackList.json diff --git a/Editor/Presets/MobileSettings/Nexus9.lms b/Assets/Editor/Presets/MobileSettings/Nexus9.lms similarity index 100% rename from Editor/Presets/MobileSettings/Nexus9.lms rename to Assets/Editor/Presets/MobileSettings/Nexus9.lms diff --git a/Editor/Presets/MobileSettings/SamsungGalaxyS7_Mali.lms b/Assets/Editor/Presets/MobileSettings/SamsungGalaxyS7_Mali.lms similarity index 100% rename from Editor/Presets/MobileSettings/SamsungGalaxyS7_Mali.lms rename to Assets/Editor/Presets/MobileSettings/SamsungGalaxyS7_Mali.lms diff --git a/Editor/Presets/MobileSettings/SamsungGalaxyS7_Qualcomm.lms b/Assets/Editor/Presets/MobileSettings/SamsungGalaxyS7_Qualcomm.lms similarity index 100% rename from Editor/Presets/MobileSettings/SamsungGalaxyS7_Qualcomm.lms rename to Assets/Editor/Presets/MobileSettings/SamsungGalaxyS7_Qualcomm.lms diff --git a/Editor/PropertyEnumerations.xml b/Assets/Editor/PropertyEnumerations.xml similarity index 100% rename from Editor/PropertyEnumerations.xml rename to Assets/Editor/PropertyEnumerations.xml diff --git a/Editor/Scripts/Shelves/icons/Albedo.png b/Assets/Editor/Scripts/Shelves/icons/Albedo.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Albedo.png rename to Assets/Editor/Scripts/Shelves/icons/Albedo.png diff --git a/Editor/Scripts/Shelves/icons/Diffuse_Lighting.png b/Assets/Editor/Scripts/Shelves/icons/Diffuse_Lighting.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Diffuse_Lighting.png rename to Assets/Editor/Scripts/Shelves/icons/Diffuse_Lighting.png diff --git a/Editor/Scripts/Shelves/icons/Diffuse_Texture_Res_360.png b/Assets/Editor/Scripts/Shelves/icons/Diffuse_Texture_Res_360.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Diffuse_Texture_Res_360.png rename to Assets/Editor/Scripts/Shelves/icons/Diffuse_Texture_Res_360.png diff --git a/Editor/Scripts/Shelves/icons/Empty_Wireframe.png b/Assets/Editor/Scripts/Shelves/icons/Empty_Wireframe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Empty_Wireframe.png rename to Assets/Editor/Scripts/Shelves/icons/Empty_Wireframe.png diff --git a/Editor/Scripts/Shelves/icons/Exit.png b/Assets/Editor/Scripts/Shelves/icons/Exit.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Exit.png rename to Assets/Editor/Scripts/Shelves/icons/Exit.png diff --git a/Editor/Scripts/Shelves/icons/Fuzziness.png b/Assets/Editor/Scripts/Shelves/icons/Fuzziness.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Fuzziness.png rename to Assets/Editor/Scripts/Shelves/icons/Fuzziness.png diff --git a/Editor/Scripts/Shelves/icons/Gloss.png b/Assets/Editor/Scripts/Shelves/icons/Gloss.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Gloss.png rename to Assets/Editor/Scripts/Shelves/icons/Gloss.png diff --git a/Editor/Scripts/Shelves/icons/Normal_Texture_Res_360.png b/Assets/Editor/Scripts/Shelves/icons/Normal_Texture_Res_360.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Normal_Texture_Res_360.png rename to Assets/Editor/Scripts/Shelves/icons/Normal_Texture_Res_360.png diff --git a/Editor/Scripts/Shelves/icons/PrefabAddLibrary.png b/Assets/Editor/Scripts/Shelves/icons/PrefabAddLibrary.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabAddLibrary.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabAddLibrary.png diff --git a/Editor/Scripts/Shelves/icons/PrefabAddSelection.png b/Assets/Editor/Scripts/Shelves/icons/PrefabAddSelection.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabAddSelection.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabAddSelection.png diff --git a/Editor/Scripts/Shelves/icons/PrefabBreak.png b/Assets/Editor/Scripts/Shelves/icons/PrefabBreak.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabBreak.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabBreak.png diff --git a/Editor/Scripts/Shelves/icons/PrefabConvert.png b/Assets/Editor/Scripts/Shelves/icons/PrefabConvert.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabConvert.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabConvert.png diff --git a/Editor/Scripts/Shelves/icons/PrefabCreate.png b/Assets/Editor/Scripts/Shelves/icons/PrefabCreate.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabCreate.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabCreate.png diff --git a/Editor/Scripts/Shelves/icons/PrefabIsolate.png b/Assets/Editor/Scripts/Shelves/icons/PrefabIsolate.png similarity index 100% rename from Editor/Scripts/Shelves/icons/PrefabIsolate.png rename to Assets/Editor/Scripts/Shelves/icons/PrefabIsolate.png diff --git a/Editor/Scripts/Shelves/icons/Scattering.png b/Assets/Editor/Scripts/Shelves/icons/Scattering.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Scattering.png rename to Assets/Editor/Scripts/Shelves/icons/Scattering.png diff --git a/Editor/Scripts/Shelves/icons/Solid_Wireframe.png b/Assets/Editor/Scripts/Shelves/icons/Solid_Wireframe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Solid_Wireframe.png rename to Assets/Editor/Scripts/Shelves/icons/Solid_Wireframe.png diff --git a/Editor/Scripts/Shelves/icons/Spec_Amount.png b/Assets/Editor/Scripts/Shelves/icons/Spec_Amount.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Spec_Amount.png rename to Assets/Editor/Scripts/Shelves/icons/Spec_Amount.png diff --git a/Editor/Scripts/Shelves/icons/Spec_Lighting.png b/Assets/Editor/Scripts/Shelves/icons/Spec_Lighting.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Spec_Lighting.png rename to Assets/Editor/Scripts/Shelves/icons/Spec_Lighting.png diff --git a/Editor/Scripts/Shelves/icons/Texel_Per_Meter_1024.png b/Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_1024.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Texel_Per_Meter_1024.png rename to Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_1024.png diff --git a/Editor/Scripts/Shelves/icons/Texel_Per_Meter_256.png b/Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_256.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Texel_Per_Meter_256.png rename to Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_256.png diff --git a/Editor/Scripts/Shelves/icons/Texel_Per_Meter_512.png b/Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_512.png similarity index 100% rename from Editor/Scripts/Shelves/icons/Texel_Per_Meter_512.png rename to Assets/Editor/Scripts/Shelves/icons/Texel_Per_Meter_512.png diff --git a/Editor/Scripts/Shelves/icons/all.png b/Assets/Editor/Scripts/Shelves/icons/all.png similarity index 100% rename from Editor/Scripts/Shelves/icons/all.png rename to Assets/Editor/Scripts/Shelves/icons/all.png diff --git a/Editor/Scripts/Shelves/icons/beams.png b/Assets/Editor/Scripts/Shelves/icons/beams.png similarity index 100% rename from Editor/Scripts/Shelves/icons/beams.png rename to Assets/Editor/Scripts/Shelves/icons/beams.png diff --git a/Editor/Scripts/Shelves/icons/blanker.png b/Assets/Editor/Scripts/Shelves/icons/blanker.png similarity index 100% rename from Editor/Scripts/Shelves/icons/blanker.png rename to Assets/Editor/Scripts/Shelves/icons/blanker.png diff --git a/Editor/Scripts/Shelves/icons/bounding_box.png b/Assets/Editor/Scripts/Shelves/icons/bounding_box.png similarity index 100% rename from Editor/Scripts/Shelves/icons/bounding_box.png rename to Assets/Editor/Scripts/Shelves/icons/bounding_box.png diff --git a/Editor/Scripts/Shelves/icons/brushes.png b/Assets/Editor/Scripts/Shelves/icons/brushes.png similarity index 100% rename from Editor/Scripts/Shelves/icons/brushes.png rename to Assets/Editor/Scripts/Shelves/icons/brushes.png diff --git a/Editor/Scripts/Shelves/icons/cloud.png b/Assets/Editor/Scripts/Shelves/icons/cloud.png similarity index 100% rename from Editor/Scripts/Shelves/icons/cloud.png rename to Assets/Editor/Scripts/Shelves/icons/cloud.png diff --git a/Editor/Scripts/Shelves/icons/cloud_dark.png b/Assets/Editor/Scripts/Shelves/icons/cloud_dark.png similarity index 100% rename from Editor/Scripts/Shelves/icons/cloud_dark.png rename to Assets/Editor/Scripts/Shelves/icons/cloud_dark.png diff --git a/Editor/Scripts/Shelves/icons/cloud_dark_rain.png b/Assets/Editor/Scripts/Shelves/icons/cloud_dark_rain.png similarity index 100% rename from Editor/Scripts/Shelves/icons/cloud_dark_rain.png rename to Assets/Editor/Scripts/Shelves/icons/cloud_dark_rain.png diff --git a/Editor/Scripts/Shelves/icons/collisions.png b/Assets/Editor/Scripts/Shelves/icons/collisions.png similarity index 100% rename from Editor/Scripts/Shelves/icons/collisions.png rename to Assets/Editor/Scripts/Shelves/icons/collisions.png diff --git a/Editor/Scripts/Shelves/icons/create_ao_volume_box.png b/Assets/Editor/Scripts/Shelves/icons/create_ao_volume_box.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_ao_volume_box.png rename to Assets/Editor/Scripts/Shelves/icons/create_ao_volume_box.png diff --git a/Editor/Scripts/Shelves/icons/create_both_vis_box_envprobe.png b/Assets/Editor/Scripts/Shelves/icons/create_both_vis_box_envprobe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_both_vis_box_envprobe.png rename to Assets/Editor/Scripts/Shelves/icons/create_both_vis_box_envprobe.png diff --git a/Editor/Scripts/Shelves/icons/create_envprobe.png b/Assets/Editor/Scripts/Shelves/icons/create_envprobe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_envprobe.png rename to Assets/Editor/Scripts/Shelves/icons/create_envprobe.png diff --git a/Editor/Scripts/Shelves/icons/create_portal_box.png b/Assets/Editor/Scripts/Shelves/icons/create_portal_box.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_portal_box.png rename to Assets/Editor/Scripts/Shelves/icons/create_portal_box.png diff --git a/Editor/Scripts/Shelves/icons/create_vis_box.png b/Assets/Editor/Scripts/Shelves/icons/create_vis_box.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_vis_box.png rename to Assets/Editor/Scripts/Shelves/icons/create_vis_box.png diff --git a/Editor/Scripts/Shelves/icons/create_vis_box_and_portal_box.png b/Assets/Editor/Scripts/Shelves/icons/create_vis_box_and_portal_box.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_vis_box_and_portal_box.png rename to Assets/Editor/Scripts/Shelves/icons/create_vis_box_and_portal_box.png diff --git a/Editor/Scripts/Shelves/icons/create_vis_box_env_probe_and_portal.png b/Assets/Editor/Scripts/Shelves/icons/create_vis_box_env_probe_and_portal.png similarity index 100% rename from Editor/Scripts/Shelves/icons/create_vis_box_env_probe_and_portal.png rename to Assets/Editor/Scripts/Shelves/icons/create_vis_box_env_probe_and_portal.png diff --git a/Editor/Scripts/Shelves/icons/cubemap.png b/Assets/Editor/Scripts/Shelves/icons/cubemap.png similarity index 100% rename from Editor/Scripts/Shelves/icons/cubemap.png rename to Assets/Editor/Scripts/Shelves/icons/cubemap.png diff --git a/Editor/Scripts/Shelves/icons/decals.png b/Assets/Editor/Scripts/Shelves/icons/decals.png similarity index 100% rename from Editor/Scripts/Shelves/icons/decals.png rename to Assets/Editor/Scripts/Shelves/icons/decals.png diff --git a/Editor/Scripts/Shelves/icons/default_material.png b/Assets/Editor/Scripts/Shelves/icons/default_material.png similarity index 100% rename from Editor/Scripts/Shelves/icons/default_material.png rename to Assets/Editor/Scripts/Shelves/icons/default_material.png diff --git a/Editor/Scripts/Shelves/icons/default_material_with_normals.png b/Assets/Editor/Scripts/Shelves/icons/default_material_with_normals.png similarity index 100% rename from Editor/Scripts/Shelves/icons/default_material_with_normals.png rename to Assets/Editor/Scripts/Shelves/icons/default_material_with_normals.png diff --git a/Editor/Scripts/Shelves/icons/designer.png b/Assets/Editor/Scripts/Shelves/icons/designer.png similarity index 100% rename from Editor/Scripts/Shelves/icons/designer.png rename to Assets/Editor/Scripts/Shelves/icons/designer.png diff --git a/Editor/Scripts/Shelves/icons/diff_acc.png b/Assets/Editor/Scripts/Shelves/icons/diff_acc.png similarity index 100% rename from Editor/Scripts/Shelves/icons/diff_acc.png rename to Assets/Editor/Scripts/Shelves/icons/diff_acc.png diff --git a/Editor/Scripts/Shelves/icons/display_info.png b/Assets/Editor/Scripts/Shelves/icons/display_info.png similarity index 100% rename from Editor/Scripts/Shelves/icons/display_info.png rename to Assets/Editor/Scripts/Shelves/icons/display_info.png diff --git a/Editor/Scripts/Shelves/icons/dual_layer_mask.png b/Assets/Editor/Scripts/Shelves/icons/dual_layer_mask.png similarity index 100% rename from Editor/Scripts/Shelves/icons/dual_layer_mask.png rename to Assets/Editor/Scripts/Shelves/icons/dual_layer_mask.png diff --git a/Editor/Scripts/Shelves/icons/dynamiclights.png b/Assets/Editor/Scripts/Shelves/icons/dynamiclights.png similarity index 100% rename from Editor/Scripts/Shelves/icons/dynamiclights.png rename to Assets/Editor/Scripts/Shelves/icons/dynamiclights.png diff --git a/Editor/Scripts/Shelves/icons/entities.png b/Assets/Editor/Scripts/Shelves/icons/entities.png similarity index 100% rename from Editor/Scripts/Shelves/icons/entities.png rename to Assets/Editor/Scripts/Shelves/icons/entities.png diff --git a/Editor/Scripts/Shelves/icons/eye_adaptation_speed.png b/Assets/Editor/Scripts/Shelves/icons/eye_adaptation_speed.png similarity index 100% rename from Editor/Scripts/Shelves/icons/eye_adaptation_speed.png rename to Assets/Editor/Scripts/Shelves/icons/eye_adaptation_speed.png diff --git a/Editor/Scripts/Shelves/icons/fog.png b/Assets/Editor/Scripts/Shelves/icons/fog.png similarity index 100% rename from Editor/Scripts/Shelves/icons/fog.png rename to Assets/Editor/Scripts/Shelves/icons/fog.png diff --git a/Editor/Scripts/Shelves/icons/fogvolumes.png b/Assets/Editor/Scripts/Shelves/icons/fogvolumes.png similarity index 100% rename from Editor/Scripts/Shelves/icons/fogvolumes.png rename to Assets/Editor/Scripts/Shelves/icons/fogvolumes.png diff --git a/Editor/Scripts/Shelves/icons/freeze_particles.png b/Assets/Editor/Scripts/Shelves/icons/freeze_particles.png similarity index 100% rename from Editor/Scripts/Shelves/icons/freeze_particles.png rename to Assets/Editor/Scripts/Shelves/icons/freeze_particles.png diff --git a/Editor/Scripts/Shelves/icons/full_shading.png b/Assets/Editor/Scripts/Shelves/icons/full_shading.png similarity index 100% rename from Editor/Scripts/Shelves/icons/full_shading.png rename to Assets/Editor/Scripts/Shelves/icons/full_shading.png diff --git a/Editor/Scripts/Shelves/icons/gamma.png b/Assets/Editor/Scripts/Shelves/icons/gamma.png similarity index 100% rename from Editor/Scripts/Shelves/icons/gamma.png rename to Assets/Editor/Scripts/Shelves/icons/gamma.png diff --git a/Editor/Scripts/Shelves/icons/gi.png b/Assets/Editor/Scripts/Shelves/icons/gi.png similarity index 100% rename from Editor/Scripts/Shelves/icons/gi.png rename to Assets/Editor/Scripts/Shelves/icons/gi.png diff --git a/Editor/Scripts/Shelves/icons/lens_flare.png b/Assets/Editor/Scripts/Shelves/icons/lens_flare.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lens_flare.png rename to Assets/Editor/Scripts/Shelves/icons/lens_flare.png diff --git a/Editor/Scripts/Shelves/icons/lighting_only.png b/Assets/Editor/Scripts/Shelves/icons/lighting_only.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lighting_only.png rename to Assets/Editor/Scripts/Shelves/icons/lighting_only.png diff --git a/Editor/Scripts/Shelves/icons/lods.png b/Assets/Editor/Scripts/Shelves/icons/lods.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lods.png rename to Assets/Editor/Scripts/Shelves/icons/lods.png diff --git a/Editor/Scripts/Shelves/icons/lsao.png b/Assets/Editor/Scripts/Shelves/icons/lsao.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lsao.png rename to Assets/Editor/Scripts/Shelves/icons/lsao.png diff --git a/Editor/Scripts/Shelves/icons/lsao_toggle.png b/Assets/Editor/Scripts/Shelves/icons/lsao_toggle.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lsao_toggle.png rename to Assets/Editor/Scripts/Shelves/icons/lsao_toggle.png diff --git a/Editor/Scripts/Shelves/icons/lsro.png b/Assets/Editor/Scripts/Shelves/icons/lsro.png similarity index 100% rename from Editor/Scripts/Shelves/icons/lsro.png rename to Assets/Editor/Scripts/Shelves/icons/lsro.png diff --git a/Editor/Scripts/Shelves/icons/normals.png b/Assets/Editor/Scripts/Shelves/icons/normals.png similarity index 100% rename from Editor/Scripts/Shelves/icons/normals.png rename to Assets/Editor/Scripts/Shelves/icons/normals.png diff --git a/Editor/Scripts/Shelves/icons/normals_x.png b/Assets/Editor/Scripts/Shelves/icons/normals_x.png similarity index 100% rename from Editor/Scripts/Shelves/icons/normals_x.png rename to Assets/Editor/Scripts/Shelves/icons/normals_x.png diff --git a/Editor/Scripts/Shelves/icons/normals_y.png b/Assets/Editor/Scripts/Shelves/icons/normals_y.png similarity index 100% rename from Editor/Scripts/Shelves/icons/normals_y.png rename to Assets/Editor/Scripts/Shelves/icons/normals_y.png diff --git a/Editor/Scripts/Shelves/icons/normals_z.png b/Assets/Editor/Scripts/Shelves/icons/normals_z.png similarity index 100% rename from Editor/Scripts/Shelves/icons/normals_z.png rename to Assets/Editor/Scripts/Shelves/icons/normals_z.png diff --git a/Editor/Scripts/Shelves/icons/ocean.png b/Assets/Editor/Scripts/Shelves/icons/ocean.png similarity index 100% rename from Editor/Scripts/Shelves/icons/ocean.png rename to Assets/Editor/Scripts/Shelves/icons/ocean.png diff --git a/Editor/Scripts/Shelves/icons/particles.png b/Assets/Editor/Scripts/Shelves/icons/particles.png similarity index 100% rename from Editor/Scripts/Shelves/icons/particles.png rename to Assets/Editor/Scripts/Shelves/icons/particles.png diff --git a/Editor/Scripts/Shelves/icons/particles_bounds.png b/Assets/Editor/Scripts/Shelves/icons/particles_bounds.png similarity index 100% rename from Editor/Scripts/Shelves/icons/particles_bounds.png rename to Assets/Editor/Scripts/Shelves/icons/particles_bounds.png diff --git a/Editor/Scripts/Shelves/icons/particles_off.png b/Assets/Editor/Scripts/Shelves/icons/particles_off.png similarity index 100% rename from Editor/Scripts/Shelves/icons/particles_off.png rename to Assets/Editor/Scripts/Shelves/icons/particles_off.png diff --git a/Editor/Scripts/Shelves/icons/particles_overdraw.png b/Assets/Editor/Scripts/Shelves/icons/particles_overdraw.png similarity index 100% rename from Editor/Scripts/Shelves/icons/particles_overdraw.png rename to Assets/Editor/Scripts/Shelves/icons/particles_overdraw.png diff --git a/Editor/Scripts/Shelves/icons/particles_screen_coverage.png b/Assets/Editor/Scripts/Shelves/icons/particles_screen_coverage.png similarity index 100% rename from Editor/Scripts/Shelves/icons/particles_screen_coverage.png rename to Assets/Editor/Scripts/Shelves/icons/particles_screen_coverage.png diff --git a/Editor/Scripts/Shelves/icons/placeholder.png b/Assets/Editor/Scripts/Shelves/icons/placeholder.png similarity index 100% rename from Editor/Scripts/Shelves/icons/placeholder.png rename to Assets/Editor/Scripts/Shelves/icons/placeholder.png diff --git a/Editor/Scripts/Shelves/icons/prefab.png b/Assets/Editor/Scripts/Shelves/icons/prefab.png similarity index 100% rename from Editor/Scripts/Shelves/icons/prefab.png rename to Assets/Editor/Scripts/Shelves/icons/prefab.png diff --git a/Editor/Scripts/Shelves/icons/reflections.png b/Assets/Editor/Scripts/Shelves/icons/reflections.png similarity index 100% rename from Editor/Scripts/Shelves/icons/reflections.png rename to Assets/Editor/Scripts/Shelves/icons/reflections.png diff --git a/Editor/Scripts/Shelves/icons/reset.png b/Assets/Editor/Scripts/Shelves/icons/reset.png similarity index 100% rename from Editor/Scripts/Shelves/icons/reset.png rename to Assets/Editor/Scripts/Shelves/icons/reset.png diff --git a/Editor/Scripts/Shelves/icons/selfocc.png b/Assets/Editor/Scripts/Shelves/icons/selfocc.png similarity index 100% rename from Editor/Scripts/Shelves/icons/selfocc.png rename to Assets/Editor/Scripts/Shelves/icons/selfocc.png diff --git a/Editor/Scripts/Shelves/icons/shaded_wireframe.png b/Assets/Editor/Scripts/Shelves/icons/shaded_wireframe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/shaded_wireframe.png rename to Assets/Editor/Scripts/Shelves/icons/shaded_wireframe.png diff --git a/Editor/Scripts/Shelves/icons/shadows.png b/Assets/Editor/Scripts/Shelves/icons/shadows.png similarity index 100% rename from Editor/Scripts/Shelves/icons/shadows.png rename to Assets/Editor/Scripts/Shelves/icons/shadows.png diff --git a/Editor/Scripts/Shelves/icons/showlines.png b/Assets/Editor/Scripts/Shelves/icons/showlines.png similarity index 100% rename from Editor/Scripts/Shelves/icons/showlines.png rename to Assets/Editor/Scripts/Shelves/icons/showlines.png diff --git a/Editor/Scripts/Shelves/icons/sky.png b/Assets/Editor/Scripts/Shelves/icons/sky.png similarity index 100% rename from Editor/Scripts/Shelves/icons/sky.png rename to Assets/Editor/Scripts/Shelves/icons/sky.png diff --git a/Editor/Scripts/Shelves/icons/spec_acc.png b/Assets/Editor/Scripts/Shelves/icons/spec_acc.png similarity index 100% rename from Editor/Scripts/Shelves/icons/spec_acc.png rename to Assets/Editor/Scripts/Shelves/icons/spec_acc.png diff --git a/Editor/Scripts/Shelves/icons/spec_lum.png b/Assets/Editor/Scripts/Shelves/icons/spec_lum.png similarity index 100% rename from Editor/Scripts/Shelves/icons/spec_lum.png rename to Assets/Editor/Scripts/Shelves/icons/spec_lum.png diff --git a/Editor/Scripts/Shelves/icons/spec_occ.png b/Assets/Editor/Scripts/Shelves/icons/spec_occ.png similarity index 100% rename from Editor/Scripts/Shelves/icons/spec_occ.png rename to Assets/Editor/Scripts/Shelves/icons/spec_occ.png diff --git a/Editor/Scripts/Shelves/icons/ssao.png b/Assets/Editor/Scripts/Shelves/icons/ssao.png similarity index 100% rename from Editor/Scripts/Shelves/icons/ssao.png rename to Assets/Editor/Scripts/Shelves/icons/ssao.png diff --git a/Editor/Scripts/Shelves/icons/ssdo.png b/Assets/Editor/Scripts/Shelves/icons/ssdo.png similarity index 100% rename from Editor/Scripts/Shelves/icons/ssdo.png rename to Assets/Editor/Scripts/Shelves/icons/ssdo.png diff --git a/Editor/Scripts/Shelves/icons/ssdo_toggle.png b/Assets/Editor/Scripts/Shelves/icons/ssdo_toggle.png similarity index 100% rename from Editor/Scripts/Shelves/icons/ssdo_toggle.png rename to Assets/Editor/Scripts/Shelves/icons/ssdo_toggle.png diff --git a/Editor/Scripts/Shelves/icons/sun.big.png b/Assets/Editor/Scripts/Shelves/icons/sun.big.png similarity index 100% rename from Editor/Scripts/Shelves/icons/sun.big.png rename to Assets/Editor/Scripts/Shelves/icons/sun.big.png diff --git a/Editor/Scripts/Shelves/icons/tangents.png b/Assets/Editor/Scripts/Shelves/icons/tangents.png similarity index 100% rename from Editor/Scripts/Shelves/icons/tangents.png rename to Assets/Editor/Scripts/Shelves/icons/tangents.png diff --git a/Editor/Scripts/Shelves/icons/terrain.png b/Assets/Editor/Scripts/Shelves/icons/terrain.png similarity index 100% rename from Editor/Scripts/Shelves/icons/terrain.png rename to Assets/Editor/Scripts/Shelves/icons/terrain.png diff --git a/Editor/Scripts/Shelves/icons/time_scale_double.png b/Assets/Editor/Scripts/Shelves/icons/time_scale_double.png similarity index 100% rename from Editor/Scripts/Shelves/icons/time_scale_double.png rename to Assets/Editor/Scripts/Shelves/icons/time_scale_double.png diff --git a/Editor/Scripts/Shelves/icons/time_scale_frozen.png b/Assets/Editor/Scripts/Shelves/icons/time_scale_frozen.png similarity index 100% rename from Editor/Scripts/Shelves/icons/time_scale_frozen.png rename to Assets/Editor/Scripts/Shelves/icons/time_scale_frozen.png diff --git a/Editor/Scripts/Shelves/icons/time_scale_half.png b/Assets/Editor/Scripts/Shelves/icons/time_scale_half.png similarity index 100% rename from Editor/Scripts/Shelves/icons/time_scale_half.png rename to Assets/Editor/Scripts/Shelves/icons/time_scale_half.png diff --git a/Editor/Scripts/Shelves/icons/time_scale_quarter.png b/Assets/Editor/Scripts/Shelves/icons/time_scale_quarter.png similarity index 100% rename from Editor/Scripts/Shelves/icons/time_scale_quarter.png rename to Assets/Editor/Scripts/Shelves/icons/time_scale_quarter.png diff --git a/Editor/Scripts/Shelves/icons/time_scale_tenth.png b/Assets/Editor/Scripts/Shelves/icons/time_scale_tenth.png similarity index 100% rename from Editor/Scripts/Shelves/icons/time_scale_tenth.png rename to Assets/Editor/Scripts/Shelves/icons/time_scale_tenth.png diff --git a/Editor/Scripts/Shelves/icons/tod.png b/Assets/Editor/Scripts/Shelves/icons/tod.png similarity index 100% rename from Editor/Scripts/Shelves/icons/tod.png rename to Assets/Editor/Scripts/Shelves/icons/tod.png diff --git a/Editor/Scripts/Shelves/icons/translucency.png b/Assets/Editor/Scripts/Shelves/icons/translucency.png similarity index 100% rename from Editor/Scripts/Shelves/icons/translucency.png rename to Assets/Editor/Scripts/Shelves/icons/translucency.png diff --git a/Editor/Scripts/Shelves/icons/transparency.png b/Assets/Editor/Scripts/Shelves/icons/transparency.png similarity index 100% rename from Editor/Scripts/Shelves/icons/transparency.png rename to Assets/Editor/Scripts/Shelves/icons/transparency.png diff --git a/Editor/Scripts/Shelves/icons/valid_albedo.png b/Assets/Editor/Scripts/Shelves/icons/valid_albedo.png similarity index 100% rename from Editor/Scripts/Shelves/icons/valid_albedo.png rename to Assets/Editor/Scripts/Shelves/icons/valid_albedo.png diff --git a/Editor/Scripts/Shelves/icons/valid_spec_lum.png b/Assets/Editor/Scripts/Shelves/icons/valid_spec_lum.png similarity index 100% rename from Editor/Scripts/Shelves/icons/valid_spec_lum.png rename to Assets/Editor/Scripts/Shelves/icons/valid_spec_lum.png diff --git a/Editor/Scripts/Shelves/icons/vegetation.png b/Assets/Editor/Scripts/Shelves/icons/vegetation.png similarity index 100% rename from Editor/Scripts/Shelves/icons/vegetation.png rename to Assets/Editor/Scripts/Shelves/icons/vegetation.png diff --git a/Editor/Scripts/Shelves/icons/vertex_normals.png b/Assets/Editor/Scripts/Shelves/icons/vertex_normals.png similarity index 100% rename from Editor/Scripts/Shelves/icons/vertex_normals.png rename to Assets/Editor/Scripts/Shelves/icons/vertex_normals.png diff --git a/Editor/Scripts/Shelves/icons/vis_area.png b/Assets/Editor/Scripts/Shelves/icons/vis_area.png similarity index 100% rename from Editor/Scripts/Shelves/icons/vis_area.png rename to Assets/Editor/Scripts/Shelves/icons/vis_area.png diff --git a/Editor/Scripts/Shelves/icons/water_volume.png b/Assets/Editor/Scripts/Shelves/icons/water_volume.png similarity index 100% rename from Editor/Scripts/Shelves/icons/water_volume.png rename to Assets/Editor/Scripts/Shelves/icons/water_volume.png diff --git a/Editor/Scripts/Shelves/icons/wind.png b/Assets/Editor/Scripts/Shelves/icons/wind.png similarity index 100% rename from Editor/Scripts/Shelves/icons/wind.png rename to Assets/Editor/Scripts/Shelves/icons/wind.png diff --git a/Editor/Scripts/Shelves/icons/wireframe.png b/Assets/Editor/Scripts/Shelves/icons/wireframe.png similarity index 100% rename from Editor/Scripts/Shelves/icons/wireframe.png rename to Assets/Editor/Scripts/Shelves/icons/wireframe.png diff --git a/Editor/Scripts/TrackView/example.py b/Assets/Editor/Scripts/TrackView/example.py similarity index 100% rename from Editor/Scripts/TrackView/example.py rename to Assets/Editor/Scripts/TrackView/example.py diff --git a/Editor/Scripts/editor_script_validation.py b/Assets/Editor/Scripts/editor_script_validation.py similarity index 100% rename from Editor/Scripts/editor_script_validation.py rename to Assets/Editor/Scripts/editor_script_validation.py diff --git a/Editor/Scripts/export_all_project_levels.py b/Assets/Editor/Scripts/export_all_project_levels.py similarity index 100% rename from Editor/Scripts/export_all_project_levels.py rename to Assets/Editor/Scripts/export_all_project_levels.py diff --git a/Editor/Scripts/generatelod.py b/Assets/Editor/Scripts/generatelod.py similarity index 100% rename from Editor/Scripts/generatelod.py rename to Assets/Editor/Scripts/generatelod.py diff --git a/Editor/Scripts/rename_cgf.py b/Assets/Editor/Scripts/rename_cgf.py similarity index 100% rename from Editor/Scripts/rename_cgf.py rename to Assets/Editor/Scripts/rename_cgf.py diff --git a/Editor/Scripts/select_story_anim_objects.py b/Assets/Editor/Scripts/select_story_anim_objects.py similarity index 100% rename from Editor/Scripts/select_story_anim_objects.py rename to Assets/Editor/Scripts/select_story_anim_objects.py diff --git a/Editor/Scripts/tools_shelf_actions.py b/Assets/Editor/Scripts/tools_shelf_actions.py similarity index 100% rename from Editor/Scripts/tools_shelf_actions.py rename to Assets/Editor/Scripts/tools_shelf_actions.py diff --git a/Editor/SoundTemplates.xml b/Assets/Editor/SoundTemplates.xml similarity index 100% rename from Editor/SoundTemplates.xml rename to Assets/Editor/SoundTemplates.xml diff --git a/Editor/Styles/AssetImporterWindow.qss b/Assets/Editor/Styles/AssetImporterWindow.qss similarity index 100% rename from Editor/Styles/AssetImporterWindow.qss rename to Assets/Editor/Styles/AssetImporterWindow.qss diff --git a/Editor/Styles/AssetProcessor.qss b/Assets/Editor/Styles/AssetProcessor.qss similarity index 100% rename from Editor/Styles/AssetProcessor.qss rename to Assets/Editor/Styles/AssetProcessor.qss diff --git a/Editor/Styles/AssetProcessorGlobalStyleSheet.qss b/Assets/Editor/Styles/AssetProcessorGlobalStyleSheet.qss similarity index 100% rename from Editor/Styles/AssetProcessorGlobalStyleSheet.qss rename to Assets/Editor/Styles/AssetProcessorGlobalStyleSheet.qss diff --git a/Editor/Styles/AssetProcessorGlobalStyleSheetVariables.json b/Assets/Editor/Styles/AssetProcessorGlobalStyleSheetVariables.json similarity index 100% rename from Editor/Styles/AssetProcessorGlobalStyleSheetVariables.json rename to Assets/Editor/Styles/AssetProcessorGlobalStyleSheetVariables.json diff --git a/Editor/Styles/CryDark.cjstyles b/Assets/Editor/Styles/CryDark.cjstyles similarity index 100% rename from Editor/Styles/CryDark.cjstyles rename to Assets/Editor/Styles/CryDark.cjstyles diff --git a/Editor/Styles/CryLight.cjstyles b/Assets/Editor/Styles/CryLight.cjstyles similarity index 100% rename from Editor/Styles/CryLight.cjstyles rename to Assets/Editor/Styles/CryLight.cjstyles diff --git a/Editor/Styles/MultiMeshSelectionPane.qss b/Assets/Editor/Styles/MultiMeshSelectionPane.qss similarity index 100% rename from Editor/Styles/MultiMeshSelectionPane.qss rename to Assets/Editor/Styles/MultiMeshSelectionPane.qss diff --git a/Editor/Styles/Office2007.dll b/Assets/Editor/Styles/Office2007.dll similarity index 100% rename from Editor/Styles/Office2007.dll rename to Assets/Editor/Styles/Office2007.dll diff --git a/Editor/Styles/Office2007Black.dll b/Assets/Editor/Styles/Office2007Black.dll similarity index 100% rename from Editor/Styles/Office2007Black.dll rename to Assets/Editor/Styles/Office2007Black.dll diff --git a/Editor/Styles/Office2007Silver.dll b/Assets/Editor/Styles/Office2007Silver.dll similarity index 100% rename from Editor/Styles/Office2007Silver.dll rename to Assets/Editor/Styles/Office2007Silver.dll diff --git a/Editor/Styles/StyleSheetImages/Validation_icon.png b/Assets/Editor/Styles/StyleSheetImages/Validation_icon.png similarity index 100% rename from Editor/Styles/StyleSheetImages/Validation_icon.png rename to Assets/Editor/Styles/StyleSheetImages/Validation_icon.png diff --git a/Editor/Styles/StyleSheetImages/about_dark.png b/Assets/Editor/Styles/StyleSheetImages/about_dark.png similarity index 100% rename from Editor/Styles/StyleSheetImages/about_dark.png rename to Assets/Editor/Styles/StyleSheetImages/about_dark.png diff --git a/Editor/Styles/StyleSheetImages/about_light.png b/Assets/Editor/Styles/StyleSheetImages/about_light.png similarity index 100% rename from Editor/Styles/StyleSheetImages/about_light.png rename to Assets/Editor/Styles/StyleSheetImages/about_light.png diff --git a/Editor/Styles/StyleSheetImages/arrow_down_V2.png b/Assets/Editor/Styles/StyleSheetImages/arrow_down_V2.png similarity index 100% rename from Editor/Styles/StyleSheetImages/arrow_down_V2.png rename to Assets/Editor/Styles/StyleSheetImages/arrow_down_V2.png diff --git a/Editor/Styles/StyleSheetImages/arrow_left_V2.png b/Assets/Editor/Styles/StyleSheetImages/arrow_left_V2.png similarity index 100% rename from Editor/Styles/StyleSheetImages/arrow_left_V2.png rename to Assets/Editor/Styles/StyleSheetImages/arrow_left_V2.png diff --git a/Editor/Styles/StyleSheetImages/arrow_right_V2.png b/Assets/Editor/Styles/StyleSheetImages/arrow_right_V2.png similarity index 100% rename from Editor/Styles/StyleSheetImages/arrow_right_V2.png rename to Assets/Editor/Styles/StyleSheetImages/arrow_right_V2.png diff --git a/Editor/Styles/StyleSheetImages/arrow_up_V2.png b/Assets/Editor/Styles/StyleSheetImages/arrow_up_V2.png similarity index 100% rename from Editor/Styles/StyleSheetImages/arrow_up_V2.png rename to Assets/Editor/Styles/StyleSheetImages/arrow_up_V2.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_checked.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_checked.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_checked.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_checked.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_checked_disabled.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_checked_disabled.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_checked_disabled.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_checked_disabled.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_checked_hover.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_checked_hover.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_checked_hover.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_checked_hover.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_checked_pressed.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_checked_pressed.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_checked_pressed.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_checked_pressed.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_indeterminate_hover .png b/Assets/Editor/Styles/StyleSheetImages/checkbox_indeterminate_hover .png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_indeterminate_hover .png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_indeterminate_hover .png diff --git a/Editor/Styles/StyleSheetImages/checkbox_indeterminate_pressed.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_indeterminate_pressed.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_indeterminate_pressed.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_indeterminate_pressed.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_unchecked.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_unchecked.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_unchecked_disabled.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_disabled.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_unchecked_disabled.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_disabled.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_unchecked_hover.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_hover.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_unchecked_hover.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_hover.png diff --git a/Editor/Styles/StyleSheetImages/checkbox_unchecked_pressed.png b/Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_pressed.png similarity index 100% rename from Editor/Styles/StyleSheetImages/checkbox_unchecked_pressed.png rename to Assets/Editor/Styles/StyleSheetImages/checkbox_unchecked_pressed.png diff --git a/Editor/Styles/StyleSheetImages/dropdown_arrow.png b/Assets/Editor/Styles/StyleSheetImages/dropdown_arrow.png similarity index 100% rename from Editor/Styles/StyleSheetImages/dropdown_arrow.png rename to Assets/Editor/Styles/StyleSheetImages/dropdown_arrow.png diff --git a/Editor/Styles/StyleSheetImages/error_icon.png b/Assets/Editor/Styles/StyleSheetImages/error_icon.png similarity index 100% rename from Editor/Styles/StyleSheetImages/error_icon.png rename to Assets/Editor/Styles/StyleSheetImages/error_icon.png diff --git a/Editor/Styles/StyleSheetImages/help.png b/Assets/Editor/Styles/StyleSheetImages/help.png similarity index 100% rename from Editor/Styles/StyleSheetImages/help.png rename to Assets/Editor/Styles/StyleSheetImages/help.png diff --git a/Editor/Styles/StyleSheetImages/info_icon.png b/Assets/Editor/Styles/StyleSheetImages/info_icon.png similarity index 100% rename from Editor/Styles/StyleSheetImages/info_icon.png rename to Assets/Editor/Styles/StyleSheetImages/info_icon.png diff --git a/Editor/Styles/StyleSheetImages/radiobutton_checked.png b/Assets/Editor/Styles/StyleSheetImages/radiobutton_checked.png similarity index 100% rename from Editor/Styles/StyleSheetImages/radiobutton_checked.png rename to Assets/Editor/Styles/StyleSheetImages/radiobutton_checked.png diff --git a/Editor/Styles/StyleSheetImages/radiobutton_checked_disabled.png b/Assets/Editor/Styles/StyleSheetImages/radiobutton_checked_disabled.png similarity index 100% rename from Editor/Styles/StyleSheetImages/radiobutton_checked_disabled.png rename to Assets/Editor/Styles/StyleSheetImages/radiobutton_checked_disabled.png diff --git a/Editor/Styles/StyleSheetImages/radiobutton_unchecked.png b/Assets/Editor/Styles/StyleSheetImages/radiobutton_unchecked.png similarity index 100% rename from Editor/Styles/StyleSheetImages/radiobutton_unchecked.png rename to Assets/Editor/Styles/StyleSheetImages/radiobutton_unchecked.png diff --git a/Editor/Styles/StyleSheetImages/radiobutton_unchecked_disabled.png b/Assets/Editor/Styles/StyleSheetImages/radiobutton_unchecked_disabled.png similarity index 100% rename from Editor/Styles/StyleSheetImages/radiobutton_unchecked_disabled.png rename to Assets/Editor/Styles/StyleSheetImages/radiobutton_unchecked_disabled.png diff --git a/Editor/Styles/StyleSheetImages/spinbox_down.png b/Assets/Editor/Styles/StyleSheetImages/spinbox_down.png similarity index 100% rename from Editor/Styles/StyleSheetImages/spinbox_down.png rename to Assets/Editor/Styles/StyleSheetImages/spinbox_down.png diff --git a/Editor/Styles/StyleSheetImages/spinbox_up.png b/Assets/Editor/Styles/StyleSheetImages/spinbox_up.png similarity index 100% rename from Editor/Styles/StyleSheetImages/spinbox_up.png rename to Assets/Editor/Styles/StyleSheetImages/spinbox_up.png diff --git a/Editor/Styles/StyleSheetImages/treeview_arrow_down.png b/Assets/Editor/Styles/StyleSheetImages/treeview_arrow_down.png similarity index 100% rename from Editor/Styles/StyleSheetImages/treeview_arrow_down.png rename to Assets/Editor/Styles/StyleSheetImages/treeview_arrow_down.png diff --git a/Editor/Styles/StyleSheetImages/treeview_arrow_right.png b/Assets/Editor/Styles/StyleSheetImages/treeview_arrow_right.png similarity index 100% rename from Editor/Styles/StyleSheetImages/treeview_arrow_right.png rename to Assets/Editor/Styles/StyleSheetImages/treeview_arrow_right.png diff --git a/Editor/Styles/stylesheet_Dark.qss b/Assets/Editor/Styles/stylesheet_Dark.qss similarity index 100% rename from Editor/Styles/stylesheet_Dark.qss rename to Assets/Editor/Styles/stylesheet_Dark.qss diff --git a/Editor/Styles/stylesheet_Light.qss b/Assets/Editor/Styles/stylesheet_Light.qss similarity index 100% rename from Editor/Styles/stylesheet_Light.qss rename to Assets/Editor/Styles/stylesheet_Light.qss diff --git a/Editor/ToolBox.xml b/Assets/Editor/ToolBox.xml similarity index 100% rename from Editor/ToolBox.xml rename to Assets/Editor/ToolBox.xml diff --git a/Editor/Translation/scriptcanvas_en_us.ts b/Assets/Editor/Translation/scriptcanvas_en_us.ts similarity index 100% rename from Editor/Translation/scriptcanvas_en_us.ts rename to Assets/Editor/Translation/scriptcanvas_en_us.ts diff --git a/Editor/UI/AssetBrowserRibbon.xml b/Assets/Editor/UI/AssetBrowserRibbon.xml similarity index 100% rename from Editor/UI/AssetBrowserRibbon.xml rename to Assets/Editor/UI/AssetBrowserRibbon.xml diff --git a/Editor/UI/Icons/AddSel.png b/Assets/Editor/UI/Icons/AddSel.png similarity index 100% rename from Editor/UI/Icons/AddSel.png rename to Assets/Editor/UI/Icons/AddSel.png diff --git a/Editor/UI/Icons/AlObjGrid.png b/Assets/Editor/UI/Icons/AlObjGrid.png similarity index 100% rename from Editor/UI/Icons/AlObjGrid.png rename to Assets/Editor/UI/Icons/AlObjGrid.png diff --git a/Editor/UI/Icons/AlObjSurf.png b/Assets/Editor/UI/Icons/AlObjSurf.png similarity index 100% rename from Editor/UI/Icons/AlObjSurf.png rename to Assets/Editor/UI/Icons/AlObjSurf.png diff --git a/Editor/UI/Icons/AlSelect.png b/Assets/Editor/UI/Icons/AlSelect.png similarity index 100% rename from Editor/UI/Icons/AlSelect.png rename to Assets/Editor/UI/Icons/AlSelect.png diff --git a/Editor/UI/Icons/Animation Graph.png b/Assets/Editor/UI/Icons/Animation Graph.png similarity index 100% rename from Editor/UI/Icons/Animation Graph.png rename to Assets/Editor/UI/Icons/Animation Graph.png diff --git a/Editor/UI/Icons/Asset Browser.png b/Assets/Editor/UI/Icons/Asset Browser.png similarity index 100% rename from Editor/UI/Icons/Asset Browser.png rename to Assets/Editor/UI/Icons/Asset Browser.png diff --git a/Editor/UI/Icons/AssetBrowserCheckers.png b/Assets/Editor/UI/Icons/AssetBrowserCheckers.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserCheckers.png rename to Assets/Editor/UI/Icons/AssetBrowserCheckers.png diff --git a/Editor/UI/Icons/AssetBrowserFilterPresets.png b/Assets/Editor/UI/Icons/AssetBrowserFilterPresets.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserFilterPresets.png rename to Assets/Editor/UI/Icons/AssetBrowserFilterPresets.png diff --git a/Editor/UI/Icons/AssetBrowserFromViewportSel.png b/Assets/Editor/UI/Icons/AssetBrowserFromViewportSel.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserFromViewportSel.png rename to Assets/Editor/UI/Icons/AssetBrowserFromViewportSel.png diff --git a/Editor/UI/Icons/AssetBrowserRefresh.png b/Assets/Editor/UI/Icons/AssetBrowserRefresh.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserRefresh.png rename to Assets/Editor/UI/Icons/AssetBrowserRefresh.png diff --git a/Editor/UI/Icons/AssetBrowserSelectInViewport.png b/Assets/Editor/UI/Icons/AssetBrowserSelectInViewport.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserSelectInViewport.png rename to Assets/Editor/UI/Icons/AssetBrowserSelectInViewport.png diff --git a/Editor/UI/Icons/AssetBrowserSound.png b/Assets/Editor/UI/Icons/AssetBrowserSound.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserSound.png rename to Assets/Editor/UI/Icons/AssetBrowserSound.png diff --git a/Editor/UI/Icons/AssetBrowserThumbInvalid.png b/Assets/Editor/UI/Icons/AssetBrowserThumbInvalid.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserThumbInvalid.png rename to Assets/Editor/UI/Icons/AssetBrowserThumbInvalid.png diff --git a/Editor/UI/Icons/AssetBrowserThumbLoading.png b/Assets/Editor/UI/Icons/AssetBrowserThumbLoading.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserThumbLoading.png rename to Assets/Editor/UI/Icons/AssetBrowserThumbLoading.png diff --git a/Editor/UI/Icons/AssetBrowserTooltipShadow.png b/Assets/Editor/UI/Icons/AssetBrowserTooltipShadow.png similarity index 100% rename from Editor/UI/Icons/AssetBrowserTooltipShadow.png rename to Assets/Editor/UI/Icons/AssetBrowserTooltipShadow.png diff --git a/Editor/UI/Icons/AssetFav.png b/Assets/Editor/UI/Icons/AssetFav.png similarity index 100% rename from Editor/UI/Icons/AssetFav.png rename to Assets/Editor/UI/Icons/AssetFav.png diff --git a/Editor/UI/Icons/AssetTag.png b/Assets/Editor/UI/Icons/AssetTag.png similarity index 100% rename from Editor/UI/Icons/AssetTag.png rename to Assets/Editor/UI/Icons/AssetTag.png diff --git a/Editor/UI/Icons/Attach.png b/Assets/Editor/UI/Icons/Attach.png similarity index 100% rename from Editor/UI/Icons/Attach.png rename to Assets/Editor/UI/Icons/Attach.png diff --git a/Editor/UI/Icons/AutoSync.png b/Assets/Editor/UI/Icons/AutoSync.png similarity index 100% rename from Editor/UI/Icons/AutoSync.png rename to Assets/Editor/UI/Icons/AutoSync.png diff --git a/Editor/UI/Icons/Character Tool.png b/Assets/Editor/UI/Icons/Character Tool.png similarity index 100% rename from Editor/UI/Icons/Character Tool.png rename to Assets/Editor/UI/Icons/Character Tool.png diff --git a/Editor/UI/Icons/Clone.png b/Assets/Editor/UI/Icons/Clone.png similarity index 100% rename from Editor/UI/Icons/Clone.png rename to Assets/Editor/UI/Icons/Clone.png diff --git a/Editor/UI/Icons/CloseGroup.png b/Assets/Editor/UI/Icons/CloseGroup.png similarity index 100% rename from Editor/UI/Icons/CloseGroup.png rename to Assets/Editor/UI/Icons/CloseGroup.png diff --git a/Editor/UI/Icons/Cloud.png b/Assets/Editor/UI/Icons/Cloud.png similarity index 100% rename from Editor/UI/Icons/Cloud.png rename to Assets/Editor/UI/Icons/Cloud.png diff --git a/Editor/UI/Icons/ConOpt.png b/Assets/Editor/UI/Icons/ConOpt.png similarity index 100% rename from Editor/UI/Icons/ConOpt.png rename to Assets/Editor/UI/Icons/ConOpt.png diff --git a/Editor/UI/Icons/ConvertSelToBrushes.png b/Assets/Editor/UI/Icons/ConvertSelToBrushes.png similarity index 100% rename from Editor/UI/Icons/ConvertSelToBrushes.png rename to Assets/Editor/UI/Icons/ConvertSelToBrushes.png diff --git a/Editor/UI/Icons/ConvertSelToDesigner.png b/Assets/Editor/UI/Icons/ConvertSelToDesigner.png similarity index 100% rename from Editor/UI/Icons/ConvertSelToDesigner.png rename to Assets/Editor/UI/Icons/ConvertSelToDesigner.png diff --git a/Editor/UI/Icons/ConvertSelToSimpleEntity.png b/Assets/Editor/UI/Icons/ConvertSelToSimpleEntity.png similarity index 100% rename from Editor/UI/Icons/ConvertSelToSimpleEntity.png rename to Assets/Editor/UI/Icons/ConvertSelToSimpleEntity.png diff --git a/Editor/UI/Icons/ConvertSelToStaticEntity.png b/Assets/Editor/UI/Icons/ConvertSelToStaticEntity.png similarity index 100% rename from Editor/UI/Icons/ConvertSelToStaticEntity.png rename to Assets/Editor/UI/Icons/ConvertSelToStaticEntity.png diff --git a/Editor/UI/Icons/Database View.png b/Assets/Editor/UI/Icons/Database View.png similarity index 100% rename from Editor/UI/Icons/Database View.png rename to Assets/Editor/UI/Icons/Database View.png diff --git a/Editor/UI/Icons/DelSel.png b/Assets/Editor/UI/Icons/DelSel.png similarity index 100% rename from Editor/UI/Icons/DelSel.png rename to Assets/Editor/UI/Icons/DelSel.png diff --git a/Editor/UI/Icons/Delete.png b/Assets/Editor/UI/Icons/Delete.png similarity index 100% rename from Editor/UI/Icons/Delete.png rename to Assets/Editor/UI/Icons/Delete.png diff --git a/Editor/UI/Icons/Detach.png b/Assets/Editor/UI/Icons/Detach.png similarity index 100% rename from Editor/UI/Icons/Detach.png rename to Assets/Editor/UI/Icons/Detach.png diff --git a/Editor/UI/Icons/Dialog Editor.png b/Assets/Editor/UI/Icons/Dialog Editor.png similarity index 100% rename from Editor/UI/Icons/Dialog Editor.png rename to Assets/Editor/UI/Icons/Dialog Editor.png diff --git a/Editor/UI/Icons/Edit Terrain Lighting.png b/Assets/Editor/UI/Icons/Edit Terrain Lighting.png similarity index 100% rename from Editor/UI/Icons/Edit Terrain Lighting.png rename to Assets/Editor/UI/Icons/Edit Terrain Lighting.png diff --git a/Editor/UI/Icons/Edit Vegetation.png b/Assets/Editor/UI/Icons/Edit Vegetation.png similarity index 100% rename from Editor/UI/Icons/Edit Vegetation.png rename to Assets/Editor/UI/Icons/Edit Vegetation.png diff --git a/Editor/UI/Icons/Editor Settings Manager.png b/Assets/Editor/UI/Icons/Editor Settings Manager.png similarity index 100% rename from Editor/UI/Icons/Editor Settings Manager.png rename to Assets/Editor/UI/Icons/Editor Settings Manager.png diff --git a/Editor/UI/Icons/Error Report.png b/Assets/Editor/UI/Icons/Error Report.png similarity index 100% rename from Editor/UI/Icons/Error Report.png rename to Assets/Editor/UI/Icons/Error Report.png diff --git a/Editor/UI/Icons/Export Block.png b/Assets/Editor/UI/Icons/Export Block.png similarity index 100% rename from Editor/UI/Icons/Export Block.png rename to Assets/Editor/UI/Icons/Export Block.png diff --git a/Editor/UI/Icons/Facial Editor.png b/Assets/Editor/UI/Icons/Facial Editor.png similarity index 100% rename from Editor/UI/Icons/Facial Editor.png rename to Assets/Editor/UI/Icons/Facial Editor.png diff --git a/Editor/UI/Icons/Fetch.png b/Assets/Editor/UI/Icons/Fetch.png similarity index 100% rename from Editor/UI/Icons/Fetch.png rename to Assets/Editor/UI/Icons/Fetch.png diff --git a/Editor/UI/Icons/Flatten Terrain.png b/Assets/Editor/UI/Icons/Flatten Terrain.png similarity index 100% rename from Editor/UI/Icons/Flatten Terrain.png rename to Assets/Editor/UI/Icons/Flatten Terrain.png diff --git a/Editor/UI/Icons/Follow.png b/Assets/Editor/UI/Icons/Follow.png similarity index 100% rename from Editor/UI/Icons/Follow.png rename to Assets/Editor/UI/Icons/Follow.png diff --git a/Editor/UI/Icons/FollowSnap.png b/Assets/Editor/UI/Icons/FollowSnap.png similarity index 100% rename from Editor/UI/Icons/FollowSnap.png rename to Assets/Editor/UI/Icons/FollowSnap.png diff --git a/Editor/UI/Icons/ForceSyncLevelToConsole.png b/Assets/Editor/UI/Icons/ForceSyncLevelToConsole.png similarity index 100% rename from Editor/UI/Icons/ForceSyncLevelToConsole.png rename to Assets/Editor/UI/Icons/ForceSyncLevelToConsole.png diff --git a/Editor/UI/Icons/Freeze.png b/Assets/Editor/UI/Icons/Freeze.png similarity index 100% rename from Editor/UI/Icons/Freeze.png rename to Assets/Editor/UI/Icons/Freeze.png diff --git a/Editor/UI/Icons/Front.png b/Assets/Editor/UI/Icons/Front.png similarity index 100% rename from Editor/UI/Icons/Front.png rename to Assets/Editor/UI/Icons/Front.png diff --git a/Editor/UI/Icons/GetPhysics.png b/Assets/Editor/UI/Icons/GetPhysics.png similarity index 100% rename from Editor/UI/Icons/GetPhysics.png rename to Assets/Editor/UI/Icons/GetPhysics.png diff --git a/Editor/UI/Icons/GoToObj.png b/Assets/Editor/UI/Icons/GoToObj.png similarity index 100% rename from Editor/UI/Icons/GoToObj.png rename to Assets/Editor/UI/Icons/GoToObj.png diff --git a/Editor/UI/Icons/GotoTagPoint.png b/Assets/Editor/UI/Icons/GotoTagPoint.png similarity index 100% rename from Editor/UI/Icons/GotoTagPoint.png rename to Assets/Editor/UI/Icons/GotoTagPoint.png diff --git a/Editor/UI/Icons/Group.png b/Assets/Editor/UI/Icons/Group.png similarity index 100% rename from Editor/UI/Icons/Group.png rename to Assets/Editor/UI/Icons/Group.png diff --git a/Editor/UI/Icons/Hide.png b/Assets/Editor/UI/Icons/Hide.png similarity index 100% rename from Editor/UI/Icons/Hide.png rename to Assets/Editor/UI/Icons/Hide.png diff --git a/Editor/UI/Icons/Hold.png b/Assets/Editor/UI/Icons/Hold.png similarity index 100% rename from Editor/UI/Icons/Hold.png rename to Assets/Editor/UI/Icons/Hold.png diff --git a/Editor/UI/Icons/Import Block.png b/Assets/Editor/UI/Icons/Import Block.png similarity index 100% rename from Editor/UI/Icons/Import Block.png rename to Assets/Editor/UI/Icons/Import Block.png diff --git a/Editor/UI/Icons/ImportExport Terrain Texture.png b/Assets/Editor/UI/Icons/ImportExport Terrain Texture.png similarity index 100% rename from Editor/UI/Icons/ImportExport Terrain Texture.png rename to Assets/Editor/UI/Icons/ImportExport Terrain Texture.png diff --git a/Editor/UI/Icons/Invert.png b/Assets/Editor/UI/Icons/Invert.png similarity index 100% rename from Editor/UI/Icons/Invert.png rename to Assets/Editor/UI/Icons/Invert.png diff --git a/Editor/UI/Icons/LNM Editor.png b/Assets/Editor/UI/Icons/LNM Editor.png similarity index 100% rename from Editor/UI/Icons/LNM Editor.png rename to Assets/Editor/UI/Icons/LNM Editor.png diff --git a/Editor/UI/Icons/LaunchLevel.png b/Assets/Editor/UI/Icons/LaunchLevel.png similarity index 100% rename from Editor/UI/Icons/LaunchLevel.png rename to Assets/Editor/UI/Icons/LaunchLevel.png diff --git a/Editor/UI/Icons/Layer Editor.png b/Assets/Editor/UI/Icons/Layer Editor.png similarity index 100% rename from Editor/UI/Icons/Layer Editor.png rename to Assets/Editor/UI/Icons/Layer Editor.png diff --git a/Editor/UI/Icons/Layer.png b/Assets/Editor/UI/Icons/Layer.png similarity index 100% rename from Editor/UI/Icons/Layer.png rename to Assets/Editor/UI/Icons/Layer.png diff --git a/Editor/UI/Icons/Left.png b/Assets/Editor/UI/Icons/Left.png similarity index 100% rename from Editor/UI/Icons/Left.png rename to Assets/Editor/UI/Icons/Left.png diff --git a/Editor/UI/Icons/Lighting Tool.png b/Assets/Editor/UI/Icons/Lighting Tool.png similarity index 100% rename from Editor/UI/Icons/Lighting Tool.png rename to Assets/Editor/UI/Icons/Lighting Tool.png diff --git a/Editor/UI/Icons/Link.png b/Assets/Editor/UI/Icons/Link.png similarity index 100% rename from Editor/UI/Icons/Link.png rename to Assets/Editor/UI/Icons/Link.png diff --git a/Editor/UI/Icons/LoadGameLevel.png b/Assets/Editor/UI/Icons/LoadGameLevel.png similarity index 100% rename from Editor/UI/Icons/LoadGameLevel.png rename to Assets/Editor/UI/Icons/LoadGameLevel.png diff --git a/Editor/UI/Icons/LoadGameLevel_16x16.png b/Assets/Editor/UI/Icons/LoadGameLevel_16x16.png similarity index 100% rename from Editor/UI/Icons/LoadGameLevel_16x16.png rename to Assets/Editor/UI/Icons/LoadGameLevel_16x16.png diff --git a/Editor/UI/Icons/LoadLevel.png b/Assets/Editor/UI/Icons/LoadLevel.png similarity index 100% rename from Editor/UI/Icons/LoadLevel.png rename to Assets/Editor/UI/Icons/LoadLevel.png diff --git a/Editor/UI/Icons/LoadSelObj.png b/Assets/Editor/UI/Icons/LoadSelObj.png similarity index 100% rename from Editor/UI/Icons/LoadSelObj.png rename to Assets/Editor/UI/Icons/LoadSelObj.png diff --git a/Editor/UI/Icons/LoadSelObj_16x16.png b/Assets/Editor/UI/Icons/LoadSelObj_16x16.png similarity index 100% rename from Editor/UI/Icons/LoadSelObj_16x16.png rename to Assets/Editor/UI/Icons/LoadSelObj_16x16.png diff --git a/Editor/UI/Icons/MakePref.png b/Assets/Editor/UI/Icons/MakePref.png similarity index 100% rename from Editor/UI/Icons/MakePref.png rename to Assets/Editor/UI/Icons/MakePref.png diff --git a/Editor/UI/Icons/Mannequin Editor.png b/Assets/Editor/UI/Icons/Mannequin Editor.png similarity index 100% rename from Editor/UI/Icons/Mannequin Editor.png rename to Assets/Editor/UI/Icons/Mannequin Editor.png diff --git a/Editor/UI/Icons/Mannequin.png b/Assets/Editor/UI/Icons/Mannequin.png similarity index 100% rename from Editor/UI/Icons/Mannequin.png rename to Assets/Editor/UI/Icons/Mannequin.png diff --git a/Editor/UI/Icons/Map.png b/Assets/Editor/UI/Icons/Map.png similarity index 100% rename from Editor/UI/Icons/Map.png rename to Assets/Editor/UI/Icons/Map.png diff --git a/Editor/UI/Icons/Material Editor.png b/Assets/Editor/UI/Icons/Material Editor.png similarity index 100% rename from Editor/UI/Icons/Material Editor.png rename to Assets/Editor/UI/Icons/Material Editor.png diff --git a/Editor/UI/Icons/Material_Editor_16x16.png b/Assets/Editor/UI/Icons/Material_Editor_16x16.png similarity index 100% rename from Editor/UI/Icons/Material_Editor_16x16.png rename to Assets/Editor/UI/Icons/Material_Editor_16x16.png diff --git a/Editor/UI/Icons/Measurement System Tool.png b/Assets/Editor/UI/Icons/Measurement System Tool.png similarity index 100% rename from Editor/UI/Icons/Measurement System Tool.png rename to Assets/Editor/UI/Icons/Measurement System Tool.png diff --git a/Editor/UI/Icons/Missing Asset Resolver.png b/Assets/Editor/UI/Icons/Missing Asset Resolver.png similarity index 100% rename from Editor/UI/Icons/Missing Asset Resolver.png rename to Assets/Editor/UI/Icons/Missing Asset Resolver.png diff --git a/Editor/UI/Icons/Model Preview.png b/Assets/Editor/UI/Icons/Model Preview.png similarity index 100% rename from Editor/UI/Icons/Model Preview.png rename to Assets/Editor/UI/Icons/Model Preview.png diff --git a/Editor/UI/Icons/Modular Editor.png b/Assets/Editor/UI/Icons/Modular Editor.png similarity index 100% rename from Editor/UI/Icons/Modular Editor.png rename to Assets/Editor/UI/Icons/Modular Editor.png diff --git a/Editor/UI/Icons/Move.png b/Assets/Editor/UI/Icons/Move.png similarity index 100% rename from Editor/UI/Icons/Move.png rename to Assets/Editor/UI/Icons/Move.png diff --git a/Editor/UI/Icons/NavContinuousUpdate.png b/Assets/Editor/UI/Icons/NavContinuousUpdate.png similarity index 100% rename from Editor/UI/Icons/NavContinuousUpdate.png rename to Assets/Editor/UI/Icons/NavContinuousUpdate.png diff --git a/Editor/UI/Icons/NavContinuousUpdate2.png b/Assets/Editor/UI/Icons/NavContinuousUpdate2.png similarity index 100% rename from Editor/UI/Icons/NavContinuousUpdate2.png rename to Assets/Editor/UI/Icons/NavContinuousUpdate2.png diff --git a/Editor/UI/Icons/NavDebugDisplay.png b/Assets/Editor/UI/Icons/NavDebugDisplay.png similarity index 100% rename from Editor/UI/Icons/NavDebugDisplay.png rename to Assets/Editor/UI/Icons/NavDebugDisplay.png diff --git a/Editor/UI/Icons/NavNewArea.png b/Assets/Editor/UI/Icons/NavNewArea.png similarity index 100% rename from Editor/UI/Icons/NavNewArea.png rename to Assets/Editor/UI/Icons/NavNewArea.png diff --git a/Editor/UI/Icons/NavNewSeed.png b/Assets/Editor/UI/Icons/NavNewSeed.png similarity index 100% rename from Editor/UI/Icons/NavNewSeed.png rename to Assets/Editor/UI/Icons/NavNewSeed.png diff --git a/Editor/UI/Icons/NavShowAreas.png b/Assets/Editor/UI/Icons/NavShowAreas.png similarity index 100% rename from Editor/UI/Icons/NavShowAreas.png rename to Assets/Editor/UI/Icons/NavShowAreas.png diff --git a/Editor/UI/Icons/NavShowAreas2.png b/Assets/Editor/UI/Icons/NavShowAreas2.png similarity index 100% rename from Editor/UI/Icons/NavShowAreas2.png rename to Assets/Editor/UI/Icons/NavShowAreas2.png diff --git a/Editor/UI/Icons/OpenGroup.png b/Assets/Editor/UI/Icons/OpenGroup.png similarity index 100% rename from Editor/UI/Icons/OpenGroup.png rename to Assets/Editor/UI/Icons/OpenGroup.png diff --git a/Editor/UI/Icons/Perspective.png b/Assets/Editor/UI/Icons/Perspective.png similarity index 100% rename from Editor/UI/Icons/Perspective.png rename to Assets/Editor/UI/Icons/Perspective.png diff --git a/Editor/UI/Icons/QCollapsePanel/collapsed.png b/Assets/Editor/UI/Icons/QCollapsePanel/collapsed.png similarity index 100% rename from Editor/UI/Icons/QCollapsePanel/collapsed.png rename to Assets/Editor/UI/Icons/QCollapsePanel/collapsed.png diff --git a/Editor/UI/Icons/QCollapsePanel/open.png b/Assets/Editor/UI/Icons/QCollapsePanel/open.png similarity index 100% rename from Editor/UI/Icons/QCollapsePanel/open.png rename to Assets/Editor/UI/Icons/QCollapsePanel/open.png diff --git a/Editor/UI/Icons/QEditorCollapseGroup/arrow_down_V2.png b/Assets/Editor/UI/Icons/QEditorCollapseGroup/arrow_down_V2.png similarity index 100% rename from Editor/UI/Icons/QEditorCollapseGroup/arrow_down_V2.png rename to Assets/Editor/UI/Icons/QEditorCollapseGroup/arrow_down_V2.png diff --git a/Editor/UI/Icons/QEditorCollapseGroup/arrow_right_V2.png b/Assets/Editor/UI/Icons/QEditorCollapseGroup/arrow_right_V2.png similarity index 100% rename from Editor/UI/Icons/QEditorCollapseGroup/arrow_right_V2.png rename to Assets/Editor/UI/Icons/QEditorCollapseGroup/arrow_right_V2.png diff --git a/Editor/UI/Icons/Redo.png b/Assets/Editor/UI/Icons/Redo.png similarity index 100% rename from Editor/UI/Icons/Redo.png rename to Assets/Editor/UI/Icons/Redo.png diff --git a/Editor/UI/Icons/RefCoord.png b/Assets/Editor/UI/Icons/RefCoord.png similarity index 100% rename from Editor/UI/Icons/RefCoord.png rename to Assets/Editor/UI/Icons/RefCoord.png diff --git a/Editor/UI/Icons/Reload Terrain-.png b/Assets/Editor/UI/Icons/Reload Terrain-.png similarity index 100% rename from Editor/UI/Icons/Reload Terrain-.png rename to Assets/Editor/UI/Icons/Reload Terrain-.png diff --git a/Editor/UI/Icons/Reload Terrain.png b/Assets/Editor/UI/Icons/Reload Terrain.png similarity index 100% rename from Editor/UI/Icons/Reload Terrain.png rename to Assets/Editor/UI/Icons/Reload Terrain.png diff --git a/Editor/UI/Icons/ReloadAll.png b/Assets/Editor/UI/Icons/ReloadAll.png similarity index 100% rename from Editor/UI/Icons/ReloadAll.png rename to Assets/Editor/UI/Icons/ReloadAll.png diff --git a/Editor/UI/Icons/Rename.png b/Assets/Editor/UI/Icons/Rename.png similarity index 100% rename from Editor/UI/Icons/Rename.png rename to Assets/Editor/UI/Icons/Rename.png diff --git a/Editor/UI/Icons/ResetPhysics.png b/Assets/Editor/UI/Icons/ResetPhysics.png similarity index 100% rename from Editor/UI/Icons/ResetPhysics.png rename to Assets/Editor/UI/Icons/ResetPhysics.png diff --git a/Editor/UI/Icons/Resize Terrain.png b/Assets/Editor/UI/Icons/Resize Terrain.png similarity index 100% rename from Editor/UI/Icons/Resize Terrain.png rename to Assets/Editor/UI/Icons/Resize Terrain.png diff --git a/Editor/UI/Icons/Rotate.png b/Assets/Editor/UI/Icons/Rotate.png similarity index 100% rename from Editor/UI/Icons/Rotate.png rename to Assets/Editor/UI/Icons/Rotate.png diff --git a/Editor/UI/Icons/Ruler.png b/Assets/Editor/UI/Icons/Ruler.png similarity index 100% rename from Editor/UI/Icons/Ruler.png rename to Assets/Editor/UI/Icons/Ruler.png diff --git a/Editor/UI/Icons/Save as Geometry.png b/Assets/Editor/UI/Icons/Save as Geometry.png similarity index 100% rename from Editor/UI/Icons/Save as Geometry.png rename to Assets/Editor/UI/Icons/Save as Geometry.png diff --git a/Editor/UI/Icons/SaveGameLevel.png b/Assets/Editor/UI/Icons/SaveGameLevel.png similarity index 100% rename from Editor/UI/Icons/SaveGameLevel.png rename to Assets/Editor/UI/Icons/SaveGameLevel.png diff --git a/Editor/UI/Icons/SaveSelObj.png b/Assets/Editor/UI/Icons/SaveSelObj.png similarity index 100% rename from Editor/UI/Icons/SaveSelObj.png rename to Assets/Editor/UI/Icons/SaveSelObj.png diff --git a/Editor/UI/Icons/SaveTagPoint.png b/Assets/Editor/UI/Icons/SaveTagPoint.png similarity index 100% rename from Editor/UI/Icons/SaveTagPoint.png rename to Assets/Editor/UI/Icons/SaveTagPoint.png diff --git a/Editor/UI/Icons/Scale.png b/Assets/Editor/UI/Icons/Scale.png similarity index 100% rename from Editor/UI/Icons/Scale.png rename to Assets/Editor/UI/Icons/Scale.png diff --git a/Editor/UI/Icons/SelObjType.png b/Assets/Editor/UI/Icons/SelObjType.png similarity index 100% rename from Editor/UI/Icons/SelObjType.png rename to Assets/Editor/UI/Icons/SelObjType.png diff --git a/Editor/UI/Icons/Select Objects.png b/Assets/Editor/UI/Icons/Select Objects.png similarity index 100% rename from Editor/UI/Icons/Select Objects.png rename to Assets/Editor/UI/Icons/Select Objects.png diff --git a/Editor/UI/Icons/Select.png b/Assets/Editor/UI/Icons/Select.png similarity index 100% rename from Editor/UI/Icons/Select.png rename to Assets/Editor/UI/Icons/Select.png diff --git a/Editor/UI/Icons/SelectAll.png b/Assets/Editor/UI/Icons/SelectAll.png similarity index 100% rename from Editor/UI/Icons/SelectAll.png rename to Assets/Editor/UI/Icons/SelectAll.png diff --git a/Editor/UI/Icons/SelectNone.png b/Assets/Editor/UI/Icons/SelectNone.png similarity index 100% rename from Editor/UI/Icons/SelectNone.png rename to Assets/Editor/UI/Icons/SelectNone.png diff --git a/Editor/UI/Icons/SelectObjects.png b/Assets/Editor/UI/Icons/SelectObjects.png similarity index 100% rename from Editor/UI/Icons/SelectObjects.png rename to Assets/Editor/UI/Icons/SelectObjects.png diff --git a/Editor/UI/Icons/SelectTerrainArea.png b/Assets/Editor/UI/Icons/SelectTerrainArea.png similarity index 100% rename from Editor/UI/Icons/SelectTerrainArea.png rename to Assets/Editor/UI/Icons/SelectTerrainArea.png diff --git a/Editor/UI/Icons/SelectionMask.bmp b/Assets/Editor/UI/Icons/SelectionMask.bmp similarity index 100% rename from Editor/UI/Icons/SelectionMask.bmp rename to Assets/Editor/UI/Icons/SelectionMask.bmp diff --git a/Editor/UI/Icons/SetHeight.png b/Assets/Editor/UI/Icons/SetHeight.png similarity index 100% rename from Editor/UI/Icons/SetHeight.png rename to Assets/Editor/UI/Icons/SetHeight.png diff --git a/Editor/UI/Icons/ShowRollup.png b/Assets/Editor/UI/Icons/ShowRollup.png similarity index 100% rename from Editor/UI/Icons/ShowRollup.png rename to Assets/Editor/UI/Icons/ShowRollup.png diff --git a/Editor/UI/Icons/SimObj.png b/Assets/Editor/UI/Icons/SimObj.png similarity index 100% rename from Editor/UI/Icons/SimObj.png rename to Assets/Editor/UI/Icons/SimObj.png diff --git a/Editor/UI/Icons/Smart Objects Editor.png b/Assets/Editor/UI/Icons/Smart Objects Editor.png similarity index 100% rename from Editor/UI/Icons/Smart Objects Editor.png rename to Assets/Editor/UI/Icons/Smart Objects Editor.png diff --git a/Editor/UI/Icons/Smooth Terrain.png b/Assets/Editor/UI/Icons/Smooth Terrain.png similarity index 100% rename from Editor/UI/Icons/Smooth Terrain.png rename to Assets/Editor/UI/Icons/Smooth Terrain.png diff --git a/Editor/UI/Icons/SnapAngle.png b/Assets/Editor/UI/Icons/SnapAngle.png similarity index 100% rename from Editor/UI/Icons/SnapAngle.png rename to Assets/Editor/UI/Icons/SnapAngle.png diff --git a/Editor/UI/Icons/SnapGrid.png b/Assets/Editor/UI/Icons/SnapGrid.png similarity index 100% rename from Editor/UI/Icons/SnapGrid.png rename to Assets/Editor/UI/Icons/SnapGrid.png diff --git a/Editor/UI/Icons/SyncCamera.png b/Assets/Editor/UI/Icons/SyncCamera.png similarity index 100% rename from Editor/UI/Icons/SyncCamera.png rename to Assets/Editor/UI/Icons/SyncCamera.png diff --git a/Editor/UI/Icons/SyncData.png b/Assets/Editor/UI/Icons/SyncData.png similarity index 100% rename from Editor/UI/Icons/SyncData.png rename to Assets/Editor/UI/Icons/SyncData.png diff --git a/Editor/UI/Icons/Terrain Editor.png b/Assets/Editor/UI/Icons/Terrain Editor.png similarity index 100% rename from Editor/UI/Icons/Terrain Editor.png rename to Assets/Editor/UI/Icons/Terrain Editor.png diff --git a/Editor/UI/Icons/Terrain Texture Layers.png b/Assets/Editor/UI/Icons/Terrain Texture Layers.png similarity index 100% rename from Editor/UI/Icons/Terrain Texture Layers.png rename to Assets/Editor/UI/Icons/Terrain Texture Layers.png diff --git a/Editor/UI/Icons/Time of Day.png b/Assets/Editor/UI/Icons/Time of Day.png similarity index 100% rename from Editor/UI/Icons/Time of Day.png rename to Assets/Editor/UI/Icons/Time of Day.png diff --git a/Editor/UI/Icons/Top.png b/Assets/Editor/UI/Icons/Top.png similarity index 100% rename from Editor/UI/Icons/Top.png rename to Assets/Editor/UI/Icons/Top.png diff --git a/Editor/UI/Icons/Track View.png b/Assets/Editor/UI/Icons/Track View.png similarity index 100% rename from Editor/UI/Icons/Track View.png rename to Assets/Editor/UI/Icons/Track View.png diff --git a/Editor/UI/Icons/UI Emulator.png b/Assets/Editor/UI/Icons/UI Emulator.png similarity index 100% rename from Editor/UI/Icons/UI Emulator.png rename to Assets/Editor/UI/Icons/UI Emulator.png diff --git a/Editor/UI/Icons/Undo.png b/Assets/Editor/UI/Icons/Undo.png similarity index 100% rename from Editor/UI/Icons/Undo.png rename to Assets/Editor/UI/Icons/Undo.png diff --git a/Editor/UI/Icons/Unfreeze.png b/Assets/Editor/UI/Icons/Unfreeze.png similarity index 100% rename from Editor/UI/Icons/Unfreeze.png rename to Assets/Editor/UI/Icons/Unfreeze.png diff --git a/Editor/UI/Icons/Ungroup.png b/Assets/Editor/UI/Icons/Ungroup.png similarity index 100% rename from Editor/UI/Icons/Ungroup.png rename to Assets/Editor/UI/Icons/Ungroup.png diff --git a/Editor/UI/Icons/UnhideAll.png b/Assets/Editor/UI/Icons/UnhideAll.png similarity index 100% rename from Editor/UI/Icons/UnhideAll.png rename to Assets/Editor/UI/Icons/UnhideAll.png diff --git a/Editor/UI/Icons/UnhideAll_32.png b/Assets/Editor/UI/Icons/UnhideAll_32.png similarity index 100% rename from Editor/UI/Icons/UnhideAll_32.png rename to Assets/Editor/UI/Icons/UnhideAll_32.png diff --git a/Editor/UI/Icons/Unlink.png b/Assets/Editor/UI/Icons/Unlink.png similarity index 100% rename from Editor/UI/Icons/Unlink.png rename to Assets/Editor/UI/Icons/Unlink.png diff --git a/Editor/UI/Icons/UploadFilesToConsole.png b/Assets/Editor/UI/Icons/UploadFilesToConsole.png similarity index 100% rename from Editor/UI/Icons/UploadFilesToConsole.png rename to Assets/Editor/UI/Icons/UploadFilesToConsole.png diff --git a/Editor/UI/Icons/Vehicle Editor.png b/Assets/Editor/UI/Icons/Vehicle Editor.png similarity index 100% rename from Editor/UI/Icons/Vehicle Editor.png rename to Assets/Editor/UI/Icons/Vehicle Editor.png diff --git a/Editor/UI/Icons/VertexSnapping.png b/Assets/Editor/UI/Icons/VertexSnapping.png similarity index 100% rename from Editor/UI/Icons/VertexSnapping.png rename to Assets/Editor/UI/Icons/VertexSnapping.png diff --git a/Editor/UI/Icons/Visual Log Viewer.png b/Assets/Editor/UI/Icons/Visual Log Viewer.png similarity index 100% rename from Editor/UI/Icons/Visual Log Viewer.png rename to Assets/Editor/UI/Icons/Visual Log Viewer.png diff --git a/Editor/UI/Icons/VisualBudgetSystemAnalyzeOne.png b/Assets/Editor/UI/Icons/VisualBudgetSystemAnalyzeOne.png similarity index 100% rename from Editor/UI/Icons/VisualBudgetSystemAnalyzeOne.png rename to Assets/Editor/UI/Icons/VisualBudgetSystemAnalyzeOne.png diff --git a/Editor/UI/Icons/VisualBudgetSystemShow.png b/Assets/Editor/UI/Icons/VisualBudgetSystemShow.png similarity index 100% rename from Editor/UI/Icons/VisualBudgetSystemShow.png rename to Assets/Editor/UI/Icons/VisualBudgetSystemShow.png diff --git a/Editor/UI/Icons/VisualizeNavigationAccessibility.png b/Assets/Editor/UI/Icons/VisualizeNavigationAccessibility.png similarity index 100% rename from Editor/UI/Icons/VisualizeNavigationAccessibility.png rename to Assets/Editor/UI/Icons/VisualizeNavigationAccessibility.png diff --git a/Editor/UI/Icons/XAxis.png b/Assets/Editor/UI/Icons/XAxis.png similarity index 100% rename from Editor/UI/Icons/XAxis.png rename to Assets/Editor/UI/Icons/XAxis.png diff --git a/Editor/UI/Icons/XYAxis.png b/Assets/Editor/UI/Icons/XYAxis.png similarity index 100% rename from Editor/UI/Icons/XYAxis.png rename to Assets/Editor/UI/Icons/XYAxis.png diff --git a/Editor/UI/Icons/YAxis.png b/Assets/Editor/UI/Icons/YAxis.png similarity index 100% rename from Editor/UI/Icons/YAxis.png rename to Assets/Editor/UI/Icons/YAxis.png diff --git a/Editor/UI/Icons/Z View.png b/Assets/Editor/UI/Icons/Z View.png similarity index 100% rename from Editor/UI/Icons/Z View.png rename to Assets/Editor/UI/Icons/Z View.png diff --git a/Editor/UI/Icons/ZAxis.png b/Assets/Editor/UI/Icons/ZAxis.png similarity index 100% rename from Editor/UI/Icons/ZAxis.png rename to Assets/Editor/UI/Icons/ZAxis.png diff --git a/Editor/UI/Icons/asset_animated_geom.png b/Assets/Editor/UI/Icons/asset_animated_geom.png similarity index 100% rename from Editor/UI/Icons/asset_animated_geom.png rename to Assets/Editor/UI/Icons/asset_animated_geom.png diff --git a/Editor/UI/Icons/asset_character.png b/Assets/Editor/UI/Icons/asset_character.png similarity index 100% rename from Editor/UI/Icons/asset_character.png rename to Assets/Editor/UI/Icons/asset_character.png diff --git a/Editor/UI/Icons/asset_material.png b/Assets/Editor/UI/Icons/asset_material.png similarity index 100% rename from Editor/UI/Icons/asset_material.png rename to Assets/Editor/UI/Icons/asset_material.png diff --git a/Editor/UI/Icons/asset_missing_thumb.png b/Assets/Editor/UI/Icons/asset_missing_thumb.png similarity index 100% rename from Editor/UI/Icons/asset_missing_thumb.png rename to Assets/Editor/UI/Icons/asset_missing_thumb.png diff --git a/Editor/UI/Icons/asset_model.png b/Assets/Editor/UI/Icons/asset_model.png similarity index 100% rename from Editor/UI/Icons/asset_model.png rename to Assets/Editor/UI/Icons/asset_model.png diff --git a/Editor/UI/Icons/asset_sound.png b/Assets/Editor/UI/Icons/asset_sound.png similarity index 100% rename from Editor/UI/Icons/asset_sound.png rename to Assets/Editor/UI/Icons/asset_sound.png diff --git a/Editor/UI/Icons/asset_texture.png b/Assets/Editor/UI/Icons/asset_texture.png similarity index 100% rename from Editor/UI/Icons/asset_texture.png rename to Assets/Editor/UI/Icons/asset_texture.png diff --git a/Editor/UI/Icons/mann_clip.png b/Assets/Editor/UI/Icons/mann_clip.png similarity index 100% rename from Editor/UI/Icons/mann_clip.png rename to Assets/Editor/UI/Icons/mann_clip.png diff --git a/Editor/UI/Icons/mann_folder.png b/Assets/Editor/UI/Icons/mann_folder.png similarity index 100% rename from Editor/UI/Icons/mann_folder.png rename to Assets/Editor/UI/Icons/mann_folder.png diff --git a/Editor/UI/Icons/mann_tag.png b/Assets/Editor/UI/Icons/mann_tag.png similarity index 100% rename from Editor/UI/Icons/mann_tag.png rename to Assets/Editor/UI/Icons/mann_tag.png diff --git a/Editor/UI/Icons/toolbar/Load_Icon.png b/Assets/Editor/UI/Icons/toolbar/Load_Icon.png similarity index 100% rename from Editor/UI/Icons/toolbar/Load_Icon.png rename to Assets/Editor/UI/Icons/toolbar/Load_Icon.png diff --git a/Editor/UI/Icons/toolbar/itemAdd.png b/Assets/Editor/UI/Icons/toolbar/itemAdd.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemAdd.png rename to Assets/Editor/UI/Icons/toolbar/itemAdd.png diff --git a/Editor/UI/Icons/toolbar/itemAssign.png b/Assets/Editor/UI/Icons/toolbar/itemAssign.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemAssign.png rename to Assets/Editor/UI/Icons/toolbar/itemAssign.png diff --git a/Editor/UI/Icons/toolbar/itemClone.png b/Assets/Editor/UI/Icons/toolbar/itemClone.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemClone.png rename to Assets/Editor/UI/Icons/toolbar/itemClone.png diff --git a/Editor/UI/Icons/toolbar/itemGetProperties.png b/Assets/Editor/UI/Icons/toolbar/itemGetProperties.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemGetProperties.png rename to Assets/Editor/UI/Icons/toolbar/itemGetProperties.png diff --git a/Editor/UI/Icons/toolbar/itemReload.png b/Assets/Editor/UI/Icons/toolbar/itemReload.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemReload.png rename to Assets/Editor/UI/Icons/toolbar/itemReload.png diff --git a/Editor/UI/Icons/toolbar/itemRemove.png b/Assets/Editor/UI/Icons/toolbar/itemRemove.png similarity index 100% rename from Editor/UI/Icons/toolbar/itemRemove.png rename to Assets/Editor/UI/Icons/toolbar/itemRemove.png diff --git a/Editor/UI/Icons/toolbar/libraryAdd.png b/Assets/Editor/UI/Icons/toolbar/libraryAdd.png similarity index 100% rename from Editor/UI/Icons/toolbar/libraryAdd.png rename to Assets/Editor/UI/Icons/toolbar/libraryAdd.png diff --git a/Editor/UI/Icons/toolbar/libraryLoad.png b/Assets/Editor/UI/Icons/toolbar/libraryLoad.png similarity index 100% rename from Editor/UI/Icons/toolbar/libraryLoad.png rename to Assets/Editor/UI/Icons/toolbar/libraryLoad.png diff --git a/Editor/UI/Icons/toolbar/libraryReload.png b/Assets/Editor/UI/Icons/toolbar/libraryReload.png similarity index 100% rename from Editor/UI/Icons/toolbar/libraryReload.png rename to Assets/Editor/UI/Icons/toolbar/libraryReload.png diff --git a/Editor/UI/Icons/toolbar/libraryRemove.png b/Assets/Editor/UI/Icons/toolbar/libraryRemove.png similarity index 100% rename from Editor/UI/Icons/toolbar/libraryRemove.png rename to Assets/Editor/UI/Icons/toolbar/libraryRemove.png diff --git a/Editor/UI/Icons/toolbar/librarySave.png b/Assets/Editor/UI/Icons/toolbar/librarySave.png similarity index 100% rename from Editor/UI/Icons/toolbar/librarySave.png rename to Assets/Editor/UI/Icons/toolbar/librarySave.png diff --git a/Editor/UI/Icons/toolbar/particleSpecialActivate.png b/Assets/Editor/UI/Icons/toolbar/particleSpecialActivate.png similarity index 100% rename from Editor/UI/Icons/toolbar/particleSpecialActivate.png rename to Assets/Editor/UI/Icons/toolbar/particleSpecialActivate.png diff --git a/Editor/UI/Icons/toolbar/particleSpecialReset.png b/Assets/Editor/UI/Icons/toolbar/particleSpecialReset.png similarity index 100% rename from Editor/UI/Icons/toolbar/particleSpecialReset.png rename to Assets/Editor/UI/Icons/toolbar/particleSpecialReset.png diff --git a/Editor/UI/Icons/toolbar/standardCopy.png b/Assets/Editor/UI/Icons/toolbar/standardCopy.png similarity index 100% rename from Editor/UI/Icons/toolbar/standardCopy.png rename to Assets/Editor/UI/Icons/toolbar/standardCopy.png diff --git a/Editor/UI/Icons/toolbar/standardPaste.png b/Assets/Editor/UI/Icons/toolbar/standardPaste.png similarity index 100% rename from Editor/UI/Icons/toolbar/standardPaste.png rename to Assets/Editor/UI/Icons/toolbar/standardPaste.png diff --git a/Editor/UI/Icons/toolbar/standardRedo.png b/Assets/Editor/UI/Icons/toolbar/standardRedo.png similarity index 100% rename from Editor/UI/Icons/toolbar/standardRedo.png rename to Assets/Editor/UI/Icons/toolbar/standardRedo.png diff --git a/Editor/UI/Icons/toolbar/standardUndo.png b/Assets/Editor/UI/Icons/toolbar/standardUndo.png similarity index 100% rename from Editor/UI/Icons/toolbar/standardUndo.png rename to Assets/Editor/UI/Icons/toolbar/standardUndo.png diff --git a/Editor/UI/Icons/treeview/ParticleEditor/empty_icon.png b/Assets/Editor/UI/Icons/treeview/ParticleEditor/empty_icon.png similarity index 100% rename from Editor/UI/Icons/treeview/ParticleEditor/empty_icon.png rename to Assets/Editor/UI/Icons/treeview/ParticleEditor/empty_icon.png diff --git a/Editor/UI/Icons/treeview/ParticleEditor/group_icon.png b/Assets/Editor/UI/Icons/treeview/ParticleEditor/group_icon.png similarity index 100% rename from Editor/UI/Icons/treeview/ParticleEditor/group_icon.png rename to Assets/Editor/UI/Icons/treeview/ParticleEditor/group_icon.png diff --git a/Editor/UI/Icons/treeview/ParticleEditor/group_with_lod_icon.png b/Assets/Editor/UI/Icons/treeview/ParticleEditor/group_with_lod_icon.png similarity index 100% rename from Editor/UI/Icons/treeview/ParticleEditor/group_with_lod_icon.png rename to Assets/Editor/UI/Icons/treeview/ParticleEditor/group_with_lod_icon.png diff --git a/Editor/UI/Icons/treeview/ParticleEditor/lod_icon.png b/Assets/Editor/UI/Icons/treeview/ParticleEditor/lod_icon.png similarity index 100% rename from Editor/UI/Icons/treeview/ParticleEditor/lod_icon.png rename to Assets/Editor/UI/Icons/treeview/ParticleEditor/lod_icon.png diff --git a/Editor/UI/Icons/treeview/group.png b/Assets/Editor/UI/Icons/treeview/group.png similarity index 100% rename from Editor/UI/Icons/treeview/group.png rename to Assets/Editor/UI/Icons/treeview/group.png diff --git a/Editor/UI/Icons/treeview/group_inactive.png b/Assets/Editor/UI/Icons/treeview/group_inactive.png similarity index 100% rename from Editor/UI/Icons/treeview/group_inactive.png rename to Assets/Editor/UI/Icons/treeview/group_inactive.png diff --git a/Editor/UI/Icons/treeview/item.png b/Assets/Editor/UI/Icons/treeview/item.png similarity index 100% rename from Editor/UI/Icons/treeview/item.png rename to Assets/Editor/UI/Icons/treeview/item.png diff --git a/Editor/UI/Icons/treeview/item_inactive.png b/Assets/Editor/UI/Icons/treeview/item_inactive.png similarity index 100% rename from Editor/UI/Icons/treeview/item_inactive.png rename to Assets/Editor/UI/Icons/treeview/item_inactive.png diff --git a/Editor/UI/WipFeatures.xml b/Assets/Editor/UI/WipFeatures.xml similarity index 100% rename from Editor/UI/WipFeatures.xml rename to Assets/Editor/UI/WipFeatures.xml diff --git a/Editor/UI/releaseTranslations.py b/Assets/Editor/UI/releaseTranslations.py similarity index 100% rename from Editor/UI/releaseTranslations.py rename to Assets/Editor/UI/releaseTranslations.py diff --git a/Editor/UI/removeTranslationFiles.py b/Assets/Editor/UI/removeTranslationFiles.py similarity index 100% rename from Editor/UI/removeTranslationFiles.py rename to Assets/Editor/UI/removeTranslationFiles.py diff --git a/Editor/UI/updateTranslatableText.py b/Assets/Editor/UI/updateTranslatableText.py similarity index 100% rename from Editor/UI/updateTranslatableText.py rename to Assets/Editor/UI/updateTranslatableText.py diff --git a/Editor/UserTools.xml b/Assets/Editor/UserTools.xml similarity index 100% rename from Editor/UserTools.xml rename to Assets/Editor/UserTools.xml diff --git a/Editor/asset_thumbnail.tod b/Assets/Editor/asset_thumbnail.tod similarity index 100% rename from Editor/asset_thumbnail.tod rename to Assets/Editor/asset_thumbnail.tod diff --git a/Editor/default_time_of_day.xml b/Assets/Editor/default_time_of_day.xml similarity index 100% rename from Editor/default_time_of_day.xml rename to Assets/Editor/default_time_of_day.xml diff --git a/Editor/uiCanvasEditorResolutionPresets.xml b/Assets/Editor/uiCanvasEditorResolutionPresets.xml similarity index 100% rename from Editor/uiCanvasEditorResolutionPresets.xml rename to Assets/Editor/uiCanvasEditorResolutionPresets.xml diff --git a/Engine/Config/AutoTestChain.cfg b/Assets/Engine/Config/AutoTestChain.cfg similarity index 100% rename from Engine/Config/AutoTestChain.cfg rename to Assets/Engine/Config/AutoTestChain.cfg diff --git a/Engine/Config/AutoTestTimeDemo.cfg b/Assets/Engine/Config/AutoTestTimeDemo.cfg similarity index 100% rename from Engine/Config/AutoTestTimeDemo.cfg rename to Assets/Engine/Config/AutoTestTimeDemo.cfg diff --git a/Engine/Config/AutotestPlaythrough.cfg b/Assets/Engine/Config/AutotestPlaythrough.cfg similarity index 100% rename from Engine/Config/AutotestPlaythrough.cfg rename to Assets/Engine/Config/AutotestPlaythrough.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Full.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Full.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Full.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Full.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_GameEffects.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_GameEffects.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_GameEffects.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_GameEffects.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_ObjectDetail.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_ObjectDetail.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_ObjectDetail.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_ObjectDetail.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Particles.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Particles.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Particles.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Particles.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Physics.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Physics.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Physics.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Physics.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_PostProcessing.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_PostProcessing.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_PostProcessing.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_PostProcessing.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Quality.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Quality.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Quality.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Quality.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Shading.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Shading.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Shading.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Shading.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Shadows.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Shadows.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Shadows.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Shadows.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Sound.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Sound.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Sound.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Sound.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Texture.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Texture.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Texture.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Texture.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_TextureResolution.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_TextureResolution.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_TextureResolution.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_TextureResolution.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_VolumetricEffects.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_VolumetricEffects.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_VolumetricEffects.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_VolumetricEffects.cfg diff --git a/Engine/Config/CVarGroups/sys_spec_Water.cfg b/Assets/Engine/Config/CVarGroups/sys_spec_Water.cfg similarity index 100% rename from Engine/Config/CVarGroups/sys_spec_Water.cfg rename to Assets/Engine/Config/CVarGroups/sys_spec_Water.cfg diff --git a/Engine/Config/HDD_cache.xml b/Assets/Engine/Config/HDD_cache.xml similarity index 100% rename from Engine/Config/HDD_cache.xml rename to Assets/Engine/Config/HDD_cache.xml diff --git a/Engine/Config/PerfHud_PC.xml b/Assets/Engine/Config/PerfHud_PC.xml similarity index 100% rename from Engine/Config/PerfHud_PC.xml rename to Assets/Engine/Config/PerfHud_PC.xml diff --git a/Engine/Config/aidebug.cfg b/Assets/Engine/Config/aidebug.cfg similarity index 100% rename from Engine/Config/aidebug.cfg rename to Assets/Engine/Config/aidebug.cfg diff --git a/Engine/Config/artprof.cfg b/Assets/Engine/Config/artprof.cfg similarity index 100% rename from Engine/Config/artprof.cfg rename to Assets/Engine/Config/artprof.cfg diff --git a/Engine/Config/artprof_user.cfg b/Assets/Engine/Config/artprof_user.cfg similarity index 100% rename from Engine/Config/artprof_user.cfg rename to Assets/Engine/Config/artprof_user.cfg diff --git a/Engine/Config/benchmark_cpu.cfg b/Assets/Engine/Config/benchmark_cpu.cfg similarity index 100% rename from Engine/Config/benchmark_cpu.cfg rename to Assets/Engine/Config/benchmark_cpu.cfg diff --git a/Engine/Config/benchmark_gpu.cfg b/Assets/Engine/Config/benchmark_gpu.cfg similarity index 100% rename from Engine/Config/benchmark_gpu.cfg rename to Assets/Engine/Config/benchmark_gpu.cfg diff --git a/Engine/Config/config.dat b/Assets/Engine/Config/config.dat similarity index 100% rename from Engine/Config/config.dat rename to Assets/Engine/Config/config.dat diff --git a/Engine/Config/engine_core.thread_config b/Assets/Engine/Config/engine_core.thread_config similarity index 100% rename from Engine/Config/engine_core.thread_config rename to Assets/Engine/Config/engine_core.thread_config diff --git a/Engine/Config/engine_sandbox.thread_config b/Assets/Engine/Config/engine_sandbox.thread_config similarity index 100% rename from Engine/Config/engine_sandbox.thread_config rename to Assets/Engine/Config/engine_sandbox.thread_config diff --git a/Engine/Config/gpu/amd.txt b/Assets/Engine/Config/gpu/amd.txt similarity index 100% rename from Engine/Config/gpu/amd.txt rename to Assets/Engine/Config/gpu/amd.txt diff --git a/Engine/Config/gpu/android_gpus.xml b/Assets/Engine/Config/gpu/android_gpus.xml similarity index 100% rename from Engine/Config/gpu/android_gpus.xml rename to Assets/Engine/Config/gpu/android_gpus.xml diff --git a/Engine/Config/gpu/android_models.xml b/Assets/Engine/Config/gpu/android_models.xml similarity index 100% rename from Engine/Config/gpu/android_models.xml rename to Assets/Engine/Config/gpu/android_models.xml diff --git a/Engine/Config/gpu/intel.txt b/Assets/Engine/Config/gpu/intel.txt similarity index 100% rename from Engine/Config/gpu/intel.txt rename to Assets/Engine/Config/gpu/intel.txt diff --git a/Engine/Config/gpu/ios_models.xml b/Assets/Engine/Config/gpu/ios_models.xml similarity index 100% rename from Engine/Config/gpu/ios_models.xml rename to Assets/Engine/Config/gpu/ios_models.xml diff --git a/Engine/Config/gpu/nvidia.txt b/Assets/Engine/Config/gpu/nvidia.txt similarity index 100% rename from Engine/Config/gpu/nvidia.txt rename to Assets/Engine/Config/gpu/nvidia.txt diff --git a/Engine/Config/mgpu.cfg b/Assets/Engine/Config/mgpu.cfg similarity index 100% rename from Engine/Config/mgpu.cfg rename to Assets/Engine/Config/mgpu.cfg diff --git a/Engine/Config/multiplayer.cfg b/Assets/Engine/Config/multiplayer.cfg similarity index 100% rename from Engine/Config/multiplayer.cfg rename to Assets/Engine/Config/multiplayer.cfg diff --git a/Engine/Config/multiplayer_console.cfg b/Assets/Engine/Config/multiplayer_console.cfg similarity index 100% rename from Engine/Config/multiplayer_console.cfg rename to Assets/Engine/Config/multiplayer_console.cfg diff --git a/Engine/Config/multiplayer_pc.cfg b/Assets/Engine/Config/multiplayer_pc.cfg similarity index 100% rename from Engine/Config/multiplayer_pc.cfg rename to Assets/Engine/Config/multiplayer_pc.cfg diff --git a/Engine/Config/performance.cfg b/Assets/Engine/Config/performance.cfg similarity index 100% rename from Engine/Config/performance.cfg rename to Assets/Engine/Config/performance.cfg diff --git a/Engine/Config/recording.cfg b/Assets/Engine/Config/recording.cfg similarity index 100% rename from Engine/Config/recording.cfg rename to Assets/Engine/Config/recording.cfg diff --git a/Engine/Config/singleplayer.cfg b/Assets/Engine/Config/singleplayer.cfg similarity index 100% rename from Engine/Config/singleplayer.cfg rename to Assets/Engine/Config/singleplayer.cfg diff --git a/Engine/Config/sketch_off.cfg b/Assets/Engine/Config/sketch_off.cfg similarity index 100% rename from Engine/Config/sketch_off.cfg rename to Assets/Engine/Config/sketch_off.cfg diff --git a/Engine/Config/sketch_on.cfg b/Assets/Engine/Config/sketch_on.cfg similarity index 100% rename from Engine/Config/sketch_on.cfg rename to Assets/Engine/Config/sketch_on.cfg diff --git a/Engine/Config/spec/android_MaliT760.cfg b/Assets/Engine/Config/spec/android_MaliT760.cfg similarity index 100% rename from Engine/Config/spec/android_MaliT760.cfg rename to Assets/Engine/Config/spec/android_MaliT760.cfg diff --git a/Engine/Config/spec/android_high.cfg b/Assets/Engine/Config/spec/android_high.cfg similarity index 100% rename from Engine/Config/spec/android_high.cfg rename to Assets/Engine/Config/spec/android_high.cfg diff --git a/Engine/Config/spec/android_high_nogmem.cfg b/Assets/Engine/Config/spec/android_high_nogmem.cfg similarity index 100% rename from Engine/Config/spec/android_high_nogmem.cfg rename to Assets/Engine/Config/spec/android_high_nogmem.cfg diff --git a/Engine/Config/spec/android_low.cfg b/Assets/Engine/Config/spec/android_low.cfg similarity index 100% rename from Engine/Config/spec/android_low.cfg rename to Assets/Engine/Config/spec/android_low.cfg diff --git a/Engine/Config/spec/android_medium.cfg b/Assets/Engine/Config/spec/android_medium.cfg similarity index 100% rename from Engine/Config/spec/android_medium.cfg rename to Assets/Engine/Config/spec/android_medium.cfg diff --git a/Engine/Config/spec/android_veryhigh.cfg b/Assets/Engine/Config/spec/android_veryhigh.cfg similarity index 100% rename from Engine/Config/spec/android_veryhigh.cfg rename to Assets/Engine/Config/spec/android_veryhigh.cfg diff --git a/Engine/Config/spec/ios_high.cfg b/Assets/Engine/Config/spec/ios_high.cfg similarity index 100% rename from Engine/Config/spec/ios_high.cfg rename to Assets/Engine/Config/spec/ios_high.cfg diff --git a/Engine/Config/spec/ios_low.cfg b/Assets/Engine/Config/spec/ios_low.cfg similarity index 100% rename from Engine/Config/spec/ios_low.cfg rename to Assets/Engine/Config/spec/ios_low.cfg diff --git a/Engine/Config/spec/ios_medium.cfg b/Assets/Engine/Config/spec/ios_medium.cfg similarity index 100% rename from Engine/Config/spec/ios_medium.cfg rename to Assets/Engine/Config/spec/ios_medium.cfg diff --git a/Engine/Config/spec/ios_veryhigh.cfg b/Assets/Engine/Config/spec/ios_veryhigh.cfg similarity index 100% rename from Engine/Config/spec/ios_veryhigh.cfg rename to Assets/Engine/Config/spec/ios_veryhigh.cfg diff --git a/Engine/Config/spec/osx_metal_high.cfg b/Assets/Engine/Config/spec/osx_metal_high.cfg similarity index 100% rename from Engine/Config/spec/osx_metal_high.cfg rename to Assets/Engine/Config/spec/osx_metal_high.cfg diff --git a/Engine/Config/spec/osx_metal_low.cfg b/Assets/Engine/Config/spec/osx_metal_low.cfg similarity index 100% rename from Engine/Config/spec/osx_metal_low.cfg rename to Assets/Engine/Config/spec/osx_metal_low.cfg diff --git a/Engine/Config/spec/osx_metal_medium.cfg b/Assets/Engine/Config/spec/osx_metal_medium.cfg similarity index 100% rename from Engine/Config/spec/osx_metal_medium.cfg rename to Assets/Engine/Config/spec/osx_metal_medium.cfg diff --git a/Engine/Config/spec/osx_metal_veryhigh.cfg b/Assets/Engine/Config/spec/osx_metal_veryhigh.cfg similarity index 100% rename from Engine/Config/spec/osx_metal_veryhigh.cfg rename to Assets/Engine/Config/spec/osx_metal_veryhigh.cfg diff --git a/Engine/Config/spec/pc_high.cfg b/Assets/Engine/Config/spec/pc_high.cfg similarity index 100% rename from Engine/Config/spec/pc_high.cfg rename to Assets/Engine/Config/spec/pc_high.cfg diff --git a/Engine/Config/spec/pc_low.cfg b/Assets/Engine/Config/spec/pc_low.cfg similarity index 100% rename from Engine/Config/spec/pc_low.cfg rename to Assets/Engine/Config/spec/pc_low.cfg diff --git a/Engine/Config/spec/pc_medium.cfg b/Assets/Engine/Config/spec/pc_medium.cfg similarity index 100% rename from Engine/Config/spec/pc_medium.cfg rename to Assets/Engine/Config/spec/pc_medium.cfg diff --git a/Engine/Config/spec/pc_veryhigh.cfg b/Assets/Engine/Config/spec/pc_veryhigh.cfg similarity index 100% rename from Engine/Config/spec/pc_veryhigh.cfg rename to Assets/Engine/Config/spec/pc_veryhigh.cfg diff --git a/Engine/Config/statoscope.cfg b/Assets/Engine/Config/statoscope.cfg similarity index 100% rename from Engine/Config/statoscope.cfg rename to Assets/Engine/Config/statoscope.cfg diff --git a/Engine/Config/user.cfg b/Assets/Engine/Config/user.cfg similarity index 100% rename from Engine/Config/user.cfg rename to Assets/Engine/Config/user.cfg diff --git a/Engine/Config/vid_capture_reset.cfg b/Assets/Engine/Config/vid_capture_reset.cfg similarity index 100% rename from Engine/Config/vid_capture_reset.cfg rename to Assets/Engine/Config/vid_capture_reset.cfg diff --git a/Engine/Config/vid_capture_setup.cfg b/Assets/Engine/Config/vid_capture_setup.cfg similarity index 100% rename from Engine/Config/vid_capture_setup.cfg rename to Assets/Engine/Config/vid_capture_setup.cfg diff --git a/Engine/Config/vid_capture_start.cfg b/Assets/Engine/Config/vid_capture_start.cfg similarity index 100% rename from Engine/Config/vid_capture_start.cfg rename to Assets/Engine/Config/vid_capture_start.cfg diff --git a/Engine/Config/vid_capture_stop.cfg b/Assets/Engine/Config/vid_capture_stop.cfg similarity index 100% rename from Engine/Config/vid_capture_stop.cfg rename to Assets/Engine/Config/vid_capture_stop.cfg diff --git a/Engine/Config/vr.cfg b/Assets/Engine/Config/vr.cfg similarity index 100% rename from Engine/Config/vr.cfg rename to Assets/Engine/Config/vr.cfg diff --git a/Engine/EngineAssets/Animated/WaterVolume.dds b/Assets/Engine/EngineAssets/Animated/WaterVolume.dds similarity index 100% rename from Engine/EngineAssets/Animated/WaterVolume.dds rename to Assets/Engine/EngineAssets/Animated/WaterVolume.dds diff --git a/Engine/EngineAssets/CodeCoverage/hit.tif b/Assets/Engine/EngineAssets/CodeCoverage/hit.tif similarity index 100% rename from Engine/EngineAssets/CodeCoverage/hit.tif rename to Assets/Engine/EngineAssets/CodeCoverage/hit.tif diff --git a/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings rename to Assets/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings diff --git a/Engine/EngineAssets/CodeCoverage/pbar.tif b/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif similarity index 100% rename from Engine/EngineAssets/CodeCoverage/pbar.tif rename to Assets/Engine/EngineAssets/CodeCoverage/pbar.tif diff --git a/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings rename to Assets/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings diff --git a/Engine/EngineAssets/CodeCoverage/unexpected.tif b/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif similarity index 100% rename from Engine/EngineAssets/CodeCoverage/unexpected.tif rename to Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif diff --git a/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings rename to Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings diff --git a/Engine/EngineAssets/GeomCaches/defaultGeomCache.abc b/Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.abc similarity index 100% rename from Engine/EngineAssets/GeomCaches/defaultGeomCache.abc rename to Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.abc diff --git a/Engine/EngineAssets/GeomCaches/defaultGeomCache.cbc b/Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.cbc similarity index 100% rename from Engine/EngineAssets/GeomCaches/defaultGeomCache.cbc rename to Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.cbc diff --git a/Engine/EngineAssets/GeomCaches/defaultGeomCache.ma b/Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.ma similarity index 100% rename from Engine/EngineAssets/GeomCaches/defaultGeomCache.ma rename to Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.ma diff --git a/Engine/EngineAssets/GeomCaches/defaultGeomCache.mtl b/Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.mtl similarity index 100% rename from Engine/EngineAssets/GeomCaches/defaultGeomCache.mtl rename to Assets/Engine/EngineAssets/GeomCaches/defaultGeomCache.mtl diff --git a/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF b/Assets/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF similarity index 100% rename from Engine/EngineAssets/Icons/AverageMemoryUsage.TIF rename to Assets/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF diff --git a/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF.exportsettings b/Assets/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/AverageMemoryUsage.TIF.exportsettings rename to Assets/Engine/EngineAssets/Icons/AverageMemoryUsage.TIF.exportsettings diff --git a/Engine/EngineAssets/Icons/HighMemoryUsage.TIF b/Assets/Engine/EngineAssets/Icons/HighMemoryUsage.TIF similarity index 100% rename from Engine/EngineAssets/Icons/HighMemoryUsage.TIF rename to Assets/Engine/EngineAssets/Icons/HighMemoryUsage.TIF diff --git a/Engine/EngineAssets/Icons/HighMemoryUsage.TIF.exportsettings b/Assets/Engine/EngineAssets/Icons/HighMemoryUsage.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/HighMemoryUsage.TIF.exportsettings rename to Assets/Engine/EngineAssets/Icons/HighMemoryUsage.TIF.exportsettings diff --git a/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif b/Assets/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif similarity index 100% rename from Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif rename to Assets/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif diff --git a/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/LevelShaderCacheMiss.tif.exportsettings diff --git a/Engine/EngineAssets/Icons/LivePreview.TIF b/Assets/Engine/EngineAssets/Icons/LivePreview.TIF similarity index 100% rename from Engine/EngineAssets/Icons/LivePreview.TIF rename to Assets/Engine/EngineAssets/Icons/LivePreview.TIF diff --git a/Engine/EngineAssets/Icons/LivePreview.TIF.exportsettings b/Assets/Engine/EngineAssets/Icons/LivePreview.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/LivePreview.TIF.exportsettings rename to Assets/Engine/EngineAssets/Icons/LivePreview.TIF.exportsettings diff --git a/Engine/EngineAssets/Icons/LowMemoryUsage.TIF b/Assets/Engine/EngineAssets/Icons/LowMemoryUsage.TIF similarity index 100% rename from Engine/EngineAssets/Icons/LowMemoryUsage.TIF rename to Assets/Engine/EngineAssets/Icons/LowMemoryUsage.TIF diff --git a/Engine/EngineAssets/Icons/LowMemoryUsage.TIF.exportsettings b/Assets/Engine/EngineAssets/Icons/LowMemoryUsage.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/LowMemoryUsage.TIF.exportsettings rename to Assets/Engine/EngineAssets/Icons/LowMemoryUsage.TIF.exportsettings diff --git a/Engine/EngineAssets/Icons/NavigationProcessing.tif b/Assets/Engine/EngineAssets/Icons/NavigationProcessing.tif similarity index 100% rename from Engine/EngineAssets/Icons/NavigationProcessing.tif rename to Assets/Engine/EngineAssets/Icons/NavigationProcessing.tif diff --git a/Engine/EngineAssets/Icons/NavigationProcessing.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/NavigationProcessing.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/NavigationProcessing.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/NavigationProcessing.tif.exportsettings diff --git a/Engine/EngineAssets/Icons/NullSoundSystem.tif b/Assets/Engine/EngineAssets/Icons/NullSoundSystem.tif similarity index 100% rename from Engine/EngineAssets/Icons/NullSoundSystem.tif rename to Assets/Engine/EngineAssets/Icons/NullSoundSystem.tif diff --git a/Engine/EngineAssets/Icons/NullSoundSystem.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/NullSoundSystem.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/NullSoundSystem.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/NullSoundSystem.tif.exportsettings diff --git a/Engine/EngineAssets/Icons/ShaderCompiling.tif b/Assets/Engine/EngineAssets/Icons/ShaderCompiling.tif similarity index 100% rename from Engine/EngineAssets/Icons/ShaderCompiling.tif rename to Assets/Engine/EngineAssets/Icons/ShaderCompiling.tif diff --git a/Engine/EngineAssets/Icons/ShaderCompiling.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/ShaderCompiling.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/ShaderCompiling.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/ShaderCompiling.tif.exportsettings diff --git a/Engine/EngineAssets/Icons/Streaming.tif b/Assets/Engine/EngineAssets/Icons/Streaming.tif similarity index 100% rename from Engine/EngineAssets/Icons/Streaming.tif rename to Assets/Engine/EngineAssets/Icons/Streaming.tif diff --git a/Engine/EngineAssets/Icons/Streaming.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/Streaming.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/Streaming.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/Streaming.tif.exportsettings diff --git a/Engine/EngineAssets/Icons/StreamingTerrain.tif b/Assets/Engine/EngineAssets/Icons/StreamingTerrain.tif similarity index 100% rename from Engine/EngineAssets/Icons/StreamingTerrain.tif rename to Assets/Engine/EngineAssets/Icons/StreamingTerrain.tif diff --git a/Engine/EngineAssets/Icons/StreamingTerrain.tif.exportsettings b/Assets/Engine/EngineAssets/Icons/StreamingTerrain.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Icons/StreamingTerrain.tif.exportsettings rename to Assets/Engine/EngineAssets/Icons/StreamingTerrain.tif.exportsettings diff --git a/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly b/Assets/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly rename to Assets/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly diff --git a/Engine/EngineAssets/LevelForSliceEditing/filelist.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/filelist.xml similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/filelist.xml rename to Assets/Engine/EngineAssets/LevelForSliceEditing/filelist.xml diff --git a/Engine/EngineAssets/LevelForSliceEditing/level.pak b/Assets/Engine/EngineAssets/LevelForSliceEditing/level.pak similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/level.pak rename to Assets/Engine/EngineAssets/LevelForSliceEditing/level.pak diff --git a/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml rename to Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml diff --git a/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat rename to Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat diff --git a/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml rename to Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml diff --git a/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml rename to Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml diff --git a/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat rename to Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat diff --git a/Engine/EngineAssets/LevelForSliceEditing/tags.txt b/Assets/Engine/EngineAssets/LevelForSliceEditing/tags.txt similarity index 100% rename from Engine/EngineAssets/LevelForSliceEditing/tags.txt rename to Assets/Engine/EngineAssets/LevelForSliceEditing/tags.txt diff --git a/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl b/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl diff --git a/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl b/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl diff --git a/Engine/EngineAssets/Materials/Fog/OceanInto.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanInto.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/OceanInto.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/OceanInto.mtl diff --git a/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl diff --git a/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/OceanOutof.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl diff --git a/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl diff --git a/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl b/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl diff --git a/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl b/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl rename to Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl diff --git a/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl b/Assets/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl similarity index 100% rename from Engine/EngineAssets/Materials/PhysProxyTooBig.mtl rename to Assets/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl diff --git a/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl b/Assets/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl rename to Assets/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl diff --git a/Engine/EngineAssets/Materials/Water/ocean_default.mtl b/Assets/Engine/EngineAssets/Materials/Water/ocean_default.mtl similarity index 100% rename from Engine/EngineAssets/Materials/Water/ocean_default.mtl rename to Assets/Engine/EngineAssets/Materials/Water/ocean_default.mtl diff --git a/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl b/Assets/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl similarity index 100% rename from Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl rename to Assets/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl diff --git a/Engine/EngineAssets/Materials/decals/default.mtl b/Assets/Engine/EngineAssets/Materials/decals/default.mtl similarity index 100% rename from Engine/EngineAssets/Materials/decals/default.mtl rename to Assets/Engine/EngineAssets/Materials/decals/default.mtl diff --git a/Engine/EngineAssets/Materials/lens_optics.mtl b/Assets/Engine/EngineAssets/Materials/lens_optics.mtl similarity index 100% rename from Engine/EngineAssets/Materials/lens_optics.mtl rename to Assets/Engine/EngineAssets/Materials/lens_optics.mtl diff --git a/Engine/EngineAssets/Materials/sky/sky.mtl b/Assets/Engine/EngineAssets/Materials/sky/sky.mtl similarity index 100% rename from Engine/EngineAssets/Materials/sky/sky.mtl rename to Assets/Engine/EngineAssets/Materials/sky/sky.mtl diff --git a/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl b/Assets/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/hologram.mtl rename to Assets/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl diff --git a/Engine/EngineAssets/Materials/test/Holotest/test2.tif b/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/test2.tif rename to Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif diff --git a/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings rename to Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings diff --git a/Engine/EngineAssets/Materials/test/Holotest/tews1.tif b/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/tews1.tif rename to Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif diff --git a/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings rename to Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings diff --git a/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf b/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/tile1.cgf rename to Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf diff --git a/Engine/EngineAssets/Materials/test/Holotest/tile1.max b/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.max similarity index 100% rename from Engine/EngineAssets/Materials/test/Holotest/tile1.max rename to Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.max diff --git a/Engine/EngineAssets/Materials/test/chromium.mtl b/Assets/Engine/EngineAssets/Materials/test/chromium.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/chromium.mtl rename to Assets/Engine/EngineAssets/Materials/test/chromium.mtl diff --git a/Engine/EngineAssets/Materials/test/glass2.mtl b/Assets/Engine/EngineAssets/Materials/test/glass2.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/glass2.mtl rename to Assets/Engine/EngineAssets/Materials/test/glass2.mtl diff --git a/Engine/EngineAssets/Materials/test/hologram.mtl b/Assets/Engine/EngineAssets/Materials/test/hologram.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/hologram.mtl rename to Assets/Engine/EngineAssets/Materials/test/hologram.mtl diff --git a/Engine/EngineAssets/Materials/test/lightbeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lightbeam.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/lightbeam.mtl rename to Assets/Engine/EngineAssets/Materials/test/lightbeam.mtl diff --git a/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl b/Assets/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl rename to Assets/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl diff --git a/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/lighthouseBeam.mtl rename to Assets/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl diff --git a/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl rename to Assets/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl diff --git a/Engine/EngineAssets/Materials/test/nodraw.mtl b/Assets/Engine/EngineAssets/Materials/test/nodraw.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/nodraw.mtl rename to Assets/Engine/EngineAssets/Materials/test/nodraw.mtl diff --git a/Engine/EngineAssets/Materials/test/sky.mtl b/Assets/Engine/EngineAssets/Materials/test/sky.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/sky.mtl rename to Assets/Engine/EngineAssets/Materials/test/sky.mtl diff --git a/Engine/EngineAssets/Materials/test/skyHDR.mtl b/Assets/Engine/EngineAssets/Materials/test/skyHDR.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/skyHDR.mtl rename to Assets/Engine/EngineAssets/Materials/test/skyHDR.mtl diff --git a/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif b/Assets/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif similarity index 100% rename from Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif rename to Assets/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif diff --git a/Engine/EngineAssets/Materials/test/textures/templeBeam.tif b/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif similarity index 100% rename from Engine/EngineAssets/Materials/test/textures/templeBeam.tif rename to Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif diff --git a/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings rename to Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings diff --git a/Engine/EngineAssets/Materials/test/volumeObject.mtl b/Assets/Engine/EngineAssets/Materials/test/volumeObject.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/volumeObject.mtl rename to Assets/Engine/EngineAssets/Materials/test/volumeObject.mtl diff --git a/Engine/EngineAssets/Materials/test/volumeObject2.mtl b/Assets/Engine/EngineAssets/Materials/test/volumeObject2.mtl similarity index 100% rename from Engine/EngineAssets/Materials/test/volumeObject2.mtl rename to Assets/Engine/EngineAssets/Materials/test/volumeObject2.mtl diff --git a/Engine/EngineAssets/Objects/Default.cgf b/Assets/Engine/EngineAssets/Objects/Default.cgf similarity index 100% rename from Engine/EngineAssets/Objects/Default.cgf rename to Assets/Engine/EngineAssets/Objects/Default.cgf diff --git a/Engine/EngineAssets/Objects/helper.mtl b/Assets/Engine/EngineAssets/Objects/helper.mtl similarity index 100% rename from Engine/EngineAssets/Objects/helper.mtl rename to Assets/Engine/EngineAssets/Objects/helper.mtl diff --git a/Engine/EngineAssets/Production/MidGray.tif b/Assets/Engine/EngineAssets/Production/MidGray.tif similarity index 100% rename from Engine/EngineAssets/Production/MidGray.tif rename to Assets/Engine/EngineAssets/Production/MidGray.tif diff --git a/Engine/EngineAssets/Production/MidGray.tif.exportsettings b/Assets/Engine/EngineAssets/Production/MidGray.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Production/MidGray.tif.exportsettings rename to Assets/Engine/EngineAssets/Production/MidGray.tif.exportsettings diff --git a/Engine/EngineAssets/Production/TangentReference_ddn.tif b/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif similarity index 100% rename from Engine/EngineAssets/Production/TangentReference_ddn.tif rename to Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif diff --git a/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Production/UV.tif b/Assets/Engine/EngineAssets/Production/UV.tif similarity index 100% rename from Engine/EngineAssets/Production/UV.tif rename to Assets/Engine/EngineAssets/Production/UV.tif diff --git a/Engine/EngineAssets/Production/UV.tif.exportsettings b/Assets/Engine/EngineAssets/Production/UV.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Production/UV.tif.exportsettings rename to Assets/Engine/EngineAssets/Production/UV.tif.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/AreaTex.dds b/Assets/Engine/EngineAssets/ScreenSpace/AreaTex.dds similarity index 100% rename from Engine/EngineAssets/ScreenSpace/AreaTex.dds rename to Assets/Engine/EngineAssets/ScreenSpace/AreaTex.dds diff --git a/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds b/Assets/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds similarity index 100% rename from Engine/EngineAssets/ScreenSpace/NormalsFitting.dds rename to Assets/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds diff --git a/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif similarity index 100% rename from Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif rename to Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif diff --git a/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif similarity index 100% rename from Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif rename to Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif diff --git a/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/SearchTex.dds b/Assets/Engine/EngineAssets/ScreenSpace/SearchTex.dds similarity index 100% rename from Engine/EngineAssets/ScreenSpace/SearchTex.dds rename to Assets/Engine/EngineAssets/ScreenSpace/SearchTex.dds diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_love.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_music.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_square.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_star.TIF rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF diff --git a/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings diff --git a/Engine/EngineAssets/ScreenSpace/film_grain.dds b/Assets/Engine/EngineAssets/ScreenSpace/film_grain.dds similarity index 100% rename from Engine/EngineAssets/ScreenSpace/film_grain.dds rename to Assets/Engine/EngineAssets/ScreenSpace/film_grain.dds diff --git a/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif b/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif similarity index 100% rename from Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif rename to Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif diff --git a/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings rename to Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings diff --git a/Engine/EngineAssets/Shading/SonarVisionGradient.TIF b/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF similarity index 100% rename from Engine/EngineAssets/Shading/SonarVisionGradient.TIF rename to Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF diff --git a/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings diff --git a/Engine/EngineAssets/Shading/ThermalVisionGradient.tif b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif similarity index 100% rename from Engine/EngineAssets/Shading/ThermalVisionGradient.tif rename to Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif diff --git a/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings rename to Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings diff --git a/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF similarity index 100% rename from Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF rename to Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF diff --git a/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings diff --git a/Engine/EngineAssets/Shading/WaterFoam.TIF b/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF similarity index 100% rename from Engine/EngineAssets/Shading/WaterFoam.TIF rename to Assets/Engine/EngineAssets/Shading/WaterFoam.TIF diff --git a/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings diff --git a/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds b/Assets/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds similarity index 100% rename from Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds rename to Assets/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds diff --git a/Engine/EngineAssets/Shading/defaultProbe_cm.tif b/Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif similarity index 100% rename from Engine/EngineAssets/Shading/defaultProbe_cm.tif rename to Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif diff --git a/Engine/EngineAssets/Shading/environmentBRDF.tif b/Assets/Engine/EngineAssets/Shading/environmentBRDF.tif similarity index 100% rename from Engine/EngineAssets/Shading/environmentBRDF.tif rename to Assets/Engine/EngineAssets/Shading/environmentBRDF.tif diff --git a/Engine/EngineAssets/Shading/generic_reflections.tif b/Assets/Engine/EngineAssets/Shading/generic_reflections.tif similarity index 100% rename from Engine/EngineAssets/Shading/generic_reflections.tif rename to Assets/Engine/EngineAssets/Shading/generic_reflections.tif diff --git a/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings rename to Assets/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings diff --git a/Engine/EngineAssets/Shading/layer_effect_anim_function.tif b/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif similarity index 100% rename from Engine/EngineAssets/Shading/layer_effect_anim_function.tif rename to Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif diff --git a/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings rename to Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings diff --git a/Engine/EngineAssets/Shading/nanosuit_mask.TIF b/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF similarity index 100% rename from Engine/EngineAssets/Shading/nanosuit_mask.TIF rename to Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF diff --git a/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings diff --git a/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF b/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF similarity index 100% rename from Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF rename to Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF diff --git a/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings diff --git a/Engine/EngineAssets/Shading/vignetting.TIF b/Assets/Engine/EngineAssets/Shading/vignetting.TIF similarity index 100% rename from Engine/EngineAssets/Shading/vignetting.TIF rename to Assets/Engine/EngineAssets/Shading/vignetting.TIF diff --git a/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Shading/vignetting.TIF.exportsettings rename to Assets/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings diff --git a/Engine/EngineAssets/Sky/optical.lut b/Assets/Engine/EngineAssets/Sky/optical.lut similarity index 100% rename from Engine/EngineAssets/Sky/optical.lut rename to Assets/Engine/EngineAssets/Sky/optical.lut diff --git a/Engine/EngineAssets/Sky/stars.dat b/Assets/Engine/EngineAssets/Sky/stars.dat similarity index 100% rename from Engine/EngineAssets/Sky/stars.dat rename to Assets/Engine/EngineAssets/Sky/stars.dat diff --git a/Engine/EngineAssets/Slices/DefaultLevelSetup.slice b/Assets/Engine/EngineAssets/Slices/DefaultLevelSetup.slice similarity index 100% rename from Engine/EngineAssets/Slices/DefaultLevelSetup.slice rename to Assets/Engine/EngineAssets/Slices/DefaultLevelSetup.slice diff --git a/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif diff --git a/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif diff --git a/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif diff --git a/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultSolids.mtl rename to Assets/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl diff --git a/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif diff --git a/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif diff --git a/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif rename to Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif diff --git a/Engine/EngineAssets/TextureMsg/NotFound.psd b/Assets/Engine/EngineAssets/TextureMsg/NotFound.psd similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound.psd rename to Assets/Engine/EngineAssets/TextureMsg/NotFound.psd diff --git a/Engine/EngineAssets/TextureMsg/NotFound.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound.tif rename to Assets/Engine/EngineAssets/TextureMsg/NotFound.tif diff --git a/Engine/EngineAssets/TextureMsg/NotFound_a.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_a.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound_a.tif rename to Assets/Engine/EngineAssets/TextureMsg/NotFound_a.tif diff --git a/Engine/EngineAssets/TextureMsg/NotFound_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_cm.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound_cm.tif rename to Assets/Engine/EngineAssets/TextureMsg/NotFound_cm.tif diff --git a/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound_ddn.tif rename to Assets/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif diff --git a/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/NotFound_ddna.tif rename to Assets/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif diff --git a/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif b/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif rename to Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif diff --git a/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/RCError.psd b/Assets/Engine/EngineAssets/TextureMsg/RCError.psd similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError.psd rename to Assets/Engine/EngineAssets/TextureMsg/RCError.psd diff --git a/Engine/EngineAssets/TextureMsg/RCError.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError.tif rename to Assets/Engine/EngineAssets/TextureMsg/RCError.tif diff --git a/Engine/EngineAssets/TextureMsg/RCError_a.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_a.tif rename to Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif diff --git a/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/RCError_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_cm.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_cm.tif rename to Assets/Engine/EngineAssets/TextureMsg/RCError_cm.tif diff --git a/Engine/EngineAssets/TextureMsg/RCError_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_ddn.tif rename to Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif diff --git a/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/RCError_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_ddna.tif rename to Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif diff --git a/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMe.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMe.tif rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif diff --git a/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif b/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/ShaderCompiling.tif rename to Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif diff --git a/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/ShaderError.tif b/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/ShaderError.tif rename to Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif diff --git a/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling.tif rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling.tif diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif diff --git a/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings rename to Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings diff --git a/Engine/EngineAssets/TextureMsg/color_Black.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Black.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Black.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Black.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Blue.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Blue.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Blue.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Blue.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Cyan.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Cyan.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Cyan.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Cyan.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Green.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Green.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Green.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Green.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Magenta.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Magenta.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Magenta.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Magenta.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Orange.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Orange.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Orange.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Orange.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Purple.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Purple.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Purple.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Purple.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Red.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Red.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Red.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Red.tif diff --git a/Engine/EngineAssets/TextureMsg/color_White.tif b/Assets/Engine/EngineAssets/TextureMsg/color_White.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_White.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_White.tif diff --git a/Engine/EngineAssets/TextureMsg/color_Yellow.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Yellow.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/color_Yellow.tif rename to Assets/Engine/EngineAssets/TextureMsg/color_Yellow.tif diff --git a/Engine/EngineAssets/TextureMsg/mipmapdebug.tif b/Assets/Engine/EngineAssets/TextureMsg/mipmapdebug.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/mipmapdebug.tif rename to Assets/Engine/EngineAssets/TextureMsg/mipmapdebug.tif diff --git a/Engine/EngineAssets/TextureMsg/orange_for_designer.tif b/Assets/Engine/EngineAssets/TextureMsg/orange_for_designer.tif similarity index 100% rename from Engine/EngineAssets/TextureMsg/orange_for_designer.tif rename to Assets/Engine/EngineAssets/TextureMsg/orange_for_designer.tif diff --git a/Engine/EngineAssets/Textures/BlackAlpha.tif b/Assets/Engine/EngineAssets/Textures/BlackAlpha.tif similarity index 100% rename from Engine/EngineAssets/Textures/BlackAlpha.tif rename to Assets/Engine/EngineAssets/Textures/BlackAlpha.tif diff --git a/Engine/EngineAssets/Textures/BlackCM.tif b/Assets/Engine/EngineAssets/Textures/BlackCM.tif similarity index 100% rename from Engine/EngineAssets/Textures/BlackCM.tif rename to Assets/Engine/EngineAssets/Textures/BlackCM.tif diff --git a/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/BlackCM.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/Cubemap/default_level_cubemap.tif b/Assets/Engine/EngineAssets/Textures/Cubemap/default_level_cubemap.tif similarity index 100% rename from Engine/EngineAssets/Textures/Cubemap/default_level_cubemap.tif rename to Assets/Engine/EngineAssets/Textures/Cubemap/default_level_cubemap.tif diff --git a/Engine/EngineAssets/Textures/Cursor_Green.tif b/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif similarity index 100% rename from Engine/EngineAssets/Textures/Cursor_Green.tif rename to Assets/Engine/EngineAssets/Textures/Cursor_Green.tif diff --git a/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/FogVolShadowJitter.tif b/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif similarity index 100% rename from Engine/EngineAssets/Textures/FogVolShadowJitter.tif rename to Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif diff --git a/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds b/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds similarity index 100% rename from Engine/EngineAssets/Textures/Frozen/frost_noise3.dds rename to Assets/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds diff --git a/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif b/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif similarity index 100% rename from Engine/EngineAssets/Textures/Frozen/frost_noise4.tif rename to Assets/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif diff --git a/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif b/Assets/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif similarity index 100% rename from Engine/EngineAssets/Textures/Frozen/snow_spatter.tif rename to Assets/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif diff --git a/Engine/EngineAssets/Textures/GreyAlpha.tif b/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif similarity index 100% rename from Engine/EngineAssets/Textures/GreyAlpha.tif rename to Assets/Engine/EngineAssets/Textures/GreyAlpha.tif diff --git a/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds similarity index 100% rename from Engine/EngineAssets/Textures/Palette/cloak_interlation.dds rename to Assets/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds diff --git a/Engine/EngineAssets/Textures/Palette/cloak_palette.tif b/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif similarity index 100% rename from Engine/EngineAssets/Textures/Palette/cloak_palette.tif rename to Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif diff --git a/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds similarity index 100% rename from Engine/EngineAssets/Textures/Palette/cloak_sparks.dds rename to Assets/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds diff --git a/Engine/EngineAssets/Textures/Palette/cloak_transition.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_transition.dds similarity index 100% rename from Engine/EngineAssets/Textures/Palette/cloak_transition.dds rename to Assets/Engine/EngineAssets/Textures/Palette/cloak_transition.dds diff --git a/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif b/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif similarity index 100% rename from Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif rename to Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif diff --git a/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/VolumeRaster.tif b/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif similarity index 100% rename from Engine/EngineAssets/Textures/VolumeRaster.tif rename to Assets/Engine/EngineAssets/Textures/VolumeRaster.tif diff --git a/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/alienhud_distortionimage.tif b/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif similarity index 100% rename from Engine/EngineAssets/Textures/alienhud_distortionimage.tif rename to Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif diff --git a/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/alienhud_noise1.tif b/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif similarity index 100% rename from Engine/EngineAssets/Textures/alienhud_noise1.tif rename to Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif diff --git a/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/black.tif b/Assets/Engine/EngineAssets/Textures/black.tif similarity index 100% rename from Engine/EngineAssets/Textures/black.tif rename to Assets/Engine/EngineAssets/Textures/black.tif diff --git a/Engine/EngineAssets/Textures/black.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/black.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/black.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/black.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/caustics_sampler.dds b/Assets/Engine/EngineAssets/Textures/caustics_sampler.dds similarity index 100% rename from Engine/EngineAssets/Textures/caustics_sampler.dds rename to Assets/Engine/EngineAssets/Textures/caustics_sampler.dds diff --git a/Engine/EngineAssets/Textures/color.tif b/Assets/Engine/EngineAssets/Textures/color.tif similarity index 100% rename from Engine/EngineAssets/Textures/color.tif rename to Assets/Engine/EngineAssets/Textures/color.tif diff --git a/Engine/EngineAssets/Textures/default_cch.tif b/Assets/Engine/EngineAssets/Textures/default_cch.tif similarity index 100% rename from Engine/EngineAssets/Textures/default_cch.tif rename to Assets/Engine/EngineAssets/Textures/default_cch.tif diff --git a/Engine/EngineAssets/Textures/default_cch.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/default_cch.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/default_cch.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/default_cch.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/defaults/16_12.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_12.tif similarity index 100% rename from Engine/EngineAssets/Textures/defaults/16_12.tif rename to Assets/Engine/EngineAssets/Textures/defaults/16_12.tif diff --git a/Engine/EngineAssets/Textures/defaults/16_34.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_34.tif similarity index 100% rename from Engine/EngineAssets/Textures/defaults/16_34.tif rename to Assets/Engine/EngineAssets/Textures/defaults/16_34.tif diff --git a/Engine/EngineAssets/Textures/defaults/16_5.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_5.tif similarity index 100% rename from Engine/EngineAssets/Textures/defaults/16_5.tif rename to Assets/Engine/EngineAssets/Textures/defaults/16_5.tif diff --git a/Engine/EngineAssets/Textures/defaults/16_grey.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_grey.tif similarity index 100% rename from Engine/EngineAssets/Textures/defaults/16_grey.tif rename to Assets/Engine/EngineAssets/Textures/defaults/16_grey.tif diff --git a/Engine/EngineAssets/Textures/defaults/spot_default.tif b/Assets/Engine/EngineAssets/Textures/defaults/spot_default.tif similarity index 100% rename from Engine/EngineAssets/Textures/defaults/spot_default.tif rename to Assets/Engine/EngineAssets/Textures/defaults/spot_default.tif diff --git a/Engine/EngineAssets/Textures/detailDecalVariation.tif b/Assets/Engine/EngineAssets/Textures/detailDecalVariation.tif similarity index 100% rename from Engine/EngineAssets/Textures/detailDecalVariation.tif rename to Assets/Engine/EngineAssets/Textures/detailDecalVariation.tif diff --git a/Engine/EngineAssets/Textures/dither_2.dds b/Assets/Engine/EngineAssets/Textures/dither_2.dds similarity index 100% rename from Engine/EngineAssets/Textures/dither_2.dds rename to Assets/Engine/EngineAssets/Textures/dither_2.dds diff --git a/Engine/EngineAssets/Textures/dither_pattern_2d.dds b/Assets/Engine/EngineAssets/Textures/dither_pattern_2d.dds similarity index 100% rename from Engine/EngineAssets/Textures/dither_pattern_2d.dds rename to Assets/Engine/EngineAssets/Textures/dither_pattern_2d.dds diff --git a/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_Glow001.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif diff --git a/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_Glow002.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif diff --git a/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif diff --git a/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif diff --git a/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif diff --git a/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/Flare_Sun001.tif rename to Assets/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif diff --git a/Engine/EngineAssets/Textures/flares/flare01.tif b/Assets/Engine/EngineAssets/Textures/flares/flare01.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/flare01.tif rename to Assets/Engine/EngineAssets/Textures/flares/flare01.tif diff --git a/Engine/EngineAssets/Textures/flares/flare02.tif b/Assets/Engine/EngineAssets/Textures/flares/flare02.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/flare02.tif rename to Assets/Engine/EngineAssets/Textures/flares/flare02.tif diff --git a/Engine/EngineAssets/Textures/flares/ghost_grey.tif b/Assets/Engine/EngineAssets/Textures/flares/ghost_grey.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/ghost_grey.tif rename to Assets/Engine/EngineAssets/Textures/flares/ghost_grey.tif diff --git a/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif b/Assets/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/ghost_multicolor.tif rename to Assets/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/ghost.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/ghost.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/glow.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/glow.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/orbs.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/orbs.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/ring.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/ring.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/test_demo.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/test_demo.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif rename to Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif diff --git a/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/flares/iris_shaft.tif b/Assets/Engine/EngineAssets/Textures/flares/iris_shaft.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/iris_shaft.tif rename to Assets/Engine/EngineAssets/Textures/flares/iris_shaft.tif diff --git a/Engine/EngineAssets/Textures/flares/lens_blurshape.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_blurshape.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/lens_blurshape.tif rename to Assets/Engine/EngineAssets/Textures/flares/lens_blurshape.tif diff --git a/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif rename to Assets/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif diff --git a/Engine/EngineAssets/Textures/flares/lens_noise01.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_noise01.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/lens_noise01.tif rename to Assets/Engine/EngineAssets/Textures/flares/lens_noise01.tif diff --git a/Engine/EngineAssets/Textures/flares/lens_raindrops.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/lens_raindrops.tif rename to Assets/Engine/EngineAssets/Textures/flares/lens_raindrops.tif diff --git a/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/lens_raindrops02.tif rename to Assets/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif diff --git a/Engine/EngineAssets/Textures/flares/orb_01.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_01.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/orb_01.tif rename to Assets/Engine/EngineAssets/Textures/flares/orb_01.tif diff --git a/Engine/EngineAssets/Textures/flares/orb_cell01.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell01.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/orb_cell01.tif rename to Assets/Engine/EngineAssets/Textures/flares/orb_cell01.tif diff --git a/Engine/EngineAssets/Textures/flares/orb_cell02.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell02.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/orb_cell02.tif rename to Assets/Engine/EngineAssets/Textures/flares/orb_cell02.tif diff --git a/Engine/EngineAssets/Textures/flares/orb_cell03.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell03.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/orb_cell03.tif rename to Assets/Engine/EngineAssets/Textures/flares/orb_cell03.tif diff --git a/Engine/EngineAssets/Textures/flares/orb_cell04.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell04.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/orb_cell04.tif rename to Assets/Engine/EngineAssets/Textures/flares/orb_cell04.tif diff --git a/Engine/EngineAssets/Textures/flares/spectrum_full.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_full.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/spectrum_full.tif rename to Assets/Engine/EngineAssets/Textures/flares/spectrum_full.tif diff --git a/Engine/EngineAssets/Textures/flares/spectrum_half.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_half.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/spectrum_half.tif rename to Assets/Engine/EngineAssets/Textures/flares/spectrum_half.tif diff --git a/Engine/EngineAssets/Textures/flares/spectrum_quater.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_quater.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/spectrum_quater.tif rename to Assets/Engine/EngineAssets/Textures/flares/spectrum_quater.tif diff --git a/Engine/EngineAssets/Textures/flares/spectrum_specs.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_specs.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/spectrum_specs.tif rename to Assets/Engine/EngineAssets/Textures/flares/spectrum_specs.tif diff --git a/Engine/EngineAssets/Textures/flares/streak01.tif b/Assets/Engine/EngineAssets/Textures/flares/streak01.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/streak01.tif rename to Assets/Engine/EngineAssets/Textures/flares/streak01.tif diff --git a/Engine/EngineAssets/Textures/flares/visor_scratch.tif b/Assets/Engine/EngineAssets/Textures/flares/visor_scratch.tif similarity index 100% rename from Engine/EngineAssets/Textures/flares/visor_scratch.tif rename to Assets/Engine/EngineAssets/Textures/flares/visor_scratch.tif diff --git a/Engine/EngineAssets/Textures/fresnel_sampler.dds b/Assets/Engine/EngineAssets/Textures/fresnel_sampler.dds similarity index 100% rename from Engine/EngineAssets/Textures/fresnel_sampler.dds rename to Assets/Engine/EngineAssets/Textures/fresnel_sampler.dds diff --git a/Engine/EngineAssets/Textures/fringe_map.dds b/Assets/Engine/EngineAssets/Textures/fringe_map.dds similarity index 100% rename from Engine/EngineAssets/Textures/fringe_map.dds rename to Assets/Engine/EngineAssets/Textures/fringe_map.dds diff --git a/Engine/EngineAssets/Textures/frost_refl2.tif b/Assets/Engine/EngineAssets/Textures/frost_refl2.tif similarity index 100% rename from Engine/EngineAssets/Textures/frost_refl2.tif rename to Assets/Engine/EngineAssets/Textures/frost_refl2.tif diff --git a/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds b/Assets/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds similarity index 100% rename from Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds rename to Assets/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds diff --git a/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif rename to Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif diff --git a/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif similarity index 100% rename from Engine/EngineAssets/Textures/glass_decalatlas_diff.tif rename to Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif diff --git a/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/grey.dds b/Assets/Engine/EngineAssets/Textures/grey.dds similarity index 100% rename from Engine/EngineAssets/Textures/grey.dds rename to Assets/Engine/EngineAssets/Textures/grey.dds diff --git a/Engine/EngineAssets/Textures/hex.tif b/Assets/Engine/EngineAssets/Textures/hex.tif similarity index 100% rename from Engine/EngineAssets/Textures/hex.tif rename to Assets/Engine/EngineAssets/Textures/hex.tif diff --git a/Engine/EngineAssets/Textures/hex.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hex.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hex.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hex_ddn.tif b/Assets/Engine/EngineAssets/Textures/hex_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/hex_ddn.tif rename to Assets/Engine/EngineAssets/Textures/hex_ddn.tif diff --git a/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hex_grad.tif b/Assets/Engine/EngineAssets/Textures/hex_grad.tif similarity index 100% rename from Engine/EngineAssets/Textures/hex_grad.tif rename to Assets/Engine/EngineAssets/Textures/hex_grad.tif diff --git a/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hex_grad.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hex_line.tif b/Assets/Engine/EngineAssets/Textures/hex_line.tif similarity index 100% rename from Engine/EngineAssets/Textures/hex_line.tif rename to Assets/Engine/EngineAssets/Textures/hex_line.tif diff --git a/Engine/EngineAssets/Textures/hex_line.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_line.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hex_line.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hex_line.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hex_rand.tif b/Assets/Engine/EngineAssets/Textures/hex_rand.tif similarity index 100% rename from Engine/EngineAssets/Textures/hex_rand.tif rename to Assets/Engine/EngineAssets/Textures/hex_rand.tif diff --git a/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hex_rand.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_areas.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_areas.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_healthgradient.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_round.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_round.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_round.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_veinsblood.tif rename to Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif diff --git a/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/interference.dds b/Assets/Engine/EngineAssets/Textures/interference.dds similarity index 100% rename from Engine/EngineAssets/Textures/interference.dds rename to Assets/Engine/EngineAssets/Textures/interference.dds diff --git a/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds b/Assets/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds similarity index 100% rename from Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds rename to Assets/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds diff --git a/Engine/EngineAssets/Textures/moisturedroplets.tif b/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif similarity index 100% rename from Engine/EngineAssets/Textures/moisturedroplets.tif rename to Assets/Engine/EngineAssets/Textures/moisturedroplets.tif diff --git a/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/nightvis_grad.tif b/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif similarity index 100% rename from Engine/EngineAssets/Textures/nightvis_grad.tif rename to Assets/Engine/EngineAssets/Textures/nightvis_grad.tif diff --git a/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/noise.tif b/Assets/Engine/EngineAssets/Textures/noise.tif similarity index 100% rename from Engine/EngineAssets/Textures/noise.tif rename to Assets/Engine/EngineAssets/Textures/noise.tif diff --git a/Engine/EngineAssets/Textures/noise3d.dds b/Assets/Engine/EngineAssets/Textures/noise3d.dds similarity index 100% rename from Engine/EngineAssets/Textures/noise3d.dds rename to Assets/Engine/EngineAssets/Textures/noise3d.dds diff --git a/Engine/EngineAssets/Textures/oceanwaves_ddn.tif b/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/oceanwaves_ddn.tif rename to Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif diff --git a/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/palletteInst.dds b/Assets/Engine/EngineAssets/Textures/palletteInst.dds similarity index 100% rename from Engine/EngineAssets/Textures/palletteInst.dds rename to Assets/Engine/EngineAssets/Textures/palletteInst.dds diff --git a/Engine/EngineAssets/Textures/perlinNoise2d.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise2d.tif rename to Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif diff --git a/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif b/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif rename to Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif diff --git a/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif b/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif rename to Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif diff --git a/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/perlinNoise_sum.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise_sum.tif rename to Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif diff --git a/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise_sum_small.tif rename to Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif diff --git a/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/pixeltex.dds b/Assets/Engine/EngineAssets/Textures/pixeltex.dds similarity index 100% rename from Engine/EngineAssets/Textures/pixeltex.dds rename to Assets/Engine/EngineAssets/Textures/pixeltex.dds diff --git a/Engine/EngineAssets/Textures/rotrandomcm.dds b/Assets/Engine/EngineAssets/Textures/rotrandomcm.dds similarity index 100% rename from Engine/EngineAssets/Textures/rotrandomcm.dds rename to Assets/Engine/EngineAssets/Textures/rotrandomcm.dds diff --git a/Engine/EngineAssets/Textures/scratch.tif b/Assets/Engine/EngineAssets/Textures/scratch.tif similarity index 100% rename from Engine/EngineAssets/Textures/scratch.tif rename to Assets/Engine/EngineAssets/Textures/scratch.tif diff --git a/Engine/EngineAssets/Textures/scratch.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/scratch.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/scratch.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/scratch.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/scratch_ddn.tif b/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/scratch_ddn.tif rename to Assets/Engine/EngineAssets/Textures/scratch_ddn.tif diff --git a/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/screen_noisy_bump.dds b/Assets/Engine/EngineAssets/Textures/screen_noisy_bump.dds similarity index 100% rename from Engine/EngineAssets/Textures/screen_noisy_bump.dds rename to Assets/Engine/EngineAssets/Textures/screen_noisy_bump.dds diff --git a/Engine/EngineAssets/Textures/screenfrost_alpha.TIF b/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF similarity index 100% rename from Engine/EngineAssets/Textures/screenfrost_alpha.TIF rename to Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF diff --git a/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings b/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings rename to Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings diff --git a/Engine/EngineAssets/Textures/screenfrost_ddn.TIF b/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF similarity index 100% rename from Engine/EngineAssets/Textures/screenfrost_ddn.TIF rename to Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF diff --git a/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings b/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings rename to Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings diff --git a/Engine/EngineAssets/Textures/snowflakes.tif b/Assets/Engine/EngineAssets/Textures/snowflakes.tif similarity index 100% rename from Engine/EngineAssets/Textures/snowflakes.tif rename to Assets/Engine/EngineAssets/Textures/snowflakes.tif diff --git a/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/snowflakes.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/startscreen.tif b/Assets/Engine/EngineAssets/Textures/startscreen.tif similarity index 100% rename from Engine/EngineAssets/Textures/startscreen.tif rename to Assets/Engine/EngineAssets/Textures/startscreen.tif diff --git a/Engine/EngineAssets/Textures/startscreen.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/startscreen.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/startscreen.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/startscreen.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/user_tex1.tif b/Assets/Engine/EngineAssets/Textures/user_tex1.tif similarity index 100% rename from Engine/EngineAssets/Textures/user_tex1.tif rename to Assets/Engine/EngineAssets/Textures/user_tex1.tif diff --git a/Engine/EngineAssets/Textures/user_tex2.tif b/Assets/Engine/EngineAssets/Textures/user_tex2.tif similarity index 100% rename from Engine/EngineAssets/Textures/user_tex2.tif rename to Assets/Engine/EngineAssets/Textures/user_tex2.tif diff --git a/Engine/EngineAssets/Textures/vector_noise.dds b/Assets/Engine/EngineAssets/Textures/vector_noise.dds similarity index 100% rename from Engine/EngineAssets/Textures/vector_noise.dds rename to Assets/Engine/EngineAssets/Textures/vector_noise.dds diff --git a/Engine/EngineAssets/Textures/water_droplets.dds b/Assets/Engine/EngineAssets/Textures/water_droplets.dds similarity index 100% rename from Engine/EngineAssets/Textures/water_droplets.dds rename to Assets/Engine/EngineAssets/Textures/water_droplets.dds diff --git a/Engine/EngineAssets/Textures/water_gloss.tif b/Assets/Engine/EngineAssets/Textures/water_gloss.tif similarity index 100% rename from Engine/EngineAssets/Textures/water_gloss.tif rename to Assets/Engine/EngineAssets/Textures/water_gloss.tif diff --git a/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/water_gloss.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/white.tif b/Assets/Engine/EngineAssets/Textures/white.tif similarity index 100% rename from Engine/EngineAssets/Textures/white.tif rename to Assets/Engine/EngineAssets/Textures/white.tif diff --git a/Engine/EngineAssets/Textures/white.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/white.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/white.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/white.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/white_cm.tif b/Assets/Engine/EngineAssets/Textures/white_cm.tif similarity index 100% rename from Engine/EngineAssets/Textures/white_cm.tif rename to Assets/Engine/EngineAssets/Textures/white_cm.tif diff --git a/Engine/EngineAssets/Textures/white_cm.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/white_cm.tif.exportsettings similarity index 100% rename from Engine/EngineAssets/Textures/white_cm.tif.exportsettings rename to Assets/Engine/EngineAssets/Textures/white_cm.tif.exportsettings diff --git a/Engine/EngineAssets/Textures/white_ddn.tif b/Assets/Engine/EngineAssets/Textures/white_ddn.tif similarity index 100% rename from Engine/EngineAssets/Textures/white_ddn.tif rename to Assets/Engine/EngineAssets/Textures/white_ddn.tif diff --git a/Engine/EngineAssets/defaulttextures.xml b/Assets/Engine/EngineAssets/defaulttextures.xml similarity index 100% rename from Engine/EngineAssets/defaulttextures.xml rename to Assets/Engine/EngineAssets/defaulttextures.xml diff --git a/Engine/Engine_Dependencies.xml b/Assets/Engine/Engine_Dependencies.xml similarity index 100% rename from Engine/Engine_Dependencies.xml rename to Assets/Engine/Engine_Dependencies.xml diff --git a/Engine/Entities/AnimObject.ent b/Assets/Engine/Entities/AnimObject.ent similarity index 100% rename from Engine/Entities/AnimObject.ent rename to Assets/Engine/Entities/AnimObject.ent diff --git a/Engine/Entities/AreaBezierVolume.ent b/Assets/Engine/Entities/AreaBezierVolume.ent similarity index 100% rename from Engine/Entities/AreaBezierVolume.ent rename to Assets/Engine/Entities/AreaBezierVolume.ent diff --git a/Engine/Entities/AreaBox.ent b/Assets/Engine/Entities/AreaBox.ent similarity index 100% rename from Engine/Entities/AreaBox.ent rename to Assets/Engine/Entities/AreaBox.ent diff --git a/Engine/Entities/AreaShape.ent b/Assets/Engine/Entities/AreaShape.ent similarity index 100% rename from Engine/Entities/AreaShape.ent rename to Assets/Engine/Entities/AreaShape.ent diff --git a/Engine/Entities/AreaSolid.ent b/Assets/Engine/Entities/AreaSolid.ent similarity index 100% rename from Engine/Entities/AreaSolid.ent rename to Assets/Engine/Entities/AreaSolid.ent diff --git a/Engine/Entities/AreaSphere.ent b/Assets/Engine/Entities/AreaSphere.ent similarity index 100% rename from Engine/Entities/AreaSphere.ent rename to Assets/Engine/Entities/AreaSphere.ent diff --git a/Engine/Entities/AreaTrigger.ent b/Assets/Engine/Entities/AreaTrigger.ent similarity index 100% rename from Engine/Entities/AreaTrigger.ent rename to Assets/Engine/Entities/AreaTrigger.ent diff --git a/Engine/Entities/AudioAreaAmbience.ent b/Assets/Engine/Entities/AudioAreaAmbience.ent similarity index 100% rename from Engine/Entities/AudioAreaAmbience.ent rename to Assets/Engine/Entities/AudioAreaAmbience.ent diff --git a/Engine/Entities/AudioAreaEntity.ent b/Assets/Engine/Entities/AudioAreaEntity.ent similarity index 100% rename from Engine/Entities/AudioAreaEntity.ent rename to Assets/Engine/Entities/AudioAreaEntity.ent diff --git a/Engine/Entities/AudioAreaRandom.ent b/Assets/Engine/Entities/AudioAreaRandom.ent similarity index 100% rename from Engine/Entities/AudioAreaRandom.ent rename to Assets/Engine/Entities/AudioAreaRandom.ent diff --git a/Engine/Entities/AudioTriggerSpot.ent b/Assets/Engine/Entities/AudioTriggerSpot.ent similarity index 100% rename from Engine/Entities/AudioTriggerSpot.ent rename to Assets/Engine/Entities/AudioTriggerSpot.ent diff --git a/Engine/Entities/BasicEntity.ent b/Assets/Engine/Entities/BasicEntity.ent similarity index 100% rename from Engine/Entities/BasicEntity.ent rename to Assets/Engine/Entities/BasicEntity.ent diff --git a/Engine/Entities/CActorWrapper.ent b/Assets/Engine/Entities/CActorWrapper.ent similarity index 100% rename from Engine/Entities/CActorWrapper.ent rename to Assets/Engine/Entities/CActorWrapper.ent diff --git a/Engine/Entities/CameraSource.ent b/Assets/Engine/Entities/CameraSource.ent similarity index 100% rename from Engine/Entities/CameraSource.ent rename to Assets/Engine/Entities/CameraSource.ent diff --git a/Engine/Entities/CameraTarget.ent b/Assets/Engine/Entities/CameraTarget.ent similarity index 100% rename from Engine/Entities/CameraTarget.ent rename to Assets/Engine/Entities/CameraTarget.ent diff --git a/Engine/Entities/Comment.ent b/Assets/Engine/Entities/Comment.ent similarity index 100% rename from Engine/Entities/Comment.ent rename to Assets/Engine/Entities/Comment.ent diff --git a/Engine/Entities/EnvironmentLight.ent b/Assets/Engine/Entities/EnvironmentLight.ent similarity index 100% rename from Engine/Entities/EnvironmentLight.ent rename to Assets/Engine/Entities/EnvironmentLight.ent diff --git a/Engine/Entities/FogVolume.ent b/Assets/Engine/Entities/FogVolume.ent similarity index 100% rename from Engine/Entities/FogVolume.ent rename to Assets/Engine/Entities/FogVolume.ent diff --git a/Engine/Entities/GeomCache.ent b/Assets/Engine/Entities/GeomCache.ent similarity index 100% rename from Engine/Entities/GeomCache.ent rename to Assets/Engine/Entities/GeomCache.ent diff --git a/Engine/Entities/Light.ent b/Assets/Engine/Entities/Light.ent similarity index 100% rename from Engine/Entities/Light.ent rename to Assets/Engine/Entities/Light.ent diff --git a/Engine/Entities/LivingEntity.ent b/Assets/Engine/Entities/LivingEntity.ent similarity index 100% rename from Engine/Entities/LivingEntity.ent rename to Assets/Engine/Entities/LivingEntity.ent diff --git a/Engine/Entities/NavigationSeedPoint.ent b/Assets/Engine/Entities/NavigationSeedPoint.ent similarity index 100% rename from Engine/Entities/NavigationSeedPoint.ent rename to Assets/Engine/Entities/NavigationSeedPoint.ent diff --git a/Engine/Entities/ParticleEffect.ent b/Assets/Engine/Entities/ParticleEffect.ent similarity index 100% rename from Engine/Entities/ParticleEffect.ent rename to Assets/Engine/Entities/ParticleEffect.ent diff --git a/Engine/Entities/ProceduralObject.ent b/Assets/Engine/Entities/ProceduralObject.ent similarity index 100% rename from Engine/Entities/ProceduralObject.ent rename to Assets/Engine/Entities/ProceduralObject.ent diff --git a/Engine/Entities/ProximityTrigger.ent b/Assets/Engine/Entities/ProximityTrigger.ent similarity index 100% rename from Engine/Entities/ProximityTrigger.ent rename to Assets/Engine/Entities/ProximityTrigger.ent diff --git a/Engine/Entities/RigidBody.ent b/Assets/Engine/Entities/RigidBody.ent similarity index 100% rename from Engine/Entities/RigidBody.ent rename to Assets/Engine/Entities/RigidBody.ent diff --git a/Engine/Entities/RigidBodyEx.ent b/Assets/Engine/Entities/RigidBodyEx.ent similarity index 100% rename from Engine/Entities/RigidBodyEx.ent rename to Assets/Engine/Entities/RigidBodyEx.ent diff --git a/Engine/Entities/SmartObject.ent b/Assets/Engine/Entities/SmartObject.ent similarity index 100% rename from Engine/Entities/SmartObject.ent rename to Assets/Engine/Entities/SmartObject.ent diff --git a/Engine/Entities/TagPoint.ent b/Assets/Engine/Entities/TagPoint.ent similarity index 100% rename from Engine/Entities/TagPoint.ent rename to Assets/Engine/Entities/TagPoint.ent diff --git a/Engine/Entities/UiCanvasRef.ent b/Assets/Engine/Entities/UiCanvasRef.ent similarity index 100% rename from Engine/Entities/UiCanvasRef.ent rename to Assets/Engine/Entities/UiCanvasRef.ent diff --git a/Engine/Fonts/Vera.ttf b/Assets/Engine/Fonts/Vera.ttf similarity index 100% rename from Engine/Fonts/Vera.ttf rename to Assets/Engine/Fonts/Vera.ttf diff --git a/Engine/Fonts/VeraMono.ttf b/Assets/Engine/Fonts/VeraMono.ttf similarity index 100% rename from Engine/Fonts/VeraMono.ttf rename to Assets/Engine/Fonts/VeraMono.ttf diff --git a/Engine/Fonts/Vera_COPYRIGHT.TXT b/Assets/Engine/Fonts/Vera_COPYRIGHT.TXT similarity index 100% rename from Engine/Fonts/Vera_COPYRIGHT.TXT rename to Assets/Engine/Fonts/Vera_COPYRIGHT.TXT diff --git a/Engine/Fonts/Vera_RELEASENOTES.TXT b/Assets/Engine/Fonts/Vera_RELEASENOTES.TXT similarity index 100% rename from Engine/Fonts/Vera_RELEASENOTES.TXT rename to Assets/Engine/Fonts/Vera_RELEASENOTES.TXT diff --git a/Engine/Fonts/console.font b/Assets/Engine/Fonts/console.font similarity index 100% rename from Engine/Fonts/console.font rename to Assets/Engine/Fonts/console.font diff --git a/Engine/Fonts/console.xml b/Assets/Engine/Fonts/console.xml similarity index 100% rename from Engine/Fonts/console.xml rename to Assets/Engine/Fonts/console.xml diff --git a/Engine/Fonts/default-ui.font b/Assets/Engine/Fonts/default-ui.font similarity index 100% rename from Engine/Fonts/default-ui.font rename to Assets/Engine/Fonts/default-ui.font diff --git a/Engine/Fonts/default-ui.xml b/Assets/Engine/Fonts/default-ui.xml similarity index 100% rename from Engine/Fonts/default-ui.xml rename to Assets/Engine/Fonts/default-ui.xml diff --git a/Engine/Fonts/default.font b/Assets/Engine/Fonts/default.font similarity index 100% rename from Engine/Fonts/default.font rename to Assets/Engine/Fonts/default.font diff --git a/Engine/Fonts/default.xml b/Assets/Engine/Fonts/default.xml similarity index 100% rename from Engine/Fonts/default.xml rename to Assets/Engine/Fonts/default.xml diff --git a/Engine/Fonts/hud.font b/Assets/Engine/Fonts/hud.font similarity index 100% rename from Engine/Fonts/hud.font rename to Assets/Engine/Fonts/hud.font diff --git a/Engine/Fonts/hud.xml b/Assets/Engine/Fonts/hud.xml similarity index 100% rename from Engine/Fonts/hud.xml rename to Assets/Engine/Fonts/hud.xml diff --git a/Engine/Libs/MaterialEffects/FXLibs/collisions.xml b/Assets/Engine/Libs/MaterialEffects/FXLibs/collisions.xml similarity index 100% rename from Engine/Libs/MaterialEffects/FXLibs/collisions.xml rename to Assets/Engine/Libs/MaterialEffects/FXLibs/collisions.xml diff --git a/Engine/Libs/MaterialEffects/materialeffects.xml b/Assets/Engine/Libs/MaterialEffects/materialeffects.xml similarity index 100% rename from Engine/Libs/MaterialEffects/materialeffects.xml rename to Assets/Engine/Libs/MaterialEffects/materialeffects.xml diff --git a/Engine/Libs/MaterialEffects/surfacetypes.xml b/Assets/Engine/Libs/MaterialEffects/surfacetypes.xml similarity index 100% rename from Engine/Libs/MaterialEffects/surfacetypes.xml rename to Assets/Engine/Libs/MaterialEffects/surfacetypes.xml diff --git a/Engine/Libs/PostEffectGroups/Default.xml b/Assets/Engine/Libs/PostEffectGroups/Default.xml similarity index 100% rename from Engine/Libs/PostEffectGroups/Default.xml rename to Assets/Engine/Libs/PostEffectGroups/Default.xml diff --git a/Engine/Objects/default/editorprimitive.mtl b/Assets/Engine/Objects/default/editorprimitive.mtl similarity index 100% rename from Engine/Objects/default/editorprimitive.mtl rename to Assets/Engine/Objects/default/editorprimitive.mtl diff --git a/Engine/Objects/default/primitive_capsule.cgf b/Assets/Engine/Objects/default/primitive_capsule.cgf similarity index 100% rename from Engine/Objects/default/primitive_capsule.cgf rename to Assets/Engine/Objects/default/primitive_capsule.cgf diff --git a/Engine/Objects/default/primitive_cube.cgf b/Assets/Engine/Objects/default/primitive_cube.cgf similarity index 100% rename from Engine/Objects/default/primitive_cube.cgf rename to Assets/Engine/Objects/default/primitive_cube.cgf diff --git a/Engine/Objects/default/primitive_plane.cgf b/Assets/Engine/Objects/default/primitive_plane.cgf similarity index 100% rename from Engine/Objects/default/primitive_plane.cgf rename to Assets/Engine/Objects/default/primitive_plane.cgf diff --git a/Engine/Objects/default/primitive_sphere.cgf b/Assets/Engine/Objects/default/primitive_sphere.cgf similarity index 100% rename from Engine/Objects/default/primitive_sphere.cgf rename to Assets/Engine/Objects/default/primitive_sphere.cgf diff --git a/Engine/Schema/Environment.xmlschema b/Assets/Engine/Schema/Environment.xmlschema similarity index 100% rename from Engine/Schema/Environment.xmlschema rename to Assets/Engine/Schema/Environment.xmlschema diff --git a/Engine/Schema/FlaresLibrary.xmlschema b/Assets/Engine/Schema/FlaresLibrary.xmlschema similarity index 100% rename from Engine/Schema/FlaresLibrary.xmlschema rename to Assets/Engine/Schema/FlaresLibrary.xmlschema diff --git a/Engine/Schema/Font.xmlschema b/Assets/Engine/Schema/Font.xmlschema similarity index 100% rename from Engine/Schema/Font.xmlschema rename to Assets/Engine/Schema/Font.xmlschema diff --git a/Engine/Schema/ParticleLibrary.xmlschema b/Assets/Engine/Schema/ParticleLibrary.xmlschema similarity index 100% rename from Engine/Schema/ParticleLibrary.xmlschema rename to Assets/Engine/Schema/ParticleLibrary.xmlschema diff --git a/Engine/Schema/cloudlibrary.xmlschema b/Assets/Engine/Schema/cloudlibrary.xmlschema similarity index 100% rename from Engine/Schema/cloudlibrary.xmlschema rename to Assets/Engine/Schema/cloudlibrary.xmlschema diff --git a/Engine/Schema/editorappdescriptor.xmlschema b/Assets/Engine/Schema/editorappdescriptor.xmlschema similarity index 100% rename from Engine/Schema/editorappdescriptor.xmlschema rename to Assets/Engine/Schema/editorappdescriptor.xmlschema diff --git a/Engine/Schema/enginedependency.xmlschema b/Assets/Engine/Schema/enginedependency.xmlschema similarity index 100% rename from Engine/Schema/enginedependency.xmlschema rename to Assets/Engine/Schema/enginedependency.xmlschema diff --git a/Engine/Schema/ent.xmlschema b/Assets/Engine/Schema/ent.xmlschema similarity index 100% rename from Engine/Schema/ent.xmlschema rename to Assets/Engine/Schema/ent.xmlschema diff --git a/Engine/Schema/gameappdescriptor.xmlschema b/Assets/Engine/Schema/gameappdescriptor.xmlschema similarity index 100% rename from Engine/Schema/gameappdescriptor.xmlschema rename to Assets/Engine/Schema/gameappdescriptor.xmlschema diff --git a/Engine/Schema/materialeffectlibrary.xmlschema b/Assets/Engine/Schema/materialeffectlibrary.xmlschema similarity index 100% rename from Engine/Schema/materialeffectlibrary.xmlschema rename to Assets/Engine/Schema/materialeffectlibrary.xmlschema diff --git a/Engine/Schema/materialeffects.xmlschema b/Assets/Engine/Schema/materialeffects.xmlschema similarity index 100% rename from Engine/Schema/materialeffects.xmlschema rename to Assets/Engine/Schema/materialeffects.xmlschema diff --git a/Engine/Schema/rainandsnowtextures.xmlschema b/Assets/Engine/Schema/rainandsnowtextures.xmlschema similarity index 100% rename from Engine/Schema/rainandsnowtextures.xmlschema rename to Assets/Engine/Schema/rainandsnowtextures.xmlschema diff --git a/Engine/Schema/surfacetypes.xmlschema b/Assets/Engine/Schema/surfacetypes.xmlschema similarity index 100% rename from Engine/Schema/surfacetypes.xmlschema rename to Assets/Engine/Schema/surfacetypes.xmlschema diff --git a/Engine/Schema/vegdescriptorlist.xmlschema b/Assets/Engine/Schema/vegdescriptorlist.xmlschema similarity index 100% rename from Engine/Schema/vegdescriptorlist.xmlschema rename to Assets/Engine/Schema/vegdescriptorlist.xmlschema diff --git a/Engine/Scripts/EngineCommon.lua b/Assets/Engine/Scripts/EngineCommon.lua similarity index 100% rename from Engine/Scripts/EngineCommon.lua rename to Assets/Engine/Scripts/EngineCommon.lua diff --git a/Engine/Scripts/Entities/AI/NavigationSeedPoint.lua b/Assets/Engine/Scripts/Entities/AI/NavigationSeedPoint.lua similarity index 100% rename from Engine/Scripts/Entities/AI/NavigationSeedPoint.lua rename to Assets/Engine/Scripts/Entities/AI/NavigationSeedPoint.lua diff --git a/Engine/Scripts/Entities/AI/SmartObject.lua b/Assets/Engine/Scripts/Entities/AI/SmartObject.lua similarity index 100% rename from Engine/Scripts/Entities/AI/SmartObject.lua rename to Assets/Engine/Scripts/Entities/AI/SmartObject.lua diff --git a/Engine/Scripts/Entities/AI/TagPoint.lua b/Assets/Engine/Scripts/Entities/AI/TagPoint.lua similarity index 100% rename from Engine/Scripts/Entities/AI/TagPoint.lua rename to Assets/Engine/Scripts/Entities/AI/TagPoint.lua diff --git a/Engine/Scripts/Entities/Actor/CActorWrapper.lua b/Assets/Engine/Scripts/Entities/Actor/CActorWrapper.lua similarity index 100% rename from Engine/Scripts/Entities/Actor/CActorWrapper.lua rename to Assets/Engine/Scripts/Entities/Actor/CActorWrapper.lua diff --git a/Engine/Scripts/Entities/Anim/MannequinObject.lua b/Assets/Engine/Scripts/Entities/Anim/MannequinObject.lua similarity index 100% rename from Engine/Scripts/Entities/Anim/MannequinObject.lua rename to Assets/Engine/Scripts/Entities/Anim/MannequinObject.lua diff --git a/Engine/Scripts/Entities/Default/GeomEntity.lua b/Assets/Engine/Scripts/Entities/Default/GeomEntity.lua similarity index 100% rename from Engine/Scripts/Entities/Default/GeomEntity.lua rename to Assets/Engine/Scripts/Entities/Default/GeomEntity.lua diff --git a/Engine/Scripts/Entities/Default/RopeEntity.lua b/Assets/Engine/Scripts/Entities/Default/RopeEntity.lua similarity index 100% rename from Engine/Scripts/Entities/Default/RopeEntity.lua rename to Assets/Engine/Scripts/Entities/Default/RopeEntity.lua diff --git a/Engine/Scripts/Entities/Environment/WaterVolume.lua b/Assets/Engine/Scripts/Entities/Environment/WaterVolume.lua similarity index 100% rename from Engine/Scripts/Entities/Environment/WaterVolume.lua rename to Assets/Engine/Scripts/Entities/Environment/WaterVolume.lua diff --git a/Engine/Scripts/Entities/Lights/EnvironmentLight.lua b/Assets/Engine/Scripts/Entities/Lights/EnvironmentLight.lua similarity index 100% rename from Engine/Scripts/Entities/Lights/EnvironmentLight.lua rename to Assets/Engine/Scripts/Entities/Lights/EnvironmentLight.lua diff --git a/Engine/Scripts/Entities/Lights/Light.lua b/Assets/Engine/Scripts/Entities/Lights/Light.lua similarity index 100% rename from Engine/Scripts/Entities/Lights/Light.lua rename to Assets/Engine/Scripts/Entities/Lights/Light.lua diff --git a/Engine/Scripts/Entities/Others/CameraSource.lua b/Assets/Engine/Scripts/Entities/Others/CameraSource.lua similarity index 100% rename from Engine/Scripts/Entities/Others/CameraSource.lua rename to Assets/Engine/Scripts/Entities/Others/CameraSource.lua diff --git a/Engine/Scripts/Entities/Others/CameraTarget.lua b/Assets/Engine/Scripts/Entities/Others/CameraTarget.lua similarity index 100% rename from Engine/Scripts/Entities/Others/CameraTarget.lua rename to Assets/Engine/Scripts/Entities/Others/CameraTarget.lua diff --git a/Engine/Scripts/Entities/Others/Comment.lua b/Assets/Engine/Scripts/Entities/Others/Comment.lua similarity index 100% rename from Engine/Scripts/Entities/Others/Comment.lua rename to Assets/Engine/Scripts/Entities/Others/Comment.lua diff --git a/Engine/Scripts/Entities/Others/ProceduralObject.lua b/Assets/Engine/Scripts/Entities/Others/ProceduralObject.lua similarity index 100% rename from Engine/Scripts/Entities/Others/ProceduralObject.lua rename to Assets/Engine/Scripts/Entities/Others/ProceduralObject.lua diff --git a/Engine/Scripts/Entities/Others/RigidBody.lua b/Assets/Engine/Scripts/Entities/Others/RigidBody.lua similarity index 100% rename from Engine/Scripts/Entities/Others/RigidBody.lua rename to Assets/Engine/Scripts/Entities/Others/RigidBody.lua diff --git a/Engine/Scripts/Entities/Particle/ParticleEffect.lua b/Assets/Engine/Scripts/Entities/Particle/ParticleEffect.lua similarity index 100% rename from Engine/Scripts/Entities/Particle/ParticleEffect.lua rename to Assets/Engine/Scripts/Entities/Particle/ParticleEffect.lua diff --git a/Engine/Scripts/Entities/Physics/AnimObject.lua b/Assets/Engine/Scripts/Entities/Physics/AnimObject.lua similarity index 100% rename from Engine/Scripts/Entities/Physics/AnimObject.lua rename to Assets/Engine/Scripts/Entities/Physics/AnimObject.lua diff --git a/Engine/Scripts/Entities/Physics/AreaBezierVolume.lua b/Assets/Engine/Scripts/Entities/Physics/AreaBezierVolume.lua similarity index 100% rename from Engine/Scripts/Entities/Physics/AreaBezierVolume.lua rename to Assets/Engine/Scripts/Entities/Physics/AreaBezierVolume.lua diff --git a/Engine/Scripts/Entities/Physics/BasicEntity.lua b/Assets/Engine/Scripts/Entities/Physics/BasicEntity.lua similarity index 100% rename from Engine/Scripts/Entities/Physics/BasicEntity.lua rename to Assets/Engine/Scripts/Entities/Physics/BasicEntity.lua diff --git a/Engine/Scripts/Entities/Physics/LivingEntity.lua b/Assets/Engine/Scripts/Entities/Physics/LivingEntity.lua similarity index 100% rename from Engine/Scripts/Entities/Physics/LivingEntity.lua rename to Assets/Engine/Scripts/Entities/Physics/LivingEntity.lua diff --git a/Engine/Scripts/Entities/Physics/RigidBodyEx.lua b/Assets/Engine/Scripts/Entities/Physics/RigidBodyEx.lua similarity index 100% rename from Engine/Scripts/Entities/Physics/RigidBodyEx.lua rename to Assets/Engine/Scripts/Entities/Physics/RigidBodyEx.lua diff --git a/Engine/Scripts/Entities/Render/FogVolume.lua b/Assets/Engine/Scripts/Entities/Render/FogVolume.lua similarity index 100% rename from Engine/Scripts/Entities/Render/FogVolume.lua rename to Assets/Engine/Scripts/Entities/Render/FogVolume.lua diff --git a/Engine/Scripts/Entities/Render/GeomCache.lua b/Assets/Engine/Scripts/Entities/Render/GeomCache.lua similarity index 100% rename from Engine/Scripts/Entities/Render/GeomCache.lua rename to Assets/Engine/Scripts/Entities/Render/GeomCache.lua diff --git a/Engine/Scripts/Entities/Sound/AudioAreaAmbience.lua b/Assets/Engine/Scripts/Entities/Sound/AudioAreaAmbience.lua similarity index 100% rename from Engine/Scripts/Entities/Sound/AudioAreaAmbience.lua rename to Assets/Engine/Scripts/Entities/Sound/AudioAreaAmbience.lua diff --git a/Engine/Scripts/Entities/Sound/AudioAreaEntity.lua b/Assets/Engine/Scripts/Entities/Sound/AudioAreaEntity.lua similarity index 100% rename from Engine/Scripts/Entities/Sound/AudioAreaEntity.lua rename to Assets/Engine/Scripts/Entities/Sound/AudioAreaEntity.lua diff --git a/Engine/Scripts/Entities/Sound/AudioAreaRandom.lua b/Assets/Engine/Scripts/Entities/Sound/AudioAreaRandom.lua similarity index 100% rename from Engine/Scripts/Entities/Sound/AudioAreaRandom.lua rename to Assets/Engine/Scripts/Entities/Sound/AudioAreaRandom.lua diff --git a/Engine/Scripts/Entities/Sound/AudioTriggerSpot.lua b/Assets/Engine/Scripts/Entities/Sound/AudioTriggerSpot.lua similarity index 100% rename from Engine/Scripts/Entities/Sound/AudioTriggerSpot.lua rename to Assets/Engine/Scripts/Entities/Sound/AudioTriggerSpot.lua diff --git a/Engine/Scripts/Entities/Sound/Shared/AudioUtils.lua b/Assets/Engine/Scripts/Entities/Sound/Shared/AudioUtils.lua similarity index 100% rename from Engine/Scripts/Entities/Sound/Shared/AudioUtils.lua rename to Assets/Engine/Scripts/Entities/Sound/Shared/AudioUtils.lua diff --git a/Engine/Scripts/Entities/Triggers/AreaTrigger.lua b/Assets/Engine/Scripts/Entities/Triggers/AreaTrigger.lua similarity index 100% rename from Engine/Scripts/Entities/Triggers/AreaTrigger.lua rename to Assets/Engine/Scripts/Entities/Triggers/AreaTrigger.lua diff --git a/Engine/Scripts/Entities/Triggers/ProximityTrigger.lua b/Assets/Engine/Scripts/Entities/Triggers/ProximityTrigger.lua similarity index 100% rename from Engine/Scripts/Entities/Triggers/ProximityTrigger.lua rename to Assets/Engine/Scripts/Entities/Triggers/ProximityTrigger.lua diff --git a/Engine/Scripts/Entities/UI/UiCanvasRefEntity.lua b/Assets/Engine/Scripts/Entities/UI/UiCanvasRefEntity.lua similarity index 100% rename from Engine/Scripts/Entities/UI/UiCanvasRefEntity.lua rename to Assets/Engine/Scripts/Entities/UI/UiCanvasRefEntity.lua diff --git a/Engine/Scripts/Utils/Components/GameplayUtils.lua b/Assets/Engine/Scripts/Utils/Components/GameplayUtils.lua similarity index 100% rename from Engine/Scripts/Utils/Components/GameplayUtils.lua rename to Assets/Engine/Scripts/Utils/Components/GameplayUtils.lua diff --git a/Engine/Scripts/Utils/Components/InputUtils.lua b/Assets/Engine/Scripts/Utils/Components/InputUtils.lua similarity index 100% rename from Engine/Scripts/Utils/Components/InputUtils.lua rename to Assets/Engine/Scripts/Utils/Components/InputUtils.lua diff --git a/Engine/Scripts/Utils/Components/MultiHandlers.lua b/Assets/Engine/Scripts/Utils/Components/MultiHandlers.lua similarity index 100% rename from Engine/Scripts/Utils/Components/MultiHandlers.lua rename to Assets/Engine/Scripts/Utils/Components/MultiHandlers.lua diff --git a/Engine/Scripts/Utils/Containers.lua b/Assets/Engine/Scripts/Utils/Containers.lua similarity index 100% rename from Engine/Scripts/Utils/Containers.lua rename to Assets/Engine/Scripts/Utils/Containers.lua diff --git a/Engine/Scripts/Utils/EntityUtils.lua b/Assets/Engine/Scripts/Utils/EntityUtils.lua similarity index 100% rename from Engine/Scripts/Utils/EntityUtils.lua rename to Assets/Engine/Scripts/Utils/EntityUtils.lua diff --git a/Engine/Scripts/Utils/Math.lua b/Assets/Engine/Scripts/Utils/Math.lua similarity index 100% rename from Engine/Scripts/Utils/Math.lua rename to Assets/Engine/Scripts/Utils/Math.lua diff --git a/Engine/SeedAssetList.seed b/Assets/Engine/SeedAssetList.seed similarity index 100% rename from Engine/SeedAssetList.seed rename to Assets/Engine/SeedAssetList.seed diff --git a/Engine/Shaders/DistanceClouds.ext b/Assets/Engine/Shaders/DistanceClouds.ext similarity index 100% rename from Engine/Shaders/DistanceClouds.ext rename to Assets/Engine/Shaders/DistanceClouds.ext diff --git a/Engine/Shaders/Eye.ext b/Assets/Engine/Shaders/Eye.ext similarity index 100% rename from Engine/Shaders/Eye.ext rename to Assets/Engine/Shaders/Eye.ext diff --git a/Engine/Shaders/Fur.ext b/Assets/Engine/Shaders/Fur.ext similarity index 100% rename from Engine/Shaders/Fur.ext rename to Assets/Engine/Shaders/Fur.ext diff --git a/Engine/Shaders/GeometryBeam.ext b/Assets/Engine/Shaders/GeometryBeam.ext similarity index 100% rename from Engine/Shaders/GeometryBeam.ext rename to Assets/Engine/Shaders/GeometryBeam.ext diff --git a/Engine/Shaders/Glass.ext b/Assets/Engine/Shaders/Glass.ext similarity index 100% rename from Engine/Shaders/Glass.ext rename to Assets/Engine/Shaders/Glass.ext diff --git a/Engine/Shaders/HWScripts/CryFX/AuxGeom.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/AuxGeom.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/AuxGeom.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/AuxGeom.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Clouds.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Clouds.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Clouds.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Clouds.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Common.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/Common.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Common.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/Common.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Common.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Common.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Common.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Common.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/CommonDebugPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonDebugPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonDebugPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonDebugPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPassTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPassTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPassTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonMotionBlurPassTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonSVO.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonSVO.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonSVO.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonSVO.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonShadowGenPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPassTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPassTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonShadowGenPassTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonShadowGenPassTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonTessellation.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonTessellation.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonTessellation.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonTessellation.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonViewsPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonViewsPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonViewsPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonViewsPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonViewsPassTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonViewsPassTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonViewsPassTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonViewsPassTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonZPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonZPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonZPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonZPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonZPassTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonZPassTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonZPassTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonZPassTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/CommonZPrePass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/CommonZPrePass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/CommonZPrePass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/CommonZPrePass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/DXTCompress.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DXTCompress.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DXTCompress.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DXTCompress.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Debug.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Debug.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Debug.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Debug.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DebugLight.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DebugLight.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DebugLight.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DebugLight.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DeferredCaustics.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DeferredCaustics.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DeferredCaustics.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DeferredCaustics.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DeferredRain.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DeferredRain.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DeferredRain.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DeferredRain.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DeferredShading.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DeferredShading.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DeferredShading.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DeferredShading.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DeferredShadows.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/DeferredShadows.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DeferredShadows.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/DeferredShadows.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/DeferredSnow.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DeferredSnow.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DeferredSnow.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DeferredSnow.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DepthOfField.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DepthOfField.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DepthOfField.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DepthOfField.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/DistanceClouds.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/DistanceClouds.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/DistanceClouds.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/DistanceClouds.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Eye.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Eye.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Eye.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Eye.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/FXConstantDefs.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FXConstantDefs.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FXConstantDefs.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FXConstantDefs.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/FXSamplerDefs.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FXSamplerDefs.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FXSamplerDefs.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FXSamplerDefs.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/FXStreamDefs.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FXStreamDefs.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FXStreamDefs.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FXStreamDefs.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/FallBack.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/FallBack.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FallBack.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/FallBack.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/FixedPipelineEmu.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/FixedPipelineEmu.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FixedPipelineEmu.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/FixedPipelineEmu.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/FogVolume.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/FogVolume.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FogVolume.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/FogVolume.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Fur.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Fur.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Fur.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Fur.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/FurFinPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FurFinPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FurFinPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FurFinPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/FurObliteratePass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FurObliteratePass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FurObliteratePass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FurObliteratePass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/FurZPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/FurZPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/FurZPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/FurZPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticle.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticle.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticle.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticle.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleBegin.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBegin.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleBegin.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBegin.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSort.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSort.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSort.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSort.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortGlobal2048.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortGlobal2048.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortGlobal2048.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortGlobal2048.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortLocal.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortLocal.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortLocal.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleBitonicSortLocal.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleCurves.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleCurves.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleCurves.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleCurves.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleEmit.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleEmit.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleEmit.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleEmit.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleGatherSortDistance.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleGatherSortDistance.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleGatherSortDistance.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleGatherSortDistance.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleHelpers.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleHelpers.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleHelpers.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleHelpers.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleOddEvenSort.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleOddEvenSort.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleOddEvenSort.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleOddEvenSort.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleRenderNoGS.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleRenderNoGS.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleRenderNoGS.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleRenderNoGS.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GPUParticleUpdate.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleUpdate.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GPUParticleUpdate.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GPUParticleUpdate.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/GeometryBeam.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/GeometryBeam.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/GeometryBeam.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/GeometryBeam.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Glass.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Glass.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Glass.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Glass.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass0.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass0.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass0.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass0.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass1.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass1.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass1.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/HDRDolbyMetadataPass1.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HDRPostProcess.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/HDRPostProcess.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HDRPostProcess.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/HDRPostProcess.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HDRPostProcessDolby.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/HDRPostProcessDolby.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HDRPostProcessDolby.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/HDRPostProcessDolby.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Hair.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Hair.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Hair.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Hair.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Helper.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Helper.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Helper.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Helper.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Hud3D.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Hud3D.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Hud3D.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Hud3D.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HumanSkin.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/HumanSkin.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HumanSkin.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/HumanSkin.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/HumanSkinTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/HumanSkinTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HumanSkinTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/HumanSkinTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/HumanSkinValidations.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/HumanSkinValidations.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/HumanSkinValidations.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/HumanSkinValidations.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Illum.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Illum.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Illum.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Illum.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/IllumTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/IllumTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/IllumTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/IllumTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/IllumValidations.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/IllumValidations.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/IllumValidations.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/IllumValidations.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/LensOptics.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/LensOptics.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/LensOptics.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/LensOptics.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Light.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Light.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Light.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Light.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/LightBeam.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/LightBeam.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/LightBeam.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/LightBeam.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/LightVolumes.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/LightVolumes.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/LightVolumes.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/LightVolumes.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/MeshBaker.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/MeshBaker.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/MeshBaker.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/MeshBaker.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/MeshBakerDilate.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/MeshBakerDilate.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/MeshBakerDilate.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/MeshBakerDilate.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ModificatorTC.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ModificatorTC.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ModificatorTC.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ModificatorTC.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/ModificatorVT.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ModificatorVT.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ModificatorVT.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ModificatorVT.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Monitor.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Monitor.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Monitor.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Monitor.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/MotionBlur.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/MotionBlur.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/MotionBlur.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/MotionBlur.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/MultiLayerAlphaBlend.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/MultiLayerAlphaBlend.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/MultiLayerAlphaBlend.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/MultiLayerAlphaBlend.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/NoDraw.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/NoDraw.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/NoDraw.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/NoDraw.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/OcclusionTest.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/OcclusionTest.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/OcclusionTest.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/OcclusionTest.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ParticleImposter.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ParticleImposter.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticleImposter.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticleImposter.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ParticleVT.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ParticleVT.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticleVT.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticleVT.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Particles.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/Particles.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Particles.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/Particles.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Particles.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Particles.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Particles.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Particles.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ParticlesCustomPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ParticlesCustomPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticlesCustomPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticlesCustomPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/ParticlesNoMat.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ParticlesNoMat.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticlesNoMat.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticlesNoMat.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ParticlesNoMatMirror.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ParticlesNoMatMirror.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticlesNoMatMirror.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticlesNoMatMirror.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ParticlesShadowPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ParticlesShadowPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ParticlesShadowPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ParticlesShadowPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/PostAA.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/PostAA.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/PostAA.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/PostAA.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/PostEffects.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/PostEffects.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/PostEffects.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/PostEffects.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/PostEffectsGame.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/PostEffectsGame.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/PostEffectsGame.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/PostEffectsGame.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/PostEffectsLib.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/PostEffectsLib.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/PostEffectsLib.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/PostEffectsLib.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/ReferenceImage.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ReferenceImage.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ReferenceImage.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ReferenceImage.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ReferenceImageHDR.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ReferenceImageHDR.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ReferenceImageHDR.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ReferenceImageHDR.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Scopes.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Scopes.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Scopes.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Scopes.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ShadowBlur.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ShadowBlur.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ShadowBlur.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ShadowBlur.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/ShadowCommon.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/ShadowCommon.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ShadowCommon.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/ShadowCommon.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/ShadowMaskGen.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/ShadowMaskGen.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/ShadowMaskGen.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/ShadowMaskGen.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Sketch.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Sketch.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Sketch.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Sketch.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/SketchTerrain.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/SketchTerrain.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/SketchTerrain.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/SketchTerrain.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Sky.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Sky.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Sky.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Sky.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/SkyHDR.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/SkyHDR.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/SkyHDR.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/SkyHDR.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/SoftOcclusionQuery.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/SoftOcclusionQuery.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/SoftOcclusionQuery.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/SoftOcclusionQuery.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Stars.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Stars.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Stars.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Stars.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/StarterGame_GeometryBeamScaling.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/StarterGame_GeometryBeamScaling.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/StarterGame_GeometryBeamScaling.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/StarterGame_GeometryBeamScaling.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Stereo.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Stereo.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Stereo.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Stereo.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Sunshafts.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Sunshafts.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Sunshafts.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Sunshafts.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/TemplBeamProc.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/TemplBeamProc.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/TemplBeamProc.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/TemplBeamProc.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Terrain.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Terrain.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Terrain.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Terrain.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/TerrainValidations.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/TerrainValidations.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/TerrainValidations.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/TerrainValidations.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/TiledShading.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/TiledShading.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/TiledShading.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/TiledShading.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Total_Illumination.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Total_Illumination.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Total_Illumination.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Total_Illumination.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/UI.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/UI.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/UI.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/UI.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Vegetation.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Vegetation.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Vegetation.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Vegetation.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/VegetationTess.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/VegetationTess.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/VegetationTess.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/VegetationTess.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/VegetationValidations.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/VegetationValidations.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/VegetationValidations.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/VegetationValidations.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Video.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Video.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Video.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Video.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/VolumeLighting.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/VolumeLighting.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/VolumeLighting.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/VolumeLighting.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/VolumeObject.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/VolumeObject.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/VolumeObject.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/VolumeObject.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/VolumetricFog.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/VolumetricFog.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/VolumetricFog.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/VolumetricFog.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/Water.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Water.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Water.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Water.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/WaterCausticsPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/WaterCausticsPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/WaterCausticsPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/WaterCausticsPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/WaterFogVolume.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/WaterFogVolume.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/WaterFogVolume.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/WaterFogVolume.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/WaterOceanBottom.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/WaterOceanBottom.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/WaterOceanBottom.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/WaterOceanBottom.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/WaterReflectionsPass.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/WaterReflectionsPass.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/WaterReflectionsPass.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/WaterReflectionsPass.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/WaterVolume.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/WaterVolume.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/WaterVolume.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/WaterVolume.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/Waterfall.cfx b/Assets/Engine/Shaders/HWScripts/CryFX/Waterfall.cfx similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/Waterfall.cfx rename to Assets/Engine/Shaders/HWScripts/CryFX/Waterfall.cfx diff --git a/Engine/Shaders/HWScripts/CryFX/fragLib.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/fragLib.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/fragLib.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/fragLib.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/shadeLib.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/shadeLib.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/shadeLib.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/shadeLib.cfi diff --git a/Engine/Shaders/HWScripts/CryFX/vertexLib.cfi b/Assets/Engine/Shaders/HWScripts/CryFX/vertexLib.cfi similarity index 100% rename from Engine/Shaders/HWScripts/CryFX/vertexLib.cfi rename to Assets/Engine/Shaders/HWScripts/CryFX/vertexLib.cfi diff --git a/Engine/Shaders/Hair.ext b/Assets/Engine/Shaders/Hair.ext similarity index 100% rename from Engine/Shaders/Hair.ext rename to Assets/Engine/Shaders/Hair.ext diff --git a/Engine/Shaders/HumanSkin.ext b/Assets/Engine/Shaders/HumanSkin.ext similarity index 100% rename from Engine/Shaders/HumanSkin.ext rename to Assets/Engine/Shaders/HumanSkin.ext diff --git a/Engine/Shaders/Illum.ext b/Assets/Engine/Shaders/Illum.ext similarity index 100% rename from Engine/Shaders/Illum.ext rename to Assets/Engine/Shaders/Illum.ext diff --git a/Engine/Shaders/LensOptics.ext b/Assets/Engine/Shaders/LensOptics.ext similarity index 100% rename from Engine/Shaders/LensOptics.ext rename to Assets/Engine/Shaders/LensOptics.ext diff --git a/Engine/Shaders/LightBeam.ext b/Assets/Engine/Shaders/LightBeam.ext similarity index 100% rename from Engine/Shaders/LightBeam.ext rename to Assets/Engine/Shaders/LightBeam.ext diff --git a/Engine/Shaders/Monitor.ext b/Assets/Engine/Shaders/Monitor.ext similarity index 100% rename from Engine/Shaders/Monitor.ext rename to Assets/Engine/Shaders/Monitor.ext diff --git a/Engine/Shaders/ParticleImposter.ext b/Assets/Engine/Shaders/ParticleImposter.ext similarity index 100% rename from Engine/Shaders/ParticleImposter.ext rename to Assets/Engine/Shaders/ParticleImposter.ext diff --git a/Engine/Shaders/Particles.ext b/Assets/Engine/Shaders/Particles.ext similarity index 100% rename from Engine/Shaders/Particles.ext rename to Assets/Engine/Shaders/Particles.ext diff --git a/Engine/Shaders/RunTime.ext b/Assets/Engine/Shaders/RunTime.ext similarity index 100% rename from Engine/Shaders/RunTime.ext rename to Assets/Engine/Shaders/RunTime.ext diff --git a/Engine/Shaders/Scopes.ext b/Assets/Engine/Shaders/Scopes.ext similarity index 100% rename from Engine/Shaders/Scopes.ext rename to Assets/Engine/Shaders/Scopes.ext diff --git a/Engine/Shaders/ShaderProfiles.txt b/Assets/Engine/Shaders/ShaderProfiles.txt similarity index 100% rename from Engine/Shaders/ShaderProfiles.txt rename to Assets/Engine/Shaders/ShaderProfiles.txt diff --git a/Engine/Shaders/ShadowMaskGen.ext b/Assets/Engine/Shaders/ShadowMaskGen.ext similarity index 100% rename from Engine/Shaders/ShadowMaskGen.ext rename to Assets/Engine/Shaders/ShadowMaskGen.ext diff --git a/Engine/Shaders/SketchTerrain.ext b/Assets/Engine/Shaders/SketchTerrain.ext similarity index 100% rename from Engine/Shaders/SketchTerrain.ext rename to Assets/Engine/Shaders/SketchTerrain.ext diff --git a/Engine/Shaders/SkyHDR.ext b/Assets/Engine/Shaders/SkyHDR.ext similarity index 100% rename from Engine/Shaders/SkyHDR.ext rename to Assets/Engine/Shaders/SkyHDR.ext diff --git a/Engine/Shaders/StarterGame_GeometryBeamScaling.ext b/Assets/Engine/Shaders/StarterGame_GeometryBeamScaling.ext similarity index 100% rename from Engine/Shaders/StarterGame_GeometryBeamScaling.ext rename to Assets/Engine/Shaders/StarterGame_GeometryBeamScaling.ext diff --git a/Engine/Shaders/Statics.ext b/Assets/Engine/Shaders/Statics.ext similarity index 100% rename from Engine/Shaders/Statics.ext rename to Assets/Engine/Shaders/Statics.ext diff --git a/Engine/Shaders/TemplBeamProc.ext b/Assets/Engine/Shaders/TemplBeamProc.ext similarity index 100% rename from Engine/Shaders/TemplBeamProc.ext rename to Assets/Engine/Shaders/TemplBeamProc.ext diff --git a/Engine/Shaders/Terrain.ext b/Assets/Engine/Shaders/Terrain.ext similarity index 100% rename from Engine/Shaders/Terrain.ext rename to Assets/Engine/Shaders/Terrain.ext diff --git a/Engine/Shaders/Vegetation.ext b/Assets/Engine/Shaders/Vegetation.ext similarity index 100% rename from Engine/Shaders/Vegetation.ext rename to Assets/Engine/Shaders/Vegetation.ext diff --git a/Engine/Shaders/VolumeObject.ext b/Assets/Engine/Shaders/VolumeObject.ext similarity index 100% rename from Engine/Shaders/VolumeObject.ext rename to Assets/Engine/Shaders/VolumeObject.ext diff --git a/Engine/Shaders/Water.ext b/Assets/Engine/Shaders/Water.ext similarity index 100% rename from Engine/Shaders/Water.ext rename to Assets/Engine/Shaders/Water.ext diff --git a/Engine/Shaders/WaterVolume.ext b/Assets/Engine/Shaders/WaterVolume.ext similarity index 100% rename from Engine/Shaders/WaterVolume.ext rename to Assets/Engine/Shaders/WaterVolume.ext diff --git a/Engine/Shaders/Waterfall.ext b/Assets/Engine/Shaders/Waterfall.ext similarity index 100% rename from Engine/Shaders/Waterfall.ext rename to Assets/Engine/Shaders/Waterfall.ext diff --git a/Engine/exclude.filetag b/Assets/Engine/exclude.filetag similarity index 100% rename from Engine/exclude.filetag rename to Assets/Engine/exclude.filetag diff --git a/Engine/include.filetag b/Assets/Engine/include.filetag similarity index 100% rename from Engine/include.filetag rename to Assets/Engine/include.filetag diff --git a/Engine/materials/material_layers_default.mtl b/Assets/Engine/materials/material_layers_default.mtl similarity index 100% rename from Engine/materials/material_layers_default.mtl rename to Assets/Engine/materials/material_layers_default.mtl diff --git a/Engine/materials/material_terrain_default.mtl b/Assets/Engine/materials/material_terrain_default.mtl similarity index 100% rename from Engine/materials/material_terrain_default.mtl rename to Assets/Engine/materials/material_terrain_default.mtl diff --git a/Engine/textures/default_icon.png b/Assets/Engine/textures/default_icon.png similarity index 100% rename from Engine/textures/default_icon.png rename to Assets/Engine/textures/default_icon.png diff --git a/Engine/textures/default_icon.png.exportsettings b/Assets/Engine/textures/default_icon.png.exportsettings similarity index 100% rename from Engine/textures/default_icon.png.exportsettings rename to Assets/Engine/textures/default_icon.png.exportsettings diff --git a/Engine/textures/defaults/defaultnouvs.tif b/Assets/Engine/textures/defaults/defaultnouvs.tif similarity index 100% rename from Engine/textures/defaults/defaultnouvs.tif rename to Assets/Engine/textures/defaults/defaultnouvs.tif diff --git a/Engine/textures/defaults/grey.tif b/Assets/Engine/textures/defaults/grey.tif similarity index 100% rename from Engine/textures/defaults/grey.tif rename to Assets/Engine/textures/defaults/grey.tif diff --git a/Engine/textures/skys/night/half_moon.tif b/Assets/Engine/textures/skys/night/half_moon.tif similarity index 100% rename from Engine/textures/skys/night/half_moon.tif rename to Assets/Engine/textures/skys/night/half_moon.tif diff --git a/AutomatedTesting/EngineFinder.cmake b/AutomatedTesting/EngineFinder.cmake new file mode 100644 index 0000000000..1fdcef2b56 --- /dev/null +++ b/AutomatedTesting/EngineFinder.cmake @@ -0,0 +1,50 @@ +# +# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or +# its licensors. +# +# For complete copyright and license terms please see the LICENSE at the root of this +# distribution (the "License"). All use of this software is governed by the License, +# or, if provided, by the license below or the license accompanying this file. Do not +# remove or modify any license notices. This file is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# +# This file is copied during engine registration. Edits to this file will be lost next +# time a registration happens. + +include_guard() + +# Read the engine name from the project_json file +file(READ ${CMAKE_CURRENT_LIST_DIR}/project.json project_json) +string(JSON LY_ENGINE_NAME_TO_USE ERROR_VARIABLE json_error GET ${project_json} engine) +if(json_error) + message(FATAL_ERROR "Unable to read key 'engine' from 'project.json', error: ${json_error}") +endif() + +# Read the list of paths from ~.o3de/o3de_manifest.json +file(TO_CMAKE_PATH "$ENV{USERPROFILE}" home_directory) # Windows +if((NOT home_directory) OR (NOT EXISTS ${home_directory})) + file(TO_CMAKE_PATH "$ENV{HOME}" home_directory)# Unix +endif() + +if (NOT home_directory) + message(FATAL_ERROR "Cannot find user home directory, the o3de manifest cannot be found") +endif() +# Set manifest path to path in the user home directory +set(manifest_path ${home_directory}/.o3de/o3de_manifest.json) + +if(EXISTS ${manifest_path}) + file(READ ${manifest_path} manifest_json) + string(JSON engines_count ERROR_VARIABLE json_error LENGTH ${manifest_json} engines) + if(json_error) + message(FATAL_ERROR "Unable to read key 'engines' from '${manifest_path}', error: ${json_error}") + endif() + + math(EXPR engines_count "${engines_count}-1") + foreach(engine_path_index RANGE ${engines_count}) + string(JSON engine_path ERROR_VARIABLE json_error GET ${manifest_json} engines ${engine_path_index}) + if(${json_error}) + message(FATAL_ERROR "Unable to read engines[${engine_path_index}] '${manifest_path}', error: ${json_error}") + endif() + list(APPEND CMAKE_MODULE_PATH "${engine_path}/cmake") + endforeach() +endif() diff --git a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_batch_dependency_tests.py b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_batch_dependency_tests.py index cfd088adc0..e329846554 100755 --- a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_batch_dependency_tests.py +++ b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_batch_dependency_tests.py @@ -71,9 +71,9 @@ class TestsAssetProcessorBatch_DependenycyTests(object): env = ap_setup_fixture BATCH_LOG_PATH = env["ap_batch_log_file"] asset_processor.create_temp_asset_root() - asset_processor.add_relative_source_asset(os.path.join("Engine", "engine_dependencies.xml")) - asset_processor.add_scan_folder("Engine") - asset_processor.add_relative_source_asset(os.path.join("Engine", "Libs", "MaterialEffects", "surfacetypes.xml")) + asset_processor.add_relative_source_asset(os.path.join("Assets", "Engine", "engine_dependencies.xml")) + asset_processor.add_scan_folder(os.path.join("Assets", "Engine")) + asset_processor.add_relative_source_asset(os.path.join("Assets", "Engine", "Libs", "MaterialEffects", "surfacetypes.xml")) # Precondition: Assets are all processed asset_processor.batch_process() @@ -103,7 +103,7 @@ class TestsAssetProcessorBatch_DependenycyTests(object): assert surfacetypes_missing_logline, "Surfacetypes.xml not seen in the batch log as missing." # Add the schema file which allows our xml parser to understand dependencies for our engine_dependencies file - asset_processor.add_relative_source_asset(os.path.join("Engine", "Schema", "enginedependency.xmlschema")) + asset_processor.add_relative_source_asset(os.path.join("Assets", "Engine", "Schema", "enginedependency.xmlschema")) asset_processor.batch_process() _, output = asset_processor.batch_process(capture_output=True, diff --git a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_gui_tests_2.py b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_gui_tests_2.py index 7c7b6b2452..b25ee081a1 100755 --- a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_gui_tests_2.py +++ b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_processor_gui_tests_2.py @@ -205,10 +205,13 @@ class TestsAssetProcessorGUI_AllPlatforms(object): env = ap_setup_fixture # Copy test assets to new folder in dev folder # This new folder will be created outside the default project folder and will not be added as a scan folder - # by default, instead we'll modify the temporary AssetProcessorPlatformConfig.ini to add it test_assets_folder, cache_folder = asset_processor.prepare_test_environment(env["tests_dir"], "C4874115", relative_asset_root='', add_scan_folder=False) + # The AssetProcessor internal _cache_folder path is updated to point at the cache root in order + # to allow the comparison between the source asset path of "/C4874115" to match the cache assets + # in + asset_processor._cache_folder = os.path.dirname(cache_folder) assert os.path.exists(test_assets_folder), f"Test assets folder was not found {test_assets_folder}" # Run AP Batch @@ -226,7 +229,6 @@ class TestsAssetProcessorGUI_AllPlatforms(object): test_scan_folder_root_key = f"{ASSET_PROCESSOR_SETTINGS_ROOT_KEY}/ScanFolder C4874115" test_scan_folder_params.append(f'--regset="{test_scan_folder_root_key}/watch=@ROOT@/C4874115"') - test_scan_folder_params.append(f'--regset="{test_scan_folder_root_key}/output=C4874115"') test_scan_folder_params.append(f'--regset="{test_scan_folder_root_key}/recursive=1"') test_scan_folder_params.append(f'--regset="{test_scan_folder_root_key}/order=5000"') diff --git a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/assets/C4874115/C4874115_test_asset.txt b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/assets/C4874115/C4874115/C4874115_test_asset.txt similarity index 100% rename from AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/assets/C4874115/C4874115_test_asset.txt rename to AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/assets/C4874115/C4874115/C4874115_test_asset.txt diff --git a/AutomatedTesting/sounds/wwise_project/Helios.wproj b/AutomatedTesting/sounds/wwise_project/Helios.wproj deleted file mode 100644 index 3db6efcfdf..0000000000 --- a/AutomatedTesting/sounds/wwise_project/Helios.wproj +++ /dev/null @@ -1,13159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - GeneratedSoundBanks\Windows - - - - - 256 - - - - - - ..\wwise\ - - - - - Copy Streamed Files and Generate Dependency Info - - - - - "$(WwiseExePath)\CopyStreamedFiles.exe" -info "$(InfoFilePath)" -outputpath "$(SoundBankPath)" -banks "$(SoundBankListAsTextFile)" -languages "$(LanguageList)" -"$(WwiseProjectPath)\..\..\..\Tools\Python\python3.cmd" "$(WwiseProjectPath)\..\..\..\Gems\AudioEngineWwise\Tools\WwiseAuthoringScripts\bank_info_parser.py" "$(InfoFilePath)" "$(SoundBankPath)" - - - - - - - - - - - - - - - -80 - - - - - - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 8 - - - - - 0 - - - - - -1 - - - - - -1 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - -1 - - - - - -1 - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - 0 - - - - - False - - - - - True - - - - - False - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 2 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - False - - - - - 65535 - - - - - 127 - - - - - 0 - - - - - 1 - - - - - 60 - - - - - 0 - - - - - 127 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 50 - - - - - - - - - 1 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - 10000 - - - - - 1 - - - - - 400 - - - - - 1 - - - - - 1 - - - - - 0.5 - - - - - 0 - - - - - -96 - - - - - 0 - - - - - True - - - - - False - - - - - 0 - - - - - 0 - - - - - 16 - - - - - -96 - - - - - 0 - - - - - 48000 - - - - - 0 - - - - - - - - - 16 - - - - - False - - - - - 1 - - - - - 75 - - - - - - - - - False - - - - - 512 - - - - - -50 - - - - - -30 - - - - - -40 - - - - - 0 - - - - - 24024 - - - - - 0 - - - - - 8 - - - - - English(US) - - - - - 0 - - - - - 0 - - - - - False - - - - - - - - - - - - - - - 1 - - - - - True - - - - - False - - - - - False - - - - - True - - - - - 256 - - - - - - - - - - 50 - - - - - 100 - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - False - - - - - - - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - - - True - - - - - True - - - - - True - - - - - True - - - - - -80 - - - - - - - - - - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 64 - - - - - 1.5 - - - - - 2 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - 64 - - - - - 64 - - - - - 4 - - - - - 0 - - - - - 0.1 - - - - - 4 - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 20 - - - - - 10000 - - - - - 0.2 - - - - - True - - - - - 80 - - - - - 0.2 - - - - - False - - - - - 200 - - - - - 0.25 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - True - - - - - True - - - - - True - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 4 - - - - - 4 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - True - - - - - 0 - - - - - 100 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 10 - - - - - 1 - - - - - 200 - - - - - 0 - - - - - 0 - - - - - 10 - - - - - 1 - - - - - 200 - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 40 - - - - - 0 - - - - - 1000 - - - - - 160 - - - - - 0 - - - - - 0.5 - - - - - 0.2 - - - - - 0 - - - - - 0.5 - - - - - 0.2 - - - - - 0 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 0.2 - - - - - 0 - - - - - 0.2 - - - - - 0.2 - - - - - 3000 - - - - - 0.2 - - - - - 0 - - - - - 6 - - - - - 15000 - - - - - 0 - - - - - 1000 - - - - - 20000 - - - - - 0 - - - - - 0.5 - - - - - 0.2 - - - - - 0 - - - - - 0.5 - - - - - 0.2 - - - - - 0 - - - - - 1 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - 1 - - - - - False - - - - - - - - - 1 - - - - - 0 - - - - - True - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - False - - - - - 3 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - False - - - - - 65535 - - - - - 127 - - - - - 0 - - - - - 1 - - - - - 60 - - - - - 0 - - - - - 127 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - False - - - - - 65535 - - - - - 127 - - - - - 0 - - - - - 1 - - - - - 60 - - - - - 0 - - - - - 127 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 1 - - - - - False - - - - - 2 - - - - - True - - - - - False - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 50 - - - - - False - - - - - -10 - - - - - True - - - - - 1 - - - - - 1 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 1 - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 50 - - - - - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 5 - - - - - 0.5 - - - - - 0 - - - - - True - - - - - 5000 - - - - - 10000 - - - - - False - - - - - - - - - False - - - - - 0 - - - - - 3 - - - - - 9 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - False - - - - - 65535 - - - - - 127 - - - - - 0 - - - - - 1 - - - - - 60 - - - - - 0 - - - - - 127 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - 0 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 50 - - - - - - - - - 1000 - - - - - 5000 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 96 - - - - - -100 - - - - - -100 - - - - - -100 - - - - - False - - - - - False - - - - - - - - - False - - - - - 0 - - - - - 35 - - - - - 0 - - - - - True - - - - - 0 - - - - - 1 - - - - - 1 - - - - - True - - - - - - - - - 0 - - - - - - - - - False - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 3 - - - - - 9 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - False - - - - - 0 - - - - - False - - - - - - - - - 3 - - - - - 64 - - - - - - - - - 0 - - - - - False - - - - - False - - - - - - - - - 3 - - - - - 64 - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 100 - - - - - 0 - - - - - True - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 100 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - -96 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 100 - - - - - 0 - - - - - False - - - - - 0 - - - - - 50 - - - - - 50 - - - - - 50 - - - - - - - - - False - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - 4000 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 1 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - 120 - - - - - 4 - - - - - 4 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 100 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 100 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - False - - - - - 65535 - - - - - 127 - - - - - 0 - - - - - 1 - - - - - 60 - - - - - 0 - - - - - 127 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 50 - - - - - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 1 - - - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - True - - - - - False - - - - - False - - - - - True - - - - - True - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - - -1 - - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 1 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - 120 - - - - - 4 - - - - - 4 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - True - - - - - True - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 12 - - - - - False - - - - - 20 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 1 - - - - - 50 - - - - - False - - - - - -10 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 100 - - - - - 120 - - - - - 4 - - - - - 4 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 1 - - - - - 1 - - - - - False - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 50 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 7 - - - - - - - - - - False - - - - - 1 - - - - - - - - - - False - - - - - True - - - - - True - - - - - True - - - - - True - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - - - - - 4 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - -6 - - - - - 0 - - - - - 90 - - - - - 0 - - - - - 245 - - - - - False - - - - - False - - - - - 100 - - - - - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - False - - - - - 100 - - - - - - - - - True - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - False - - - - - - - - - - - - - - - False - - - - - False - - - - - True - - - - - False - - - - - False - - - - - True - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - True - - - - - False - - - - - False - - - - - False - - - - - False - - - - - - - - - - True - - - - - False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - - - True - - - - - - - - - 0 - - - - - False - - - - - - - - - - - - - - - - - - True - - - - - 4 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - - - - - 0 - - - - - False - - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - 1 - - - - - 8 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - 100 - - - - - 0 - - - - - True - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 100 - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 100 - - - - - 1 - - - - - 0 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - False - - - - - - - - - 0 - - - - - 50 - - - - - 0.2 - - - - - False - - - - - 0.2 - - - - - 0.5 - - - - - True - - - - - 100 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - False - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - - - - - - 1 - - - - - False - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - - - - - - 1 - - - - - False - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - - - - - 0 - - - - - - - - - 0 - - - - - False - - - - - - - - - 0 - - - - - - - - - 0 - - - - - True - - - - - 1 - - - - - 1 - - - - - False - - - - - 1 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - - - - - - 4 - - - - - 1 - - - - - 440 - - - - - -12 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 1 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 4 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - -12 - - - - - 1 - - - - - False - - - - - 0 - - - - - -12 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - False - - - - - 10 - - - - - 0 - - - - - - - - - 0 - - - - - 4 - - - - - 6 - - - - - 5 - - - - - 100 - - - - - 1000 - - - - - 12000 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - True - - - - - True - - - - - True - - - - - 0 - - - - - False - - - - - True - - - - - 1 - - - - - 1 - - - - - 1 - - - - - - - - - 0 - - - - - 0.5 - - - - - 15 - - - - - True - - - - - True - - - - - 0 - - - - - False - - - - - True - - - - - 25 - - - - - - - - - 0.1 - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - True - - - - - 1.5 - - - - - 0.1 - - - - - 0 - - - - - - - - - 0.1 - - - - - True - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - True - - - - - 3 - - - - - 0.01 - - - - - -40 - - - - - - - - - True - - - - - 0 - - - - - True - - - - - 0.01 - - - - - 0 - - - - - False - - - - - True - - - - - 10 - - - - - 0.1 - - - - - 0 - - - - - - - - - 100 - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - 1 - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - True - - - - - 40 - - - - - 0 - - - - - 0 - - - - - 18000 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - True - - - - - 10 - - - - - 0 - - - - - 100 - - - - - -40 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - True - - - - - 40 - - - - - 18000 - - - - - -96 - - - - - -20 - - - - - 20 - - - - - 0 - - - - - 0 - - - - - False - - - - - True - - - - - 100 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 13.62 - - - - - 26.09 - - - - - 26.55 - - - - - 26.91 - - - - - 28.04 - - - - - 29.09 - - - - - 29.9 - - - - - 30.86 - - - - - 15.66 - - - - - 17.52 - - - - - 19.02 - - - - - 20.83 - - - - - 22.6 - - - - - 24.05 - - - - - 24.78 - - - - - 25.6 - - - - - -96.3 - - - - - 2 - - - - - True - - - - - 8 - - - - - False - - - - - 0 - - - - - True - - - - - 4 - - - - - -35 - - - - - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - True - - - - - 0 - - - - - True - - - - - 100 - - - - - 0 - - - - - False - - - - - -96.3 - - - - - - - - - 0 - - - - - 0 - - - - - 40 - - - - - 1.2 - - - - - 80 - - - - - 50 - - - - - 8 - - - - - 2 - - - - - 100 - - - - - 15 - - - - - 5 - - - - - 66 - - - - - -96.3 - - - - - 0 - - - - - -20 - - - - - 23 - - - - - True - - - - - False - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 3 - - - - - 1 - - - - - 1 - - - - - 1000 - - - - - 0 - - - - - 3 - - - - - 1 - - - - - 2 - - - - - 10000 - - - - - 0 - - - - - 3 - - - - - 1 - - - - - 0 - - - - - 2.25 - - - - - True - - - - - 0 - - - - - -96.3 - - - - - -96.3 - - - - - False - - - - - 25 - - - - - 8 - - - - - 0 - - - - - -20 - - - - - 100 - - - - - 50 - - - - - 100 - - - - - 0.8 - - - - - 0.1 - - - - - 0 - - - - - 180 - - - - - - - - - 1 - - - - - 0 - - - - - False - - - - - 0 - - - - - 1 - - - - - 0 - - - - - False - - - - - 0 - - - - - 10 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0.5 - - - - - False - - - - - 0 - - - - - 10 - - - - - 5 - - - - - 1 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0.25 - - - - - False - - - - - 0 - - - - - 0.5 - - - - - - - - - 1 - - - - - 1 - - - - - True - - - - - 0.5 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - False - - - - - 0 - - - - - 10 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - False - - - - - 10 - - - - - 0.5 - - - - - 0 - - - - - 1 - - - - - - - - - 440 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 10 - - - - - - - - - False - - - - - 440 - - - - - 0 - - - - - 10 - - - - - 1 - - - - - - - - - 0 - - - - - 5 - - - - - 1 - - - - - True - - - - - 0 - - - - - 1 - - - - - True - - - - - 50 - - - - - 1 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - False - - - - - 100 - - - - - - - - - 0 - - - - - 50 - - - - - 50 - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 100 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - -96.3 - - - - - 0 - - - - - 0 - - - - - False - - - - - 4 - - - - - 0 - - - - - 100 - - - - - 0 - - - - - 0 - - - - - -75 - - - - - False - - - - - False - - - - - 6 - - - - - 0 - - - - - 0 - - - - - True - - - - - 100 - - - - - True - - - - - 0 - - - - - -96.3 - - - - - 0 - - - - - -60 - - - - - -96.3 - - - - - False - - - - - 0 - - - - - 0 - - - - - 1024 - - - - - 48000 - - - - - 48000 - - - - - 48000 - - - - - 180 - - - - - 0 - - - - - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - 0 - - - - - -48 - - - - - False - - - - - 0.1 - - - - - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - 100 - - - - - 0 - - - - - 2048 - - - - - - - - - 0 - - - - - True - - - - - 100 - - - - - 1 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - True - - - - - True - - - - - - - - - 1 - - - - - False - - - - - Recorder.wav - - - - - -3 - - - - - 0 - - - - - True - - - - - 0 - - - - - 0 - - - - - - - - - - True - - - - - -96.3 - - - - - False - - - - - -3 - - - - - -3 - - - - - - - - - 0 - - - - - 0 - - - - - False - - - - - False - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - -100 - - - - - True - - - - - -12 - - - - - 0.1 - - - - - -12 - - - - - 0 - - - - - False - - - - - -12 - - - - - 0.1 - - - - - -12 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - 50 - - - - - -96 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - 0 - - - - - False - - - - - False - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - False - - - - - True - - - - - True - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1024 - - - - - - - - - 0 - - - - - 0 - - - - - True - - - - - 0 - - - - - False - - - - - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - -96 - - - - - 0 - - - - - 0 - - - - - False - - - - - -6 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - False - - - - - -6 - - - - - 50 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - - - - - False - - - - - False - - - - - - - - - 1 - - - - - 0 - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 250 - - - - - 100 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - -96 - - - - - 3 - - - - - True - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - False - - - - - 0.5 - - - - - 0 - - - - - 2400 - - - - - 345 - - - - - 0 - - - - - 0 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 1 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - False - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 100 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 10 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 20000 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0.707 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1000 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 256 - - - - - False - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 100 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 1000 - - - - - 20000 - - - - - 20000 - - - - - 20000 - - - - - 20000 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 5 - - - - - 5 - - - - - 9 - - - - - 9 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 16641 - - - - - 0 - - - - - 0 - - - - - False - - - - - 10 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 60 - - - - - 1 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 0 - - - - - True - - - - - False - - - - - 0.01 - - - - - True - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0.1 - - - - - 0 - - - - - 0.01 - - - - - True - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0.1 - - - - - 0 - - - - - 0.01 - - - - - True - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0.1 - - - - - 0 - - - - - 0.01 - - - - - True - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0.1 - - - - - 0 - - - - - 150 - - - - - 1000 - - - - - 6000 - - - - - 0 - - - - - False - - - - - 0 - - - - - 4 - - - - - 0 - - - - - False - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - True - - - - - True - - - - - True - - - - - True - - - - - True - - - - - 5 - - - - - 100 - - - - - 0 - - - - - 1 - - - - - True - - - - - 3 - - - - - 200 - - - - - 0 - - - - - 1 - - - - - True - - - - - 3 - - - - - 500 - - - - - 0 - - - - - 1 - - - - - True - - - - - 4 - - - - - 1000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 3 - - - - - 3000 - - - - - 0 - - - - - 1 - - - - - False - - - - - 3 - - - - - 6000 - - - - - 0 - - - - - 1 - - - - - 4 - - - - - - - - - -12 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - False - - - - - - - - - 1 - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - -12 - - - - - 1 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 6 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - - - 1 - - - - - 1 - - - - - 1 - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - - - - - 0.6 - - - - - 0.6 - - - - - 0.5 - - - - - 0.3 - - - - - 0.05 - - - - - 0.25 - - - - - 0.02 - - - - - 1.5 - - - - - 0.2 - - - - - 0.3 - - - - - True - - - - - 0.2 - - - - - 8 - - - - - 0.2 - - - - - 12 - - - - - - - - - 20 - - - - - 0.7 - - - - - 100 - - - - - 0.1 - - - - - 1 - - - - - 1 - - - - - True - - - - - 1 - - - - - 0 - - - - - 3 - - - - - 1 - - - - - - - - - 2 - - - - - 0.7 - - - - - 1 - - - - - 0 - - - - - 1 - - - - - 0.9 - - - - - 0.1 - - - - - 3 - - - - - - - - - 0 - - - - - True - - - - - False - - - - - - - - - 0 - - - - - False - - - - - False - - - - - True - - - - - 0 - - - - - 0 - - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - False - - - - - 2 - - - - - False - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - 0 - - - - - - - - - False - - - - - 0 - - - - - 0 - - - - - 1.4 - - - - - -6 - - - - - True - - - - - 0 - - - - - 0 - - - - - False - - - - - True - - - - - 0.5 - - - - - 10000 - - - - - -6 - - - - - 7 - - - - - 1 - - - - - 1 - - - - - 7.25 - - - - - 2.75 - - - - - 3.25 - - - - - 4.25 - - - - - 4.75 - - - - - 3.75 - - - - - - - - - 100 - - - - - 50 - - - - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - -200 - 37 - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - 100 - 37 - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - 100 - 37 - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - -200 - 37 - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - 100 - 37 - - - - - - - - - - - - - - 0 - 0 - 5 - - - 100 - 100 - 37 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CMakeLists.txt b/CMakeLists.txt index ad5cd9f431..cefbcf2ef4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# Cmake version 3.17 is the minimum version needed for all of Open 3D Engine's supported platforms +# Cmake version 3.19 is the minimum version needed for all of Open 3D Engine's supported platforms cmake_minimum_required(VERSION 3.19) # CMP0111 introduced in 3.19 has a bug that produces the policy to warn every time there is an diff --git a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp index 0a727c7c53..f12da5c60e 100644 --- a/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp +++ b/Code/Framework/AzCore/AzCore/Script/ScriptSystemComponent.cpp @@ -853,7 +853,7 @@ const char* ScriptSystemComponent::GetGroup() const const char* AZ::ScriptSystemComponent::GetBrowserIcon() const { - return "Editor/Icons/Components/LuaScript.svg"; + return "Icons/Components/LuaScript.svg"; } AZ::Uuid AZ::ScriptSystemComponent::GetComponentTypeId() const diff --git a/Code/Framework/AzCore/AzCore/Serialization/Json/ByteStreamSerializer.cpp b/Code/Framework/AzCore/AzCore/Serialization/Json/ByteStreamSerializer.cpp index 6077a66682..f15178dd00 100644 --- a/Code/Framework/AzCore/AzCore/Serialization/Json/ByteStreamSerializer.cpp +++ b/Code/Framework/AzCore/AzCore/Serialization/Json/ByteStreamSerializer.cpp @@ -10,91 +10,75 @@ * */ -#include "ByteStreamSerializer.h" - #include #include +#include #include #include namespace AZ { - namespace ByteSerializerInternal - { - static JsonSerializationResult::Result Load(void* outputValue, const rapidjson::Value& inputValue, JsonDeserializerContext& context) - { - using JsonSerializationResult::Outcomes; - using JsonSerializationResult::Tasks; - - AZ_Assert(outputValue, "Expected a valid pointer to load from json value."); - - switch (inputValue.GetType()) - { - case rapidjson::kStringType: { - JsonByteStream buffer; - if (AZ::StringFunc::Base64::Decode(buffer, inputValue.GetString(), inputValue.GetStringLength())) - { - JsonByteStream* valAsByteStream = static_cast(outputValue); - *valAsByteStream = AZStd::move(buffer); - return context.Report(Tasks::ReadField, Outcomes::Success, "Successfully read ByteStream."); - } - return context.Report(Tasks::ReadField, Outcomes::Invalid, "Decode of Base64 encoded ByteStream failed."); - } - case rapidjson::kArrayType: - case rapidjson::kObjectType: - case rapidjson::kNullType: - case rapidjson::kFalseType: - case rapidjson::kTrueType: - case rapidjson::kNumberType: - return context.Report( - Tasks::ReadField, Outcomes::Unsupported, - "Unsupported type. ByteStream values cannot be read from arrays, objects, nulls, booleans or numbers."); - default: - return context.Report(Tasks::ReadField, Outcomes::Unknown, "Unknown json type encountered for ByteStream value."); - } - } - - static JsonSerializationResult::Result StoreWithDefault( - rapidjson::Value& outputValue, const void* inputValue, const void* defaultValue, JsonSerializerContext& context) - { - using JsonSerializationResult::Outcomes; - using JsonSerializationResult::Tasks; - - const JsonByteStream& valAsByteStream = *static_cast(inputValue); - if (context.ShouldKeepDefaults() || !defaultValue || (valAsByteStream != *static_cast(defaultValue))) - { - const auto base64ByteStream = AZ::StringFunc::Base64::Encode(valAsByteStream.data(), valAsByteStream.size()); - outputValue.SetString(base64ByteStream.c_str(), base64ByteStream.size(), context.GetJsonAllocator()); - return context.Report(Tasks::WriteValue, Outcomes::Success, "ByteStream successfully stored."); - } - - return context.Report(Tasks::WriteValue, Outcomes::DefaultsUsed, "Default ByteStream used."); - } - } // namespace ByteSerializerInternal - AZ_CLASS_ALLOCATOR_IMPL(JsonByteStreamSerializer, SystemAllocator, 0); JsonSerializationResult::Result JsonByteStreamSerializer::Load( void* outputValue, [[maybe_unused]] const Uuid& outputValueTypeId, const rapidjson::Value& inputValue, JsonDeserializerContext& context) { + using JsonSerializationResult::Outcomes; + using JsonSerializationResult::Tasks; + AZ_Assert( azrtti_typeid() == outputValueTypeId, "Unable to deserialize AZStd::vector> to json because the provided type is %s", outputValueTypeId.ToString().c_str()); + AZ_Assert(outputValue, "Expected a valid pointer to load from json value."); - return ByteSerializerInternal::Load(outputValue, inputValue, context); + switch (inputValue.GetType()) + { + case rapidjson::kStringType: { + JsonByteStream buffer; + if (AZ::StringFunc::Base64::Decode(buffer, inputValue.GetString(), inputValue.GetStringLength())) + { + JsonByteStream* valAsByteStream = static_cast(outputValue); + *valAsByteStream = AZStd::move(buffer); + return context.Report(Tasks::ReadField, Outcomes::Success, "Successfully read ByteStream."); + } + return context.Report(Tasks::ReadField, Outcomes::Invalid, "Decode of Base64 encoded ByteStream failed."); + } + case rapidjson::kArrayType: + case rapidjson::kObjectType: + case rapidjson::kNullType: + case rapidjson::kFalseType: + case rapidjson::kTrueType: + case rapidjson::kNumberType: + return context.Report( + Tasks::ReadField, Outcomes::Unsupported, + "Unsupported type. ByteStream values cannot be read from arrays, objects, nulls, booleans or numbers."); + default: + return context.Report(Tasks::ReadField, Outcomes::Unknown, "Unknown json type encountered for ByteStream value."); + } } JsonSerializationResult::Result JsonByteStreamSerializer::Store( rapidjson::Value& outputValue, const void* inputValue, const void* defaultValue, [[maybe_unused]] const Uuid& valueTypeId, JsonSerializerContext& context) { + using JsonSerializationResult::Outcomes; + using JsonSerializationResult::Tasks; + AZ_Assert( azrtti_typeid() == valueTypeId, "Unable to serialize AZStd::vector to json because the provided type is %s", valueTypeId.ToString().c_str()); - return ByteSerializerInternal::StoreWithDefault(outputValue, inputValue, defaultValue, context); + const JsonByteStream& valAsByteStream = *static_cast(inputValue); + if (context.ShouldKeepDefaults() || !defaultValue || (valAsByteStream != *static_cast(defaultValue))) + { + const auto base64ByteStream = AZ::StringFunc::Base64::Encode(valAsByteStream.data(), valAsByteStream.size()); + outputValue.SetString(base64ByteStream.c_str(), base64ByteStream.size(), context.GetJsonAllocator()); + return context.Report(Tasks::WriteValue, Outcomes::Success, "ByteStream successfully stored."); + } + + return context.Report(Tasks::WriteValue, Outcomes::DefaultsUsed, "Default ByteStream used."); } } // namespace AZ diff --git a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp index c3ca2bf33f..7c52260691 100644 --- a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp +++ b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp @@ -104,13 +104,12 @@ namespace AZ auto serializer = context.GetRegistrationContext()->GetSerializerForType(classData.m_typeId); if (serializer) { - if (storeTypeId == StoreTypeId::Yes) + ResultCode result = serializer->Store(node, object, defaultObject, classData.m_typeId, context); + if (storeTypeId == StoreTypeId::Yes && result.GetProcessing() != Processing::Halted) { - return context.Report(Tasks::WriteValue, Outcomes::Catastrophic, - "Unable to store type information in a JSON Serializer primitive."); + result.Combine(InsertTypeId(node, classData, context)); } - - return serializer->Store(node, object, defaultObject, classData.m_typeId, context); + return result; } if (classData.m_azRtti && (classData.m_azRtti->GetTypeTraits() & AZ::TypeTraits::is_enum) == AZ::TypeTraits::is_enum) @@ -128,13 +127,12 @@ namespace AZ serializer = context.GetRegistrationContext()->GetSerializerForType(classData.m_azRtti->GetGenericTypeId()); if (serializer) { - if (storeTypeId == StoreTypeId::Yes) + ResultCode result = serializer->Store(node, object, defaultObject, classData.m_typeId, context); + if (storeTypeId == StoreTypeId::Yes && result.GetProcessing() != Processing::Halted) { - return context.Report(Tasks::WriteValue, Outcomes::Catastrophic, - "Unable to store type information in a JSON Serializer primitive."); + result.Combine(InsertTypeId(node, classData, context)); } - - return serializer->Store(node, object, defaultObject, classData.m_typeId, context); + return result; } } @@ -149,6 +147,7 @@ namespace AZ ResultCode result(Tasks::WriteValue); if (storeTypeId == StoreTypeId::Yes) { + // Not using InsertTypeId here to avoid needing to create the temporary value and swap it in that call. node.AddMember(rapidjson::StringRef(JsonSerialization::TypeIdFieldIdentifier), StoreTypeName(classData, context), context.GetJsonAllocator()); result = ResultCode(Tasks::WriteValue, Outcomes::Success); @@ -569,6 +568,31 @@ namespace AZ } } + JsonSerializationResult::ResultCode JsonSerializer::InsertTypeId( + rapidjson::Value& output, const SerializeContext::ClassData& classData, JsonSerializerContext& context) + { + using namespace JsonSerializationResult; + + if (output.IsObject()) + { + rapidjson::Value insertedObject(rapidjson::kObjectType); + insertedObject.AddMember( + rapidjson::StringRef(JsonSerialization::TypeIdFieldIdentifier), StoreTypeName(classData, context), + context.GetJsonAllocator()); + + for (auto& element : output.GetObject()) + { + insertedObject.AddMember(AZStd::move(element.name), AZStd::move(element.value), context.GetJsonAllocator()); + } + output = AZStd::move(insertedObject); + return ResultCode(Tasks::WriteValue, Outcomes::Success); + } + else + { + return context.Report(Tasks::WriteValue, Outcomes::Catastrophic, "Only able to store type information in a JSON Object."); + } + } + rapidjson::Value JsonSerializer::GetExplicitDefault() { return rapidjson::Value(rapidjson::kObjectType); diff --git a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.h b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.h index e7ce1e766f..24acd28e81 100644 --- a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.h +++ b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.h @@ -80,6 +80,9 @@ namespace AZ static JsonSerializationResult::ResultCode StoreTypeName(rapidjson::Value& output, const Uuid& typeId, JsonSerializerContext& context); + static JsonSerializationResult::ResultCode InsertTypeId( + rapidjson::Value& output, const SerializeContext::ClassData& classData, JsonSerializerContext& context); + static rapidjson::Value GetExplicitDefault(); }; } // namespace AZ diff --git a/Code/Framework/AzCore/AzCore/Settings/SettingsRegistryMergeUtils.cpp b/Code/Framework/AzCore/AzCore/Settings/SettingsRegistryMergeUtils.cpp index 27f6f222dd..34f1bdef89 100644 --- a/Code/Framework/AzCore/AzCore/Settings/SettingsRegistryMergeUtils.cpp +++ b/Code/Framework/AzCore/AzCore/Settings/SettingsRegistryMergeUtils.cpp @@ -654,7 +654,6 @@ namespace AZ::SettingsRegistryMergeUtils if (registry.Get(engineRootPath, FilePathKey_EngineRootFolder)) { AZ::IO::FixedMaxPath mergePath{ AZStd::move(engineRootPath) }; - mergePath /= "Engine"; mergePath /= SettingsRegistryInterface::RegistryFolder; registry.MergeSettingsFolder(mergePath.Native(), specializations, platform, "", scratchBuffer); } diff --git a/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializationTests.cpp b/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializationTests.cpp index 378e1f6953..2399bd0463 100644 --- a/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializationTests.cpp +++ b/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializationTests.cpp @@ -449,6 +449,46 @@ namespace JsonSerializationTests } + TEST_F(JsonSerializationTests, Load_PrimitiveForInheritedClass_LoadsCorrectClass) + { + using namespace AZ::JsonSerializationResult; + using namespace ::testing; + + AZStd::string json = AZStd::string::format(R"( + { + "%s": "SimpleInheritence", + "base_var": -88.0, + "var1": 88, + "var2": 42 + })", + AZ::JsonSerialization::TypeIdFieldIdentifier); + m_jsonDocument->Parse(json.c_str()); + + SimpleInheritence::Reflect(m_serializeContext, true); + m_serializeContext->RegisterGenericType>(); + m_jsonRegistrationContext->Serializer()->HandlesType(); + JsonSerializerMock* mock = + reinterpret_cast(m_jsonRegistrationContext->GetSerializerForType(azrtti_typeid())); + EXPECT_CALL(*mock, Load(_, _, _, _)) + .Times(Exactly(1)) + .WillRepeatedly(Return(Result(m_deserializationSettings->m_reporting, "Test", Tasks::ReadField, Outcomes::Success, ""))); + + AZStd::unique_ptr instance; + ResultCode result = AZ::JsonSerialization::Load(instance, *m_jsonDocument, *m_deserializationSettings); + EXPECT_NE(Processing::Halted, result.GetProcessing()); + + EXPECT_EQ(azrtti_typeid(), azrtti_typeid(*instance)); + + m_serializeContext->EnableRemoveReflection(); + SimpleInheritence::Reflect(m_serializeContext, true); + m_serializeContext->DisableRemoveReflection(); + + m_jsonRegistrationContext->EnableRemoveReflection(); + m_serializeContext->RegisterGenericType>(); + m_jsonRegistrationContext->Serializer()->HandlesType(); + m_jsonRegistrationContext->DisableRemoveReflection(); + } + TEST_F(JsonSerializationTests, Store_TemplatedClassWithRegisteredHandler_StoreOnHandlerCalled) { using namespace AZ::JsonSerializationResult; @@ -474,6 +514,52 @@ namespace JsonSerializationTests m_jsonRegistrationContext->DisableRemoveReflection(); } + TEST_F(JsonSerializationTests, Store_PrimitiveForInheritedClass_StoreSucceedsAndTypeIdIsAdded) + { + using namespace AZ::JsonSerializationResult; + using namespace ::testing; + + SimpleInheritence::Reflect(m_serializeContext, true); + m_serializeContext->RegisterGenericType>(); + m_jsonRegistrationContext->Serializer()->HandlesType(); + JsonSerializerMock* mock = + reinterpret_cast(m_jsonRegistrationContext->GetSerializerForType(azrtti_typeid())); + EXPECT_CALL(*mock, Store(_, _, _, _, _)) + .Times(Exactly(1)) + .WillRepeatedly(Invoke([](rapidjson::Value& output, const void*, const void*, const AZ::Uuid&, AZ::JsonSerializerContext& context) + { + // Insert some values to allow verification later on. + output.SetObject(); + output.AddMember("base_var", -88.0, context.GetJsonAllocator()); + output.AddMember("var1", 88, context.GetJsonAllocator()); + output.AddMember("var2", 42, context.GetJsonAllocator()); + return context.Report(Tasks::WriteValue, Outcomes::Success, ""); + })); + + AZStd::unique_ptr instance{ aznew SimpleInheritence() }; + ResultCode result = AZ::JsonSerialization::Store(*m_jsonDocument, m_jsonDocument->GetAllocator(), instance, *m_serializationSettings); + EXPECT_NE(Processing::Halted, result.GetProcessing()); + + AZStd::string compare = AZStd::string::format(R"( + { + "%s": "SimpleInheritence", + "base_var": -88.0, + "var1": 88, + "var2": 42 + })", + AZ::JsonSerialization::TypeIdFieldIdentifier); + Expect_DocStrEq(compare.c_str()); + + m_serializeContext->EnableRemoveReflection(); + m_serializeContext->RegisterGenericType>(); + SimpleInheritence::Reflect(m_serializeContext, true); + m_serializeContext->DisableRemoveReflection(); + + m_jsonRegistrationContext->EnableRemoveReflection(); + m_jsonRegistrationContext->Serializer()->HandlesType(); + m_jsonRegistrationContext->DisableRemoveReflection(); + } + TEST_F(JsonSerializationTests, Store_StoreWithNullPtr_ReturnsCatastrophic) { using namespace AZ::JsonSerializationResult; diff --git a/Code/Framework/AzFramework/AzFramework/Asset/AssetCatalog.cpp b/Code/Framework/AzFramework/AzFramework/Asset/AssetCatalog.cpp index e01b105d13..20fe13114e 100644 --- a/Code/Framework/AzFramework/AzFramework/Asset/AssetCatalog.cpp +++ b/Code/Framework/AzFramework/AzFramework/Asset/AssetCatalog.cpp @@ -809,7 +809,7 @@ namespace AzFramework #if defined(AZ_ENABLE_TRACING) if (message.m_assetType == AZ::Data::s_invalidAssetType) { - AZ_TracePrintf("AssetCatalog", "Registering asset \"%s\" via AssetSystem message, but type is not set.", relativePath.c_str()); + AZ_TracePrintf("AssetCatalog", "Registering asset \"%s\" via AssetSystem message, but type is not set.\n", relativePath.c_str()); } #endif diff --git a/Code/Framework/AzFramework/AzFramework/FileTag/FileTag.cpp b/Code/Framework/AzFramework/AzFramework/FileTag/FileTag.cpp index 6108d401aa..a91b5482b4 100644 --- a/Code/Framework/AzFramework/AzFramework/FileTag/FileTag.cpp +++ b/Code/Framework/AzFramework/AzFramework/FileTag/FileTag.cpp @@ -12,11 +12,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -31,7 +33,7 @@ namespace AzFramework const char* ExcludeFileName = "exclude"; const char* IncludeFileName = "include"; const char* FileTags[] = { "ignore", "error", "productdependency", "editoronly", "shader" }; - const char EngineName[] = "Engine"; + constexpr AZ::IO::PathView EngineAssetSourceRelPath = "Assets/Engine"; void LowerCaseFileTags(AZStd::vector& fileTags) { @@ -107,7 +109,7 @@ namespace AzFramework } AZ::Outcome FileTagManager::AddTagsInternal(AZStd::string filePath, FileTagType fileTagType, AZStd::vector fileTags, AzFramework::FileTag::FilePatternType filePatternType) - { + { if (!NormalizeFileAndLowerCaseTags(filePath, filePatternType, fileTags)) { return AZ::Failure(AZStd::string::format("Unable to normalize file (%s). Unable to remove the file.\n", filePath.c_str())); @@ -243,11 +245,10 @@ namespace AzFramework AZStd::string FileTagQueryManager::GetDefaultFileTagFilePath(FileTagType fileTagType) { - AZStd::string destinationFilePath; - const char* engineRoot = nullptr; - AzFramework::ApplicationRequests::Bus::BroadcastResult(engineRoot, &AzFramework::ApplicationRequests::GetEngineRoot); - AzFramework::StringFunc::Path::ConstructFull(engineRoot, EngineName, fileTagType == FileTagType::Exclude ? ExcludeFileName : IncludeFileName, AzFramework::FileTag::FileTagAsset::Extension(), destinationFilePath, true); - return destinationFilePath; + auto destinationFilePath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / EngineAssetSourceRelPath; + destinationFilePath /= fileTagType == FileTagType::Exclude ? ExcludeFileName : IncludeFileName; + destinationFilePath.ReplaceExtension(AzFramework::FileTag::FileTagAsset::Extension()); + return destinationFilePath.String(); } bool FileTagQueryManager::Load(const AZStd::string& filePath) diff --git a/Code/Framework/AzFramework/AzFramework/Network/NetBindingComponent.cpp b/Code/Framework/AzFramework/AzFramework/Network/NetBindingComponent.cpp index c28e020c52..90613daabe 100644 --- a/Code/Framework/AzFramework/AzFramework/Network/NetBindingComponent.cpp +++ b/Code/Framework/AzFramework/AzFramework/Network/NetBindingComponent.cpp @@ -44,8 +44,8 @@ namespace AzFramework "Network Binding", "The Network Binding component marks an entity as able to be replicated across the network") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Networking") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/NetBinding.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/NetBinding.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/NetBinding.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/NetBinding.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-network-binding.html") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)); } diff --git a/Code/Framework/AzFramework/AzFramework/Spawnable/SpawnableAssetHandler.cpp b/Code/Framework/AzFramework/AzFramework/Spawnable/SpawnableAssetHandler.cpp index 735757db7d..b3ba1568bd 100644 --- a/Code/Framework/AzFramework/AzFramework/Spawnable/SpawnableAssetHandler.cpp +++ b/Code/Framework/AzFramework/AzFramework/Spawnable/SpawnableAssetHandler.cpp @@ -81,7 +81,7 @@ namespace AzFramework const char* SpawnableAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/Viewport/EntityInSlice.png"; + return "Icons/Components/Viewport/EntityInSlice.png"; } void SpawnableAssetHandler::GetAssetTypeExtensions(AZStd::vector& extensions) diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/StyleManager.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Components/StyleManager.cpp index 713c486ac4..8bba64c2d9 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/StyleManager.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/StyleManager.cpp @@ -250,9 +250,9 @@ namespace AzQtComponents // STYLESHEETIMAGES:something.txt // UI:blah/blah.png // EDITOR:blah/something.txt - QDir::addSearchPath("STYLESHEETIMAGES", appPath.filePath("Editor/Styles/StyleSheetImages")); - QDir::addSearchPath("UI", appPath.filePath("Editor/UI")); - QDir::addSearchPath("EDITOR", appPath.filePath("Editor")); + QDir::addSearchPath("STYLESHEETIMAGES", appPath.filePath("Assets/Editor/Styles/StyleSheetImages")); + QDir::addSearchPath("UI", appPath.filePath("Assets/Editor/UI")); + QDir::addSearchPath("EDITOR", appPath.filePath("Assets/Editor")); } } diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/ProgressBar.qss b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/ProgressBar.qss index 3542aa4764..76f834bf70 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/ProgressBar.qss +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/ProgressBar.qss @@ -24,5 +24,5 @@ QProgressBar QProgressBar::chunk { - background: #54AFD0; + background: #1E70EB; } diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/PushButtonConfig.ini b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/PushButtonConfig.ini index c88d0f61ee..34c084b0f2 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/PushButtonConfig.ini +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/PushButtonConfig.ini @@ -13,14 +13,14 @@ Width=24; ArrowWidth=10; [PrimaryColorSet] -Disabled\Start=#7092A7 -Disabled\End=#7092A7 -Sunken\Start=#0073BB -Sunken\End=#0073BB -Hovered\Start=#44BAFF -Hovered\End=#4AB2F8 +Disabled\Start=#2A4875 +Disabled\End=#2A4875 +Sunken\Start=#1E70EB +Sunken\End=#1E70EB +Hovered\Start=#4ABAFF +Hovered\End=#94D2FF Normal\Start=#0095F2 -Normal\End=#0073BB +Normal\End=#1E70EB [SecondaryColorSet] Disabled\Start=#666666 @@ -42,10 +42,10 @@ Color=#3D000000 [FocusedBorder] Thickness=1 -Color=#00A1C9 +Color=#4B8CEF [IconButton] -ActiveColor=#00A1C9 +ActiveColor=#1E70EB DisabledColor=#999999 SelectedColor=#FFFFFF diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/SliderConfig.ini b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/SliderConfig.ini index 44f4f6d093..018f29ed41 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/SliderConfig.ini +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/SliderConfig.ini @@ -12,7 +12,7 @@ HandleBorder\Color=#FFFFFF HandleBorder\Radius=1.5 [Slider] -Handle\Color=#0185D7 +Handle\Color=#1E70EB Handle\ColorDisabled=#999999 Handle\Size=12 Handle\SizeMinusMargin=8 diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/Text.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/Text.cpp index b88209a36b..377f5ecdcf 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/Text.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/Text.cpp @@ -46,7 +46,7 @@ namespace AzQtComponents Text::Config Text::defaultConfig() { Config config; - config.hyperlinkColor = QStringLiteral("#44B2F8"); + config.hyperlinkColor = QStringLiteral("#94D2FF"); return config; } diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/TextConfig.ini b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/TextConfig.ini index 450636e220..3755b61867 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/TextConfig.ini +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/TextConfig.ini @@ -1,2 +1,2 @@ [Hyperlink] -Color=#44B2F8 +Color=#94D2FF \ No newline at end of file diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/off-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/off-focus.svg index c7bf13420c..5e862d9604 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/off-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/off-focus.svg @@ -4,7 +4,7 @@ Selection Controls / Checkbox / Off Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-disabled.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-disabled.svg index 020514b9bf..64115f629b 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-disabled.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-disabled.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-focus.svg index 03971b4ea2..b3b05d969b 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on-focus.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on.svg index 8c2f963403..315d34f8cb 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/on.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-disabled.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-disabled.svg index b0bca84b49..1d409abff8 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-disabled.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-disabled.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-focus.svg index dd789a8782..d5e4faaaf6 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected-focus.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected.svg index 643f35f357..58c853e9db 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/checkbox/partial-selected.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-disabled.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-disabled.svg index 3c05726f2d..8f289a1830 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-disabled.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-disabled.svg @@ -4,7 +4,7 @@ Selection Controls / Radio Button / On - Disabled Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-focus.svg index a533b695b0..d50ffa172d 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked-focus.svg @@ -4,7 +4,7 @@ Selection Controls / Radio Button / On-focus Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked.svg index 40d64f6a8c..b151a8aae3 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/checked.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/unchecked-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/unchecked-focus.svg index e636dc38cd..818416abb7 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/unchecked-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/radiobutton/unchecked-focus.svg @@ -4,7 +4,7 @@ Selection Controls / Radio Button / Off-focus Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-disabled.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-disabled.svg index c1582c8cdf..0c869ef0ce 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-disabled.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-disabled.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-focus.svg index c28ccf7b0c..9f4f07f804 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked-focus.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked.svg index 9a5b898e9c..11048a512a 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/checked.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/unchecked-focus.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/unchecked-focus.svg index 046789536b..981467aa3b 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/unchecked-focus.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/UI20/toggleswitch/unchecked-focus.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/loading.svg b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/loading.svg index d24c0c2b12..7f6fcc2175 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/img/loading.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/img/loading.svg @@ -1,6 +1,6 @@ - + img/line.png - ../../../../Sandbox/Editor/Style/EditorStylesheetVariables_Dark.json - ../../../../Sandbox/Editor/Style/NewEditorStylesheet.qss + ../../../../Sandbox/Editor/Style/EditorStylesheetVariables_Dark.json + ../../../../Sandbox/Editor/Style/NewEditorStylesheet.qss img/UI20/Cards/point_hand.png diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Asset/AssetUtils.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Asset/AssetUtils.cpp index f02e87bb86..5cdd028bbb 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Asset/AssetUtils.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Asset/AssetUtils.cpp @@ -216,14 +216,9 @@ namespace AzToolsFramework::AssetUtils constexpr const char* AssetProcessorGamePlatformConfigFileName = "AssetProcessorGamePlatformConfig.ini"; constexpr const char* AssetProcessorGamePlatformConfigSetreg = "AssetProcessorGamePlatformConfig.setreg"; AZStd::vector configFiles; - AZ::IO::Path configRoot(engineRoot); - AZ::IO::Path rootConfigFile = configRoot / AssetProcessorPlatformConfigFileName; - configFiles.push_back(rootConfigFile); - - // Add a file entry for the Engine Root AssetProcessor setreg file - rootConfigFile = configRoot / AssetProcessorPlatformConfigSetreg; - configFiles.push_back(rootConfigFile); + // Add the AssetProcessorPlatformConfig setreg file at the engine root + configFiles.push_back(AZ::IO::Path(engineRoot) / AssetProcessorPlatformConfigSetreg); if (addPlatformConfigs) { diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserComponent.cpp index 1a55e162b9..8d3513cbcb 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/AssetBrowserComponent.cpp @@ -200,67 +200,67 @@ namespace AzToolsFramework { if (AzFramework::StringFunc::Equal(extension.c_str(), ".abc")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/ABC_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/ABC_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".bnk")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Audio_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Audio_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".cgf")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/LegacyMesh_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/LegacyMesh_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".font")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Font_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Font_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".fontfamily")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Font_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Font_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".i_caf")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/LegacyAnimation_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/LegacyAnimation_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".inputbindings")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/InputBindings_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/InputBindings_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".lua")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Lua_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Lua_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".mtl")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Material_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Material_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), AzToolsFramework::SliceUtilities::GetSliceFileExtension().c_str())) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Slice_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Slice_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".skin")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/LegacySkin_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/LegacySkin_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".ttf")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Font_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Font_16.svg"); } if (AzFramework::StringFunc::Equal(extension.c_str(), ".xml")) { - return SourceFileDetails("Editor/Icons/AssetBrowser/XML_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/XML_16.svg"); } @@ -272,7 +272,7 @@ namespace AzToolsFramework const char* sourceFormatExtension = sourceFormats[sourceImageFormatIndex]; if (AzFramework::StringFunc::Equal(extension.c_str(), sourceFormatExtension)) { - return SourceFileDetails("Editor/Icons/AssetBrowser/Image_16.svg"); + return SourceFileDetails("Icons/AssetBrowser/Image_16.svg"); } } } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.cpp index ada961711a..bd5ba48d8d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.cpp @@ -52,17 +52,16 @@ namespace AzToolsFramework return AssetEntryType::Root; } - void RootAssetBrowserEntry::Update(const char* devPath) + void RootAssetBrowserEntry::Update(const char* enginePath) { RemoveChildren(); EntryCache::GetInstance()->Clear(); - m_scanFolderOutputPrefixMap.clear(); - m_devPath = devPath; + m_enginePath = enginePath; // there is no "Gems" scan folder registered in db, create one manually auto gemFolder = aznew FolderAssetBrowserEntry(); - gemFolder->m_name = m_devPath + AZ_CORRECT_DATABASE_SEPARATOR + GEMS_FOLDER_NAME; + gemFolder->m_name = m_enginePath + AZ_CORRECT_DATABASE_SEPARATOR + GEMS_FOLDER_NAME; gemFolder->m_displayName = GEMS_FOLDER_NAME; gemFolder->m_isGemsFolder = true; AddChild(gemFolder); @@ -90,11 +89,6 @@ namespace AzToolsFramework scanFolder->m_displayName = QString::fromUtf8(scanFolderDatabaseEntry.m_displayName.c_str()); EntryCache::GetInstance()->m_scanFolderIdMap[scanFolderDatabaseEntry.m_scanFolderID] = scanFolder; } - - if (!scanFolderDatabaseEntry.m_outputPrefix.empty()) - { - m_scanFolderOutputPrefixMap[scanFolderDatabaseEntry.m_scanFolderID] = scanFolderDatabaseEntry.m_outputPrefix; - } } void RootAssetBrowserEntry::AddFile(const AssetDatabase::FileDatabaseEntry& fileDatabaseEntry) @@ -132,7 +126,7 @@ namespace AzToolsFramework return; } - const char* filePath = GetScanFolderOutputAdjustedPath(fileDatabaseEntry, scanFolder); + const char* filePath = fileDatabaseEntry.m_fileName.c_str(); AssetBrowserEntry* file; // file can be either folder or actual file @@ -441,33 +435,5 @@ namespace AzToolsFramework { return MAKE_TKEY(ThumbnailKey); } - - const char* RootAssetBrowserEntry::GetScanFolderOutputAdjustedPath(const AssetDatabase::FileDatabaseEntry& fileDatabaseEntry, const AssetBrowserEntry* scanFolder) - { - Q_UNUSED(scanFolder); - - const char* filePath = fileDatabaseEntry.m_fileName.c_str(); - - // adjust for output prefixes on scan folders (i.e. "editor") - auto itScanFolderOutputPrefix = m_scanFolderOutputPrefixMap.find(fileDatabaseEntry.m_scanFolderPK); - if (itScanFolderOutputPrefix != m_scanFolderOutputPrefixMap.end()) - { - const AZStd::string& outputPrefix = itScanFolderOutputPrefix->second; - - // Check if the input path starts with the output prefix. - // If it doesn't, something probably went seriously wrong, - // or someone is calling this function with an absolute path. - bool pathStartsWithPrefix = ((strncmp(filePath, outputPrefix.c_str(), outputPrefix.length()) == 0) && (fileDatabaseEntry.m_fileName.length() > (outputPrefix.length() + 1))); - AZ_Warning("Asset Browser", pathStartsWithPrefix, "Entry %s reported as under a ScanFolder (%s) with an 'output=%s', but the new entry does not begin with the output prefix! RootAssetBrowserEntry::GetScanFolderOutputAdjustedPath expects relative paths, not absolute; treating the input path as if it does not contain the ScanFolder output prefix.", filePath, scanFolder->m_name.c_str(), outputPrefix.c_str()); - - if (pathStartsWithPrefix) - { - // move the beginning ahead by the output prefix plus the separator - filePath += (outputPrefix.length() + 1); - } - } - - return filePath; - } } // namespace AssetBrowser } // namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.h index 44fe454e2d..14c66cb7dd 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Entries/RootAssetBrowserEntry.h @@ -60,8 +60,8 @@ namespace AzToolsFramework AssetEntryType GetEntryType() const override; - //! Update root node to new dev location - void Update(const char* devPath); + //! Update root node to new engine location + void Update(const char* enginePath); void AddScanFolder(const AssetDatabase::ScanFolderDatabaseEntry& scanFolderDatabaseEntry); void AddFile(const AssetDatabase::FileDatabaseEntry& fileDatabaseEntry); @@ -82,15 +82,12 @@ namespace AzToolsFramework private: AZ_DISABLE_COPY_MOVE(RootAssetBrowserEntry); - AZStd::string m_devPath; - AZStd::unordered_map m_scanFolderOutputPrefixMap; + AZStd::string m_enginePath; //! Create folder entry child FolderAssetBrowserEntry* CreateFolder(const char* folderName, AssetBrowserEntry* parent); //! Recursively create folder structure leading to relative path from parent AssetBrowserEntry* CreateFolders(const char* relativePath, AssetBrowserEntry* parent); - //! Get the path for the fileDatabaseEntry, offset by the output prefix for the scan folder ancestor, if it's been specified and if it's appropriate - const char* GetScanFolderOutputAdjustedPath(const AssetDatabase::FileDatabaseEntry& fileDatabaseEntry, const AssetBrowserEntry* scanFolder); bool m_isInitialUpdate = false; }; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.cpp index 47b15101ee..78681f3b4b 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.cpp @@ -50,11 +50,11 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // FolderThumbnail ////////////////////////////////////////////////////////////////////////// - static constexpr const char* FolderIconPath = "Editor/Icons/AssetBrowser/Folder_16.svg"; - static constexpr const char* GemIconPath = "Editor/Icons/AssetBrowser/GemFolder_16.svg"; + static constexpr const char* FolderIconPath = "Icons/AssetBrowser/Folder_16.svg"; + static constexpr const char* GemIconPath = "Icons/AssetBrowser/GemFolder_16.svg"; - FolderThumbnail::FolderThumbnail(SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + FolderThumbnail::FolderThumbnail(SharedThumbnailKey key) + : Thumbnail(key) {} void FolderThumbnail::LoadThread() @@ -69,7 +69,8 @@ namespace AzToolsFramework AZStd::string absoluteIconPath; AZ::StringFunc::Path::Join(engineRoot, folderIcon, absoluteIconPath); - m_icon = QIcon(absoluteIconPath.c_str()); + m_pixmap.load(absoluteIconPath.c_str()); + m_state = m_pixmap.isNull() ? State::Failed : State::Ready; } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.h index d1f0a3d7b3..2e984ff8dc 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/FolderThumbnail.h @@ -47,7 +47,7 @@ namespace AzToolsFramework { Q_OBJECT public: - FolderThumbnail(SharedThumbnailKey key, int thumbnailSize); + FolderThumbnail(SharedThumbnailKey key); void LoadThread() override; }; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.cpp index 9994b19bb1..236c66ef2e 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.cpp @@ -55,10 +55,10 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // ProductThumbnail ////////////////////////////////////////////////////////////////////////// - static const char* DEFAULT_PRODUCT_ICON_PATH = "Editor/Icons/AssetBrowser/DefaultProduct_16.svg"; + static const char* DEFAULT_PRODUCT_ICON_PATH = "Icons/AssetBrowser/DefaultProduct_16.svg"; - ProductThumbnail::ProductThumbnail(Thumbnailer::SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + ProductThumbnail::ProductThumbnail(Thumbnailer::SharedThumbnailKey key) + : Thumbnail(key) {} void ProductThumbnail::LoadThread() @@ -96,12 +96,8 @@ namespace AzToolsFramework iconPath = QString::fromUtf8(DEFAULT_PRODUCT_ICON_PATH); } - m_icon = QIcon(iconPath); - - if (m_icon.isNull()) - { - m_state = State::Failed; - } + m_pixmap.load(iconPath); + m_state = m_pixmap.isNull() ? State::Failed : State::Ready; } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.h index 5eb16dd436..5aed8e0043 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/ProductThumbnail.h @@ -44,7 +44,7 @@ namespace AzToolsFramework { Q_OBJECT public: - ProductThumbnail(Thumbnailer::SharedThumbnailKey key, int thumbnailSize); + ProductThumbnail(Thumbnailer::SharedThumbnailKey key); protected: void LoadThread() override; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.cpp index 547c64a75d..57a6734d77 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.cpp @@ -55,11 +55,11 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // SourceThumbnail ////////////////////////////////////////////////////////////////////////// - static constexpr const char* DefaultFileIconPath = "Editor/Icons/AssetBrowser/Default_16.svg"; + static constexpr const char* DefaultFileIconPath = "Icons/AssetBrowser/Default_16.svg"; QMutex SourceThumbnail::m_mutex; - SourceThumbnail::SourceThumbnail(SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + SourceThumbnail::SourceThumbnail(SharedThumbnailKey key) + : Thumbnail(key) { } @@ -124,7 +124,8 @@ namespace AzToolsFramework iconPathToUse = iconPath.c_str(); } - m_icon = QIcon(iconPathToUse); + m_pixmap.load(iconPathToUse); + m_state = m_pixmap.isNull() ? State::Failed : State::Ready; } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.h index 41cbd4b254..81afd334c3 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Thumbnails/SourceThumbnail.h @@ -44,7 +44,7 @@ namespace AzToolsFramework { Q_OBJECT public: - SourceThumbnail(SharedThumbnailKey key, int thumbnailSize); + SourceThumbnail(SharedThumbnailKey key); protected: void LoadThread() override; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp index c1ba5ae9ce..e8abaebd6f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp @@ -140,7 +140,7 @@ namespace AzToolsFramework else { // Scaling and centering pixmap within bounds to preserve aspect ratio - const QPixmap pixmap = thumbnail->GetPixmap(size).scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation); + const QPixmap pixmap = thumbnail->GetPixmap().scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation); const QSize sizeDelta = size - pixmap.size(); const QPoint pointDelta = QPoint(sizeDelta.width() / 2, sizeDelta.height() / 2); painter->drawPixmap(point + pointDelta, pixmap); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.cpp index 5ac6d6a817..31fcb60d17 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.cpp @@ -943,10 +943,8 @@ namespace AzToolsFramework const char* scanFolder, const char* displayName, const char* portableKey, - const char* outputPrefix, int isRoot) : m_scanFolderID(scanFolderID) - , m_outputPrefix(outputPrefix) , m_isRoot(isRoot) { if (scanFolder) @@ -967,10 +965,8 @@ namespace AzToolsFramework const char* scanFolder, const char* displayName, const char* portableKey, - const char* outputPrefix, int isRoot) - : m_outputPrefix(outputPrefix) - , m_isRoot(isRoot) + : m_isRoot(isRoot) { if (scanFolder) { @@ -993,7 +989,6 @@ namespace AzToolsFramework , m_scanFolder(other.m_scanFolder) , m_displayName(other.m_displayName) , m_portableKey(other.m_portableKey) - , m_outputPrefix(other.m_outputPrefix) , m_isRoot(other.m_isRoot) { } @@ -1011,7 +1006,6 @@ namespace AzToolsFramework m_scanFolderID = other.m_scanFolderID; m_displayName = AZStd::move(other.m_displayName); m_portableKey = AZStd::move(other.m_portableKey); - m_outputPrefix = AZStd::move(other.m_outputPrefix); m_isRoot = other.m_isRoot; } return *this; @@ -1023,7 +1017,6 @@ namespace AzToolsFramework m_scanFolderID = other.m_scanFolderID; m_displayName = other.m_displayName; m_portableKey = other.m_portableKey; - m_outputPrefix = other.m_outputPrefix; m_isRoot = other.m_isRoot; return *this; } @@ -1050,7 +1043,6 @@ namespace AzToolsFramework MakeColumn("ScanFolder", m_scanFolder), MakeColumn("DisplayName", m_displayName), MakeColumn("PortableKey", m_portableKey), - MakeColumn("OutputPrefix", m_outputPrefix), MakeColumn("IsRoot", m_isRoot) ); } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.h b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.h index 423cbe595f..6fc7146107 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetDatabase/AssetDatabaseConnection.h @@ -68,6 +68,7 @@ namespace AzToolsFramework AddedLastScanTimeField = 28, AddedScanTimeSecondsSinceEpochField = 29, ChangedSortFunctionFromQSortToStdStableSort = 30, + RemoveOutputPrefixFromScanFolders, //Add all new versions before this DatabaseVersionCount, LatestVersion = DatabaseVersionCount - 1 @@ -99,12 +100,10 @@ namespace AzToolsFramework const char* scanFolder, const char* displayName, const char* portableKey, - const char* outputPrefix, int isRoot = 0); ScanFolderDatabaseEntry(const char* scanFolder, const char* displayName, const char* portableKey, - const char* outputPrefix, int isRoot = 0); ScanFolderDatabaseEntry(const ScanFolderDatabaseEntry& other); ScanFolderDatabaseEntry(ScanFolderDatabaseEntry&& other); @@ -120,7 +119,6 @@ namespace AzToolsFramework AZStd::string m_scanFolder; // the actual local computer path to that scan folder. AZStd::string m_displayName; // a display name, blank means it should not show up in UIs AZStd::string m_portableKey; // a key that uniquely identifies a scan folder so that we can recognize the same one in other databases/computer - AZStd::string m_outputPrefix; int m_isRoot = 0; }; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialBrowserComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialBrowserComponent.cpp index 3a6ed1c241..f64d4af23d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialBrowserComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialBrowserComponent.cpp @@ -36,8 +36,7 @@ namespace AzToolsFramework using namespace Thumbnailer; using namespace AssetBrowser; const char* contextName = "MaterialBrowser"; - int thumbnailSize = qApp->style()->pixelMetric(QStyle::PM_SmallIconSize); - ThumbnailerRequestsBus::Broadcast(&ThumbnailerRequests::RegisterContext, contextName, thumbnailSize); + ThumbnailerRequestsBus::Broadcast(&ThumbnailerRequests::RegisterContext, contextName); ThumbnailerRequestsBus::Broadcast(&ThumbnailerRequests::RegisterThumbnailProvider, MAKE_TCACHE(FolderThumbnailCache), contextName); ThumbnailerRequestsBus::Broadcast(&ThumbnailerRequests::RegisterThumbnailProvider, MAKE_TCACHE(SourceThumbnailCache), contextName); ThumbnailerRequestsBus::Broadcast(&ThumbnailerRequests::RegisterThumbnailProvider, MAKE_TCACHE(MaterialThumbnailCache), contextName); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.cpp index 30e7f4d6cb..e04df8937c 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.cpp @@ -24,8 +24,8 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // MaterialThumbnail ////////////////////////////////////////////////////////////////////////// - MaterialThumbnail::MaterialThumbnail(Thumbnailer::SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + MaterialThumbnail::MaterialThumbnail(Thumbnailer::SharedThumbnailKey key) + : Thumbnail(key) { auto productKey = azrtti_cast(m_key.data()); AZ_Assert(productKey, "Incorrect key type, excpected ProductThumbnailKey"); @@ -34,7 +34,8 @@ namespace AzToolsFramework MaterialBrowserRequestBus::BroadcastResult(multiMat, &MaterialBrowserRequests::IsMultiMaterial, productKey->GetAssetId()); QString iconPath = multiMat ? MultiMaterialIconPath : SimpleMaterialIconPath; - m_pixmap = QPixmap(iconPath).scaled(m_thumbnailSize, m_thumbnailSize, Qt::KeepAspectRatio); + m_pixmap.load(iconPath); + m_state = m_pixmap.isNull() ? State::Failed : State::Ready; } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.h index f7873ef765..60a2bb11e5 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/MaterialBrowser/MaterialThumbnail.h @@ -28,7 +28,7 @@ namespace AzToolsFramework { Q_OBJECT public: - MaterialThumbnail(Thumbnailer::SharedThumbnailKey key, int thumbnailSize); + MaterialThumbnail(Thumbnailer::SharedThumbnailKey key); }; namespace diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.cpp index 4dd31814b7..e0834ed53b 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.cpp @@ -108,11 +108,9 @@ namespace AzToolsFramework m_targetTemplateId = id; } - void Link::SetTemplatePatches(const PrefabDomValue& patches) + void Link::SetLinkDom(const PrefabDomValue& linkDom) { - PrefabDom newPatches; - newPatches.CopyFrom(patches, newPatches.GetAllocator()); - m_linkDom.Swap(newPatches); + m_linkDom.CopyFrom(linkDom, m_linkDom.GetAllocator()); } void Link::SetInstanceName(const char* instanceName) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.h index c36dd75b1b..073e619f20 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/Link/Link.h @@ -47,7 +47,7 @@ namespace AzToolsFramework void SetSourceTemplateId(TemplateId id); void SetTargetTemplateId(TemplateId id); - void SetTemplatePatches(const PrefabDomValue& patches); + void SetLinkDom(const PrefabDomValue& linkDom); void SetInstanceName(const char* instanceName); bool IsValid() const; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp index 40c8b3bc6a..3f660bb73b 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp @@ -782,22 +782,21 @@ namespace AzToolsFramework link.SetInstanceName(instanceName.data()); PrefabDomValue& instance = instanceIterator->value; + AZ_Assert(instance.IsObject(), "Nested instance DOM provided is not a valid JSON object."); + PrefabDomValueReference sourceTemplateName = PrefabDomUtils::FindPrefabDomValue(instance, PrefabDomUtils::SourceName); + AZ_Assert(sourceTemplateName, "Couldn't find source template name in the DOM of the nested instance while creating a link."); + AZ_Assert( + sourceTemplateName->get() == sourceTemplate.GetFilePath().c_str(), + "The name of the source template in the nested instance DOM does not match the name of the source template already loaded"); PrefabDomValueReference patchesReference = PrefabDomUtils::FindPrefabDomValue(instance, PrefabDomUtils::PatchesName); - if (!patchesReference.has_value()) + if (patchesReference.has_value()) { - PrefabDom& newLinkDom = link.GetLinkDom(); - - newLinkDom.SetObject(); - - newLinkDom.AddMember(rapidjson::StringRef(PrefabDomUtils::SourceName), - rapidjson::StringRef(sourceTemplate.GetFilePath().c_str()), newLinkDom.GetAllocator()); - } - else - { - link.SetTemplatePatches(patchesReference->get()); + AZ_Assert(patchesReference->get().IsArray(), "Patches in the nested instance DOM are not represented as an array."); } + link.SetLinkDom(instance); + if (!link.UpdateTarget()) { AZ_Error("Prefab", false, diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.cpp index 0664c63a5b..fb9d156b20 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.cpp @@ -18,13 +18,15 @@ namespace AzToolsFramework { namespace Thumbnailer { + static constexpr const int LoadingThumbnailSize = 128; + ////////////////////////////////////////////////////////////////////////// // LoadingThumbnail ////////////////////////////////////////////////////////////////////////// - static const char* LoadingIconPath = "Editor/Icons/AssetBrowser/in_progress.gif"; + static const char* LoadingIconPath = "Icons/AssetBrowser/in_progress.gif"; - LoadingThumbnail::LoadingThumbnail(int thumbnailSize) - : Thumbnail(MAKE_TKEY(ThumbnailKey), thumbnailSize) + LoadingThumbnail::LoadingThumbnail() + : Thumbnail(MAKE_TKEY(ThumbnailKey)) , m_angle(0) { const char* engineRoot = nullptr; @@ -34,7 +36,7 @@ namespace AzToolsFramework AZ::StringFunc::Path::Join(engineRoot, LoadingIconPath, iconPath); m_loadingMovie.setFileName(iconPath.c_str()); m_loadingMovie.setCacheMode(QMovie::CacheMode::CacheAll); - m_loadingMovie.setScaledSize(QSize(m_thumbnailSize, m_thumbnailSize)); + m_loadingMovie.setScaledSize(QSize(LoadingThumbnailSize, LoadingThumbnailSize)); m_loadingMovie.start(); m_pixmap = m_loadingMovie.currentPixmap(); m_state = State::Ready; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.h index c9a2e88dfe..b8f50278b8 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/LoadingThumbnail.h @@ -29,7 +29,7 @@ namespace AzToolsFramework { Q_OBJECT public: - explicit LoadingThumbnail(int thumbnailSize); + LoadingThumbnail(); ~LoadingThumbnail() override; void UpdateTime(float /*deltaTime*/) override; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.cpp index 06921f2606..270a5b113f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.cpp @@ -16,13 +16,13 @@ namespace AzToolsFramework { namespace Thumbnailer { - static const char* MISSING_ICON_PATH = "Editor/Icons/AssetBrowser/Default_16.svg"; + static const char* MISSING_ICON_PATH = "Icons/AssetBrowser/Default_16.svg"; - MissingThumbnail::MissingThumbnail(int thumbnailSize) - : Thumbnail(MAKE_TKEY(ThumbnailKey), thumbnailSize) + MissingThumbnail::MissingThumbnail() + : Thumbnail(MAKE_TKEY(ThumbnailKey)) { - m_icon = QIcon(MISSING_ICON_PATH); - m_state = State::Ready; + m_pixmap.load(MISSING_ICON_PATH); + m_state = m_pixmap.isNull() ? State::Failed : State::Ready; } } // namespace Thumbnailer diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.h index 5858c759c9..e5712c514a 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/MissingThumbnail.h @@ -24,7 +24,7 @@ namespace AzToolsFramework { Q_OBJECT public: - explicit MissingThumbnail(int thumbnailSize); + MissingThumbnail(); }; } // namespace Thumbnailer } // namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.cpp index 705ce5f71b..864484bf61 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.cpp @@ -64,13 +64,13 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // SourceControlThumbnail ////////////////////////////////////////////////////////////////////////// - static const char* WRITABLE_ICON_PATH = "Editor/Icons/AssetBrowser/Writable_16.svg"; - static const char* NONWRITABLE_ICON_PATH = "Editor/Icons/AssetBrowser/NonWritable_16.svg"; + static const char* WRITABLE_ICON_PATH = "Icons/AssetBrowser/Writable_16.svg"; + static const char* NONWRITABLE_ICON_PATH = "Icons/AssetBrowser/NonWritable_16.svg"; bool SourceControlThumbnail::m_readyForUpdate = true; - SourceControlThumbnail::SourceControlThumbnail(SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + SourceControlThumbnail::SourceControlThumbnail(SharedThumbnailKey key) + : Thumbnail(key) { const char* engineRoot = nullptr; AzFramework::ApplicationRequests::Bus::BroadcastResult(engineRoot, &AzFramework::ApplicationRequests::GetEngineRoot); @@ -122,16 +122,16 @@ namespace AzToolsFramework { if (fileInfo.HasFlag(AzToolsFramework::SCF_Writeable)) { - m_icon = QIcon(m_writableIconPath.c_str()); + m_pixmap.load(m_writableIconPath.c_str()); } else { - m_icon = QIcon(m_nonWritableIconPath.c_str()); + m_pixmap.load(m_nonWritableIconPath.c_str()); } } else { - m_icon = QIcon(); + m_pixmap = QPixmap(); } m_readyForUpdate = true; emit Updated(); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.h index 03b04a3fd9..23fded57f4 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/SourceControlThumbnail.h @@ -55,7 +55,7 @@ namespace AzToolsFramework { Q_OBJECT public: - SourceControlThumbnail(SharedThumbnailKey key, int thumbnailSize); + SourceControlThumbnail(SharedThumbnailKey key); ~SourceControlThumbnail() override; ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.cpp index 2892e4efce..499f508dcd 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.cpp @@ -24,8 +24,6 @@ namespace AzToolsFramework { namespace Thumbnailer { - static const int DefaultIconSize = 16; - ////////////////////////////////////////////////////////////////////////// // ThumbnailKey ////////////////////////////////////////////////////////////////////////// @@ -54,10 +52,9 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // Thumbnail ////////////////////////////////////////////////////////////////////////// - Thumbnail::Thumbnail(SharedThumbnailKey key, int thumbnailSize) + Thumbnail::Thumbnail(SharedThumbnailKey key) : QObject() , m_state(State::Unloaded) - , m_thumbnailSize(thumbnailSize) , m_key(key) { connect(&m_watcher, &QFutureWatcher::finished, this, [this]() @@ -91,19 +88,9 @@ namespace AzToolsFramework } } - QPixmap Thumbnail::GetPixmap() const + const QPixmap& Thumbnail::GetPixmap() const { - return GetPixmap(QSize(DefaultIconSize, DefaultIconSize)); - } - - QPixmap Thumbnail::GetPixmap(const QSize& size) const - { - if (m_icon.isNull()) - { - return m_pixmap; - } - - return m_icon.pixmap(size); + return m_pixmap; } SharedThumbnailKey Thumbnail::GetKey() const diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.h index 671960bea5..a517625e61 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.h @@ -19,7 +19,6 @@ AZ_PUSH_DISABLE_WARNING(4127 4251 4800, "-Wunknown-warning-option") // 4127: con // 4800: 'int': forcing value to bool 'true' or 'false' (performance warning) #include #include -#include #include AZ_POP_DISABLE_WARNING #endif @@ -86,12 +85,11 @@ namespace AzToolsFramework Failed }; - Thumbnail(SharedThumbnailKey key, int thumbnailSize); + Thumbnail(SharedThumbnailKey key); ~Thumbnail() override; bool operator == (const Thumbnail& other) const; void Load(); - virtual QPixmap GetPixmap() const; - virtual QPixmap GetPixmap(const QSize& size) const; + const QPixmap& GetPixmap() const; virtual void UpdateTime(float /*deltaTime*/) {} SharedThumbnailKey GetKey() const; State GetState() const; @@ -105,10 +103,8 @@ namespace AzToolsFramework protected: QFutureWatcher m_watcher; State m_state; - int m_thumbnailSize; SharedThumbnailKey m_key; QPixmap m_pixmap; - QIcon m_icon; virtual void LoadThread() {} }; @@ -122,7 +118,6 @@ namespace AzToolsFramework ThumbnailProvider() = default; virtual ~ThumbnailProvider() = default; virtual bool GetThumbnail(SharedThumbnailKey key, SharedThumbnail& thumbnail) = 0; - virtual void SetThumbnailSize(int thumbnailSize) = 0; //! Priority identifies ThumbnailProvider order in ThumbnailContext //! Higher priority means this ThumbnailProvider will take precedence in generating a thumbnail when //! a supplied ThumbnailKey is supported by multiple providers. @@ -185,10 +180,7 @@ namespace AzToolsFramework bool GetThumbnail(SharedThumbnailKey key, SharedThumbnail& thumbnail) override; - void SetThumbnailSize(int thumbnailSize) override; - protected: - int m_thumbnailSize; AZStd::unordered_map m_cache; //! Check if thumbnail key is handled by this provider, overload in derived class diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.inl b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.inl index 3182248017..b121f56a75 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.inl +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/Thumbnail.inl @@ -18,7 +18,6 @@ namespace AzToolsFramework { template ThumbnailCache::ThumbnailCache() - : m_thumbnailSize(0) { BusConnect(); } @@ -49,17 +48,11 @@ namespace AzToolsFramework } if (IsSupportedThumbnail(key)) { - thumbnail = QSharedPointer(new ThumbnailType(key, m_thumbnailSize)); + thumbnail = QSharedPointer(new ThumbnailType(key)); m_cache[key] = thumbnail; return true; } return false; } - - template - void ThumbnailCache::SetThumbnailSize(int thumbnailSize) - { - m_thumbnailSize = thumbnailSize; - } } // namespace Thumbnailer } // namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.cpp index ae6d7c1178..1cee6946e7 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.cpp @@ -24,10 +24,9 @@ namespace AzToolsFramework { namespace Thumbnailer { - ThumbnailContext::ThumbnailContext(int thumbnailSize) - : m_missingThumbnail(new MissingThumbnail(thumbnailSize)) - , m_loadingThumbnail(new LoadingThumbnail(thumbnailSize)) - , m_thumbnailSize(thumbnailSize) + ThumbnailContext::ThumbnailContext() + : m_missingThumbnail(new MissingThumbnail()) + , m_loadingThumbnail(new LoadingThumbnail()) , m_threadPool(this) { ThumbnailContextRequestBus::Handler::BusConnect(); @@ -120,7 +119,6 @@ namespace AzToolsFramework return; } - providerToAdd->SetThumbnailSize(m_thumbnailSize); m_providers.insert(providerToAdd); } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.h index 6ba3d637f6..0267d76365 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailContext.h @@ -45,9 +45,9 @@ namespace AzToolsFramework { Q_OBJECT public: - AZ_CLASS_ALLOCATOR(ThumbnailContext, AZ::SystemAllocator, 0) + AZ_CLASS_ALLOCATOR(ThumbnailContext, AZ::SystemAllocator, 0); - explicit ThumbnailContext(int thumbnailSize); + ThumbnailContext(); ~ThumbnailContext() override; //! Is the thumbnail currently loading or is about to load. @@ -82,8 +82,6 @@ namespace AzToolsFramework SharedThumbnail m_missingThumbnail; //! Default loading thumbnail used when thumbnail is found by is not yet generated SharedThumbnail m_loadingThumbnail; - //! Thumbnail size (width and height in pixels) - int m_thumbnailSize; //! There is only a limited number of threads on global threadPool, because there can be many thumbnails rendering at once //! an individual threadPool is needed to avoid deadlocks QThreadPool m_threadPool; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerBus.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerBus.h index 02264e61f8..d191d9c043 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerBus.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerBus.h @@ -40,7 +40,7 @@ namespace AzToolsFramework { public: //! Add thumbnail context - virtual void RegisterContext(const char* contextName, int thumbnailSize) = 0; + virtual void RegisterContext(const char* contextName) = 0; //! Remove thumbnail context and all associated ThumbnailProviders virtual void UnregisterContext(const char* contextName) = 0; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.cpp index 044f995a5a..36c9e35314 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.cpp @@ -32,8 +32,7 @@ namespace AzToolsFramework void ThumbnailerComponent::Activate() { - int thumbnailSize = qApp->style()->pixelMetric(QStyle::PM_SmallIconSize); - RegisterContext(ThumbnailContext::DefaultContext, thumbnailSize); + RegisterContext(ThumbnailContext::DefaultContext); BusConnect(); } @@ -62,10 +61,10 @@ namespace AzToolsFramework provided.push_back(AZ_CRC("ThumbnailerService", 0x65422b97)); } - void ThumbnailerComponent::RegisterContext(const char* contextName, int thumbnailSize) + void ThumbnailerComponent::RegisterContext(const char* contextName) { AZ_Assert(m_thumbnails.find(contextName) == m_thumbnails.end(), "Context %s already registered", contextName); - m_thumbnails[contextName] = AZStd::make_shared(thumbnailSize); + m_thumbnails[contextName] = AZStd::make_shared(); } void ThumbnailerComponent::UnregisterContext(const char* contextName) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.h index 814781ea9a..6575f277e9 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Thumbnails/ThumbnailerComponent.h @@ -43,7 +43,7 @@ namespace AzToolsFramework ////////////////////////////////////////////////////////////////////////// // ThumbnailerRequests ////////////////////////////////////////////////////////////////////////// - void RegisterContext(const char* contextName, int thumbnailSize) override; + void RegisterContext(const char* contextName) override; void UnregisterContext(const char* contextName) override; bool HasContext(const char* contextName) const override; void RegisterThumbnailProvider(SharedThumbnailProvider provider, const char* contextName) override; diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/EditorLayerComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/EditorLayerComponent.cpp index 6365334502..60f31fa004 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/EditorLayerComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/EditorLayerComponent.cpp @@ -101,8 +101,8 @@ namespace AzToolsFramework { editContext->Class("Layer", "The layer component allows entities to be saved to different files on disk.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Layers.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Layers.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Layers.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Layers.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Layer", 0xe4db211a)) ->Attribute(AZ::Edit::Attributes::AddableByUser, false) ->Attribute(AZ::Edit::Attributes::RemoveableByUser, false) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp index 0e96f77e76..6970d747c4 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp @@ -1025,9 +1025,9 @@ namespace AzToolsFramework ->Attribute(AZ::Edit::Attributes::NameLabelOverride, &ScriptEditorComponent::m_customName) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Category, "Scripting") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/LuaScript.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/LuaScript.svg") ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid()) - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Script.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Script.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-lua-script.html") ->DataElement("AssetRef", &ScriptEditorComponent::m_scriptAsset, "Script", "Which script to use") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &ScriptEditorComponent::ScriptHasChanged) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/TransformComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/TransformComponent.cpp index 7ce11e5957..dcced5b705 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/TransformComponent.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/TransformComponent.cpp @@ -1224,8 +1224,8 @@ namespace AzToolsFramework { ptrEdit->Class("Transform", "Controls the placement of the entity in the world in 3d")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Transform.svg")-> - Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Transform.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Transform.svg")-> + Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Transform.png")-> Attribute(AZ::Edit::Attributes::AutoExpand, true)-> DataElement(AZ::Edit::UIHandlers::Default, &TransformComponent::m_parentEntityId, "Parent entity", "")-> Attribute(AZ::Edit::Attributes::ChangeValidate, &TransformComponent::ValidatePotentialParent)-> diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp index f19f456816..d69eb5559f 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp @@ -544,7 +544,7 @@ namespace AzToolsFramework m_errorButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_errorButton->setFixedSize(QSize(16, 16)); m_errorButton->setMouseTracking(true); - m_errorButton->setIcon(QIcon("Editor/Icons/PropertyEditor/error_icon.png")); + m_errorButton->setIcon(QIcon("Icons/PropertyEditor/error_icon.png")); m_errorButton->setToolTip("Show Errors"); // Insert the error button after the asset label @@ -1304,7 +1304,11 @@ namespace AzToolsFramework } else if (attrib == AZ_CRC_CE("Thumbnail")) { - GUI->SetShowThumbnail(true); + bool showThumbnail = false; + if (attrValue->Read(showThumbnail)) + { + GUI->SetShowThumbnail(showThumbnail); + } } else if (attrib == AZ_CRC_CE("ThumbnailCallback")) { diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp index bb9232435a..2247350f52 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp @@ -114,6 +114,7 @@ namespace AzToolsFramework m_thumbnailEnlarged->move(position); m_thumbnailEnlarged->setWindowFlags(Qt::Window | Qt::FramelessWindowHint); m_thumbnailEnlarged->SetThumbnailKey(m_key); + m_thumbnailEnlarged->raise(); m_thumbnailEnlarged->show(); } QWidget::enterEvent(e); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/SearchWidget/SearchCriteriaWidget.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/SearchWidget/SearchCriteriaWidget.cpp index 7d9cea4e68..3e6217281b 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/SearchWidget/SearchCriteriaWidget.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/SearchWidget/SearchCriteriaWidget.cpp @@ -70,7 +70,7 @@ namespace AzToolsFramework m_tagLabel->setMinimumSize(24, 22); m_tagLabel->setAttribute(Qt::WA_TransparentForMouseEvents, true); - QIcon closeIcon("Editor/Icons/animation/close.png"); + QIcon closeIcon("Icons/animation/close.png"); QPushButton* button = new QPushButton(this); button->setStyleSheet(button->styleSheet() + "border: 0px;"); @@ -233,14 +233,14 @@ namespace AzToolsFramework QPushButton* loadButton = new QPushButton(this); loadButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); loadButton->setFixedSize(QSize(24, 24)); - loadButton->setIcon(QIcon("Editor/UI/Icons/toolbar/libraryLoad.png")); + loadButton->setIcon(QIcon("UI/Icons/toolbar/libraryLoad.png")); loadButton->setToolTip(tr("Load a saved filter")); loadButton->setProperty("iconButton", "true"); m_saveButton = new QPushButton(this); m_saveButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_saveButton->setFixedSize(QSize(24, 24)); - m_saveButton->setIcon(QIcon("Editor/UI/Icons/toolbar/librarySave.png")); + m_saveButton->setIcon(QIcon("UI/Icons/toolbar/librarySave.png")); m_saveButton->setToolTip(tr("Save the current filter")); m_saveButton->setEnabled(false); m_saveButton->setProperty("iconButton", "true"); @@ -248,7 +248,7 @@ namespace AzToolsFramework m_toggleAllFiltersButton = new QPushButton(this); m_toggleAllFiltersButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_toggleAllFiltersButton->setFixedSize(QSize(24, 24)); - m_toggleAllFiltersButton->setIcon(QIcon("Editor/Icons/animation/filter_16.png")); + m_toggleAllFiltersButton->setIcon(QIcon("Icons/animation/filter_16.png")); m_toggleAllFiltersButton->setVisible(false); m_toggleAllFiltersButton->setToolTip(tr("Toggle all filters on/off")); m_toggleAllFiltersButton->setProperty("iconButton", "true"); @@ -267,7 +267,7 @@ namespace AzToolsFramework m_clearAllButton = new QPushButton(this); m_clearAllButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_clearAllButton->setFixedSize(QSize(24, 24)); - m_clearAllButton->setIcon(QIcon("Editor/Icons/animation/close.png")); + m_clearAllButton->setIcon(QIcon("Icons/animation/close.png")); m_clearAllButton->setVisible(false); m_clearAllButton->setToolTip(tr("Clear all filters")); m_clearAllButton->setProperty("iconButton", "true"); diff --git a/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp b/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp index 15a76c1dbb..1f17bd5e95 100644 --- a/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp @@ -49,8 +49,8 @@ namespace AzToolsFramework ->Attribute(AZ::Edit::Attributes::AddableByUser, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game")) ->Attribute(AZ::Edit::Attributes::Category, "Entity Search Test Components") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/") ->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent1::m_boolValue, "Bool", "") @@ -108,8 +108,8 @@ namespace AzToolsFramework ->Attribute(AZ::Edit::Attributes::AddableByUser, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game")) ->Attribute(AZ::Edit::Attributes::Category, "Entity Search Test Components") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/") ->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent2::m_floatValue, "Float", "") diff --git a/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp b/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp index 0c38960647..94df2770d1 100644 --- a/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp +++ b/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp @@ -125,8 +125,8 @@ namespace UnitTest ->Attribute(AZ::Edit::Attributes::AddableByUser, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game")) ->Attribute(AZ::Edit::Attributes::Category, "Inspector Test Components") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/") ->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent2::m_data, "Data", "The component's Data"); @@ -194,8 +194,8 @@ namespace UnitTest ->Attribute(AZ::Edit::Attributes::AddableByUser, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("System")) ->Attribute(AZ::Edit::Attributes::Category, "Inspector Test Components") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/") ->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent3::m_data, "Data", "The component's Data"); diff --git a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabUpdateInstancesBenchmarks.cpp b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabUpdateInstancesBenchmarks.cpp index d1bd2a488e..c81db58c95 100644 --- a/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabUpdateInstancesBenchmarks.cpp +++ b/Code/Framework/AzToolsFramework/Tests/Prefab/Benchmark/PrefabUpdateInstancesBenchmarks.cpp @@ -78,7 +78,7 @@ namespace Benchmark } BENCHMARK_REGISTER_F(BM_PrefabUpdateInstances, UpdateInstances_SingeEntityInstances) ->RangeMultiplier(10) - ->Range(100, 10000) + ->Range(100, 1000) ->Unit(benchmark::kMillisecond) ->Complexity(); diff --git a/Code/Framework/AzToolsFramework/Tests/ThumbnailerTests.cpp b/Code/Framework/AzToolsFramework/Tests/ThumbnailerTests.cpp index 2c17334043..195e9c54cc 100644 --- a/Code/Framework/AzToolsFramework/Tests/ThumbnailerTests.cpp +++ b/Code/Framework/AzToolsFramework/Tests/ThumbnailerTests.cpp @@ -85,8 +85,6 @@ namespace UnitTest { constexpr const char* contextName1 = "Context1"; constexpr const char* contextName2 = "Context2"; - constexpr int thumbnailSize1 = 128; - constexpr int thumbnailSize2 = 256; auto checkHasContext = [](const char* contextName) { @@ -98,12 +96,12 @@ namespace UnitTest EXPECT_FALSE(checkHasContext(contextName1)); EXPECT_FALSE(checkHasContext(contextName2)); - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1); EXPECT_TRUE(checkHasContext(contextName1)); EXPECT_FALSE(checkHasContext(contextName2)); - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2, thumbnailSize2); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2); EXPECT_TRUE(checkHasContext(contextName1)); EXPECT_TRUE(checkHasContext(contextName2)); @@ -123,8 +121,6 @@ namespace UnitTest { constexpr const char* contextName1 = "Context1"; constexpr const char* contextName2 = "Context2"; - constexpr int thumbnailSize1 = 128; - constexpr int thumbnailSize2 = 256; auto checkHasContext = [](const char* contextName) { @@ -133,8 +129,8 @@ namespace UnitTest return hasContext; }; - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1); - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2, thumbnailSize2); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2); EXPECT_TRUE(checkHasContext(contextName1)); EXPECT_TRUE(checkHasContext(contextName2)); @@ -149,12 +145,11 @@ namespace UnitTest TEST_F(ThumbnailerTests, ThumbnailerComponent_RegisterContextTwice_Assert) { constexpr const char* contextName1 = "Context1"; - constexpr int thumbnailSize1 = 128; - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1); AZ_TEST_START_TRACE_SUPPRESSION; - AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1); + AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1); AZ_TEST_STOP_TRACE_SUPPRESSION(1); } diff --git a/Code/LauncherUnified/Launcher.cpp b/Code/LauncherUnified/Launcher.cpp index 36d6a432f5..033169ac6d 100644 --- a/Code/LauncherUnified/Launcher.cpp +++ b/Code/LauncherUnified/Launcher.cpp @@ -26,7 +26,6 @@ #include #include -#include #include #include #include @@ -46,6 +45,23 @@ extern "C" void CreateStaticModules(AZStd::vector& modulesOut); namespace { + void ExecuteConsoleCommandFile(AzFramework::Application& application) + { + const AZStd::string_view customConCmdKey = "console-command-file"; + const AZ::CommandLine* commandLine = application.GetCommandLine(); + AZStd::size_t numSwitchValues = commandLine->GetNumSwitchValues(customConCmdKey); + if (numSwitchValues > 0) + { + // The expectations for command line parameters is that the "last one wins" + // That way it allows users and test scripts to override previous command line options by just listing them later on the invocation line + const AZStd::string& consoleCmd = commandLine->GetSwitchValue(customConCmdKey, numSwitchValues - 1); + if (!consoleCmd.empty()) + { + AZ::Interface::Get()->ExecuteConfigFile(consoleCmd.c_str()); + } + } + } + #if AZ_TRAIT_LAUNCHER_USE_CRY_DYNAMIC_MODULE_HANDLE // mimics AZ::DynamicModuleHandle but uses CryLibrary under the hood, // which is necessary to properly load legacy Cry libraries on some platforms @@ -433,18 +449,14 @@ namespace O3DELauncher // Non-host platforms cannot use the project path that is #defined within the launcher. // In this case the the result of AZ::Utils::GetDefaultAppRoot is used instead +#if !AZ_TRAIT_OS_IS_HOST_OS_PLATFORM AZStd::string_view projectPath; -#if AZ_TRAIT_OS_IS_HOST_OS_PLATFORM - // Insert the project_path option to the front of the command line arguments - projectPath = GetProjectPath(); -#else // Make sure the defaultAppRootPath variable is in scope long enough until the projectPath string_view is used below AZStd::optional defaultAppRootPath = AZ::Utils::GetDefaultAppRootPath(); if (defaultAppRootPath.has_value()) { projectPath = *defaultAppRootPath; } -#endif if (!projectPath.empty()) { const auto projectPathKey = FixedValueString(AZ::SettingsRegistryMergeUtils::BootstrapSettingsRootKey) @@ -455,15 +467,14 @@ namespace O3DELauncher // For non-host platforms set the engine root to be the project root // Since the directories available during execution are limited on those platforms -#if !AZ_TRAIT_OS_IS_HOST_OS_PLATFORM AZStd::string_view enginePath = projectPath; const auto enginePathKey = FixedValueString(AZ::SettingsRegistryMergeUtils::BootstrapSettingsRootKey) + "/engine_path"; enginePathOptionOverride = FixedValueString ::format(R"(--regset="%s=%.*s")", enginePathKey.c_str(), aznumeric_cast(enginePath.size()), enginePath.data()); argContainer.emplace_back(enginePathOptionOverride.data()); -#endif } +#endif AzGameFramework::GameApplication gameApplication(aznumeric_cast(argContainer.size()), argContainer.data()); // The settings registry has been created by the AZ::ComponentApplication constructor at this point @@ -637,7 +648,11 @@ namespace O3DELauncher if (gEnv && gEnv->pConsole) { // Execute autoexec.cfg to load the initial level - gEnv->pConsole->ExecuteString("exec autoexec.cfg"); + AZ::Interface::Get()->ExecuteConfigFile("autoexec.cfg"); + + // Find out if console command file was passed + // via --console-command-file=%filename% and execute it + ExecuteConsoleCommandFile(gameApplication); gEnv->pSystem->ExecuteCommandLine(false); diff --git a/Code/LauncherUnified/LauncherProject.cpp b/Code/LauncherUnified/LauncherProject.cpp index e7832cc99f..6fc1934d29 100644 --- a/Code/LauncherUnified/LauncherProject.cpp +++ b/Code/LauncherUnified/LauncherProject.cpp @@ -36,15 +36,4 @@ namespace O3DELauncher #endif return { LY_PROJECT_NAME }; } - - AZStd::string_view GetProjectPath() - { - // The Project CMake path optional and not required - // It is used as fall back project root path -#if defined LY_PROJECT_CMAKE_PATH - return { LY_PROJECT_CMAKE_PATH }; -#else - return {}; -#endif - } } diff --git a/Code/LauncherUnified/launcher_generator.cmake b/Code/LauncherUnified/launcher_generator.cmake index b73d2c1fff..ca17a58eee 100644 --- a/Code/LauncherUnified/launcher_generator.cmake +++ b/Code/LauncherUnified/launcher_generator.cmake @@ -130,9 +130,6 @@ foreach(project_name project_path IN ZIP_LISTS LY_PROJECTS_TARGET_NAME LY_PROJEC PRIVATE # Adds the name of the project/game LY_PROJECT_NAME="${project_name}" - # Adds the project path supplied to CMake during configuration - # This is used as a fallback to launch the AssetProcessor - LY_PROJECT_CMAKE_PATH="${project_path}" # Adds the ${project_name}_GameLauncher target as a define so for the Settings Registry to use # when loading .setreg file specializations # This is needed so that only gems for the project game launcher are loaded @@ -174,9 +171,6 @@ foreach(project_name project_path IN ZIP_LISTS LY_PROJECTS_TARGET_NAME LY_PROJEC PRIVATE # Adds the name of the project/game LY_PROJECT_NAME="${project_name}" - # Adds the project path supplied to CMake during configuration - # This is used as a fallback to launch the AssetProcessor - LY_PROJECT_CMAKE_PATH="${project_path}" # Adds the ${project_name}_ServerLauncher target as a define so for the Settings Registry to use # when loading .setreg file specializations # This is needed so that only gems for the project server launcher are loaded diff --git a/Code/Sandbox/Editor/Alembic/AlembicCompileDialog.cpp b/Code/Sandbox/Editor/Alembic/AlembicCompileDialog.cpp index 14f3301626..b0df05190b 100644 --- a/Code/Sandbox/Editor/Alembic/AlembicCompileDialog.cpp +++ b/Code/Sandbox/Editor/Alembic/AlembicCompileDialog.cpp @@ -19,6 +19,8 @@ #include // AzCore +#include + #include // Editor @@ -70,12 +72,13 @@ void CAlembicCompileDialog::OnInitDialog() SDirectoryEnumeratorHelper dirHelper; - dirHelper.ScanDirectoryRecursive(gEnv->pCryPak, "@engroot@/", "Editor/Presets/GeomCache", filePattern, presetFiles); + auto engineAssetSourceRoot = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets"; + dirHelper.ScanDirectoryRecursive(gEnv->pCryPak, engineAssetSourceRoot.c_str(), "Editor/Presets/GeomCache", filePattern, presetFiles); for (auto iter = presetFiles.begin(); iter != presetFiles.end(); ++iter) { const auto& file = *iter; - const AZStd::string filePath = "@engroot@/" + file; + const AZ::IO::FixedMaxPath filePath = engineAssetSourceRoot / file; m_presets.push_back(LoadConfig(Path::GetFileName(file.c_str()), XmlHelpers::LoadXmlFromFile(filePath.c_str()))); m_ui->m_presetComboBox->addItem(m_presets.back().m_name); } diff --git a/Code/Sandbox/Editor/CryEdit.cpp b/Code/Sandbox/Editor/CryEdit.cpp index c6a2ece984..3f28717072 100644 --- a/Code/Sandbox/Editor/CryEdit.cpp +++ b/Code/Sandbox/Editor/CryEdit.cpp @@ -149,7 +149,6 @@ AZ_POP_DISABLE_WARNING #include "LevelFileDialog.h" #include "LevelIndependentFileMan.h" #include "WelcomeScreen/WelcomeScreenDialog.h" -#include "Dialogs/DuplicatedObjectsHandlerDlg.h" #include "Controls/ReflectedPropertyControl/PropertyCtrl.h" #include "Controls/ReflectedPropertyControl/ReflectedVar.h" @@ -400,9 +399,7 @@ void CCryEditApp::RegisterActionHandlers() ON_COMMAND(ID_OBJECTMODIFY_UNFREEZE, OnObjectmodifyUnfreeze) ON_COMMAND(ID_UNDO, OnUndo) ON_COMMAND(ID_TOOLBAR_WIDGET_REDO, OnUndo) // Can't use the same ID, because for the menu we can't have a QWidgetAction, while for the toolbar we want one - ON_COMMAND(ID_SELECTION_SAVE, OnSelectionSave) ON_COMMAND(ID_IMPORT_ASSET, OnOpenAssetImporter) - ON_COMMAND(ID_SELECTION_LOAD, OnSelectionLoad) ON_COMMAND(ID_LOCK_SELECTION, OnLockSelection) ON_COMMAND(ID_EDIT_LEVELDATA, OnEditLevelData) ON_COMMAND(ID_FILE_EDITLOGFILE, OnFileEditLogFile) @@ -1157,9 +1154,9 @@ BOOL CCryEditApp::CheckIfAlreadyRunning() m_mutexApplication = new QSharedMemory(O3DEApplicationName); if (!m_mutexApplication->create(16)) { - // Don't prompt the user in non-interactive export mode. Instead, default to allowing multiple instances to - // run simultaneously, so that multiple level exports can be run in parallel on the same machine. - // NOTE: If you choose to do this, be sure to export *different* levels, since nothing prevents multiple runs + // Don't prompt the user in non-interactive export mode. Instead, default to allowing multiple instances to + // run simultaneously, so that multiple level exports can be run in parallel on the same machine. + // NOTE: If you choose to do this, be sure to export *different* levels, since nothing prevents multiple runs // from trying to write to the same level at the same time. // If we're running interactively, let's ask and make sure the user actually intended to do this. if (!m_bExportMode && QMessageBox::question(AzToolsFramework::GetActiveWindow(), QObject::tr("Too many apps"), QObject::tr("There is already an Open 3D Engine application running\nDo you want to start another one?")) != QMessageBox::Yes) @@ -1720,7 +1717,7 @@ BOOL CCryEditApp::InitInstance() AzQtComponents::StyleManager::addSearchPaths( QStringLiteral("style"), engineRoot.filePath(QStringLiteral("Code/Sandbox/Editor/Style")), - QStringLiteral(":/Editor/Style"), + QStringLiteral(":/Assets/Editor/Style"), engineRootPath); AzQtComponents::StyleManager::setStyleSheet(mainWindow, QStringLiteral("style:Editor.qss")); @@ -3019,149 +3016,12 @@ void CCryEditApp::OnFileExportOcclusionMesh() pExportManager->Export(levelName.toUtf8().data(), "ocm", levelPath.toUtf8().data(), false, false, true); } -void CCryEditApp::OnSelectionSave() -{ - char szFilters[] = "Object Group Files (*.grp)"; - QtUtil::QtMFCScopedHWNDCapture cap; - CAutoDirectoryRestoreFileDialog dlg(QFileDialog::AcceptSave, QFileDialog::AnyFile, "grp", {}, szFilters, {}, {}, cap); - - if (dlg.exec()) - { - QWaitCursor wait; - CSelectionGroup* sel = GetIEditor()->GetSelection(); - //CXmlArchive xmlAr( "Objects" ); - - - XmlNodeRef root = XmlHelpers::CreateXmlNode("Objects"); - CObjectArchive ar(GetIEditor()->GetObjectManager(), root, false); - // Save all objects to XML. - for (int i = 0; i < sel->GetCount(); i++) - { - ar.SaveObject(sel->GetObject(i)); - } - QString fileName = dlg.selectedFiles().first(); - XmlHelpers::SaveXmlNode(GetIEditor()->GetFileUtil(), root, fileName.toStdString().c_str()); - //xmlAr.Save( dlg.GetPathName() ); - } -} - ////////////////////////////////////////////////////////////////////////// -struct SDuplicatedObject -{ - SDuplicatedObject(const QString& name, const GUID& id) - { - m_name = name; - m_id = id; - } - QString m_name; - GUID m_id; -}; - -void GatherAllObjects(XmlNodeRef node, std::vector& outDuplicatedObjects) -{ - if (!azstricmp(node->getTag(), "Object")) - { - GUID guid; - if (node->getAttr("Id", guid)) - { - if (GetIEditor()->GetObjectManager()->FindObject(guid)) - { - QString name; - node->getAttr("Name", name); - outDuplicatedObjects.push_back(SDuplicatedObject(name, guid)); - } - } - } - - for (int i = 0, nChildCount(node->getChildCount()); i < nChildCount; ++i) - { - XmlNodeRef childNode = node->getChild(i); - if (childNode == NULL) - { - continue; - } - GatherAllObjects(childNode, outDuplicatedObjects); - } -} - void CCryEditApp::OnOpenAssetImporter() { QtViewPaneManager::instance()->OpenPane(LyViewPane::SceneSettings); } -void CCryEditApp::OnSelectionLoad() -{ - // Load objects from .grp file. - QtUtil::QtMFCScopedHWNDCapture cap; - CAutoDirectoryRestoreFileDialog dlg(QFileDialog::AcceptOpen, QFileDialog::ExistingFile, "grp", {}, "Object Group Files (*.grp)", {}, {}, cap); - if (dlg.exec() != QDialog::Accepted) - { - return; - } - - QWaitCursor wait; - - XmlNodeRef root = XmlHelpers::LoadXmlFromFile(dlg.selectedFiles().first().toStdString().c_str()); - if (!root) - { - QMessageBox::critical(AzToolsFramework::GetActiveWindow(), QString(), QObject::tr("Error at loading group file.")); - return; - } - - std::vector duplicatedObjects; - GatherAllObjects(root, duplicatedObjects); - - CDuplicatedObjectsHandlerDlg::EResult result(CDuplicatedObjectsHandlerDlg::eResult_None); - int nDuplicatedObjectSize(duplicatedObjects.size()); - - if (!duplicatedObjects.empty()) - { - QString msg = QObject::tr("The following object(s) already exist(s) in the level.\r\n\r\n"); - - for (int i = 0; i < nDuplicatedObjectSize; ++i) - { - msg += QStringLiteral("\t"); - msg += duplicatedObjects[i].m_name; - if (i < nDuplicatedObjectSize - 1) - { - msg += QStringLiteral("\r\n"); - } - } - - CDuplicatedObjectsHandlerDlg confirmDlg(msg); - if (confirmDlg.exec() == QDialog::Rejected) - { - return; - } - result = confirmDlg.GetResult(); - } - - CUndo undo("Load Objects"); - GetIEditor()->ClearSelection(); - - CObjectArchive ar(GetIEditor()->GetObjectManager(), root, true); - - if (result == CDuplicatedObjectsHandlerDlg::eResult_Override) - { - for (int i = 0; i < nDuplicatedObjectSize; ++i) - { - CBaseObject* pObj = GetIEditor()->GetObjectManager()->FindObject(duplicatedObjects[i].m_id); - if (pObj) - { - GetIEditor()->GetObjectManager()->DeleteObject(pObj); - } - } - } - else if (result == CDuplicatedObjectsHandlerDlg::eResult_CreateCopies) - { - ar.MakeNewIds(true); - } - - GetIEditor()->GetObjectManager()->LoadObjects(ar, true); - GetIEditor()->SetModifiedFlag(); - GetIEditor()->SetModifiedModule(eModifiedBrushes); -} - ////////////////////////////////////////////////////////////////////////// void CCryEditApp::OnUpdateSelected(QAction* action) { diff --git a/Code/Sandbox/Editor/CryEdit.h b/Code/Sandbox/Editor/CryEdit.h index dc18dbcfda..7b96ab3827 100644 --- a/Code/Sandbox/Editor/CryEdit.h +++ b/Code/Sandbox/Editor/CryEdit.h @@ -232,9 +232,7 @@ public: void OnObjectmodifyFreeze(); void OnObjectmodifyUnfreeze(); void OnUndo(); - void OnSelectionSave(); void OnOpenAssetImporter(); - void OnSelectionLoad(); void OnUpdateSelected(QAction* action); void OnLockSelection(); void OnEditLevelData(); diff --git a/Code/Sandbox/Editor/CryEditDoc.cpp b/Code/Sandbox/Editor/CryEditDoc.cpp index 916317b6bb..8819c8b382 100644 --- a/Code/Sandbox/Editor/CryEditDoc.cpp +++ b/Code/Sandbox/Editor/CryEditDoc.cpp @@ -83,7 +83,7 @@ static const char* kHoldFolder = "$tmp_hold"; // conform to the ignored file typ static const char* kSaveBackupFolder = "_savebackup"; static const char* kResizeTempFolder = "$tmp_resize"; // conform to the ignored file types $tmp[0-9]*_ regex -static const char* kBackupOrTempFolders[] = +static const char* kBackupOrTempFolders[] = { kAutoBackupFolder, kHoldFolder, @@ -1164,7 +1164,7 @@ bool CCryEditDoc::OnSaveDocument(const QString& lpszPathName) { DoSaveDocument(lpszPathName, context); saveSuccess = AfterSaveDocument(lpszPathName, context); - } + } } return saveSuccess; @@ -1436,7 +1436,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename) // Save AZ entities to the editor level. bool contentsAllSaved = false; // abort level save if anything within it fails - + auto tempFilenameStrData = tempSaveFile.toStdString(); auto filenameStrData = fullPathName.toStdString(); @@ -1458,7 +1458,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename) } } - + AZStd::vector editorEntities; AzToolsFramework::EditorEntityContextRequestBus::Broadcast( &AzToolsFramework::EditorEntityContextRequestBus::Events::GetLooseEditorEntities, @@ -1815,7 +1815,7 @@ bool CCryEditDoc::LoadLevel(TDocMultiArchive& arrXmlAr, const QString& absoluteC AzFramework::ApplicationRequests::Bus::BroadcastResult(isPrefabEnabled, &AzFramework::ApplicationRequests::IsPrefabSystemEnabled); auto pIPak = GetIEditor()->GetSystem()->GetIPak(); - + QString folderPath = QFileInfo(absoluteCryFilePath).absolutePath(); OnStartLevelResourceList(); @@ -2391,7 +2391,8 @@ void CCryEditDoc::InitEmptyLevel(int /*resolution*/, int /*unitSize*/, bool /*bU GetIEditor()->GetGameEngine()->SetLevelCreated(false); // Default time of day. - XmlNodeRef root = GetISystem()->LoadXmlFromFile("@engroot@/Editor/default_time_of_day.xml"); + auto defaultTimeOfDayPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets" / "Editor" / "default_time_of_day.xml"; + XmlNodeRef root = GetISystem()->LoadXmlFromFile(defaultTimeOfDayPath.c_str()); if (root) { ITimeOfDay* pTimeOfDay = gEnv->p3DEngine ? gEnv->p3DEngine->GetTimeOfDay() : nullptr; @@ -2454,7 +2455,7 @@ void CCryEditDoc::CreateDefaultLevelAssets(int resolution, int unitSize) AZ::Transform worldTransform = AZ::Transform::CreateIdentity(); worldTransform = AZ::Transform::CreateTranslation(AZ::Vector3(halfTerrainSize, halfTerrainSize, m_envProbeHeight / 2)); - + AzToolsFramework::SliceEditorEntityOwnershipServiceNotificationBus::Handler::BusConnect(); GetIEditor()->SuspendUndo(); AzToolsFramework::SliceEditorEntityOwnershipServiceRequestBus::Broadcast( @@ -2613,7 +2614,7 @@ void CCryEditDoc::OnSliceInstantiated(const AZ::Data::AssetId& sliceAssetId, AZ: sliceAddress.SetReference(nullptr); SetModifiedFlag(true); SetModifiedModules(eModifiedEntities); - + AzToolsFramework::SliceEditorEntityOwnershipServiceNotificationBus::Handler::BusDisconnect(); //save after level default slice fully instantiated diff --git a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.cpp b/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.cpp deleted file mode 100644 index 5a3a1e3036..0000000000 --- a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -// Original file Copyright Crytek GMBH or its affiliates, used under license. - -#include "EditorDefs.h" - -#include "DuplicatedObjectsHandlerDlg.h" - -AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING -#include -AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING - - -CDuplicatedObjectsHandlerDlg::CDuplicatedObjectsHandlerDlg(const QString& msg, QWidget* pParent) - : QDialog(pParent) - , m_ui(new Ui::DuplicatedObjectsHandlerDlg) -{ - m_ui->setupUi(this); - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - m_ui->textBrowser->setPlainText(msg); - - connect(m_ui->buttonOverride, &QPushButton::clicked, this, &CDuplicatedObjectsHandlerDlg::OnBnClickedOverrideBtn); - connect(m_ui->buttonCreateCopies, &QPushButton::clicked, this, &CDuplicatedObjectsHandlerDlg::OnBnClickedCreateCopiesBtn); -} - -CDuplicatedObjectsHandlerDlg::~CDuplicatedObjectsHandlerDlg() -{ -} - -void CDuplicatedObjectsHandlerDlg::OnBnClickedOverrideBtn() -{ - m_result = eResult_Override; - accept(); -} - -void CDuplicatedObjectsHandlerDlg::OnBnClickedCreateCopiesBtn() -{ - m_result = eResult_CreateCopies; - accept(); -} - -#include diff --git a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.h b/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.h deleted file mode 100644 index 1610fd216f..0000000000 --- a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -// Original file Copyright Crytek GMBH or its affiliates, used under license. - -#ifndef CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H -#define CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H -#pragma once - -#if !defined(Q_MOC_RUN) -#include -#endif - -namespace Ui -{ - class DuplicatedObjectsHandlerDlg; -} - -class CDuplicatedObjectsHandlerDlg - : public QDialog -{ - Q_OBJECT -public: - CDuplicatedObjectsHandlerDlg(const QString& msg, QWidget* pParent = nullptr); - virtual ~CDuplicatedObjectsHandlerDlg(); - - enum EResult - { - eResult_None, - eResult_Override, - eResult_CreateCopies - }; - - EResult GetResult() const - { - return m_result; - } - -protected: - - EResult m_result; - - void OnBnClickedOverrideBtn(); - void OnBnClickedCreateCopiesBtn(); - - QScopedPointer m_ui; -}; - -#endif // CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H diff --git a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.ui b/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.ui deleted file mode 100644 index 44578d6862..0000000000 --- a/Code/Sandbox/Editor/Dialogs/DuplicatedObjectsHandlerDlg.ui +++ /dev/null @@ -1,83 +0,0 @@ - - - DuplicatedObjectsHandlerDlg - - - - 0 - 0 - 474 - 204 - - - - Duplicated Objects Dialog - - - - - - true - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Cancel - - - - - - - Override - - - - - - - Create Copies - - - - - - - - - - - pushButton - clicked() - DuplicatedObjectsHandlerDlg - reject() - - - 258 - 183 - - - 190 - 184 - - - - - diff --git a/Code/Sandbox/Editor/Dialogs/PythonScriptsDialog.cpp b/Code/Sandbox/Editor/Dialogs/PythonScriptsDialog.cpp index c642671aba..7b1398b58f 100644 --- a/Code/Sandbox/Editor/Dialogs/PythonScriptsDialog.cpp +++ b/Code/Sandbox/Editor/Dialogs/PythonScriptsDialog.cpp @@ -71,24 +71,8 @@ CPythonScriptsDialog::CPythonScriptsDialog(QWidget* parent) AzQtComponents::LineEdit::applySearchStyle(ui->searchField); QStringList scriptFolders; - - const auto editorEnvStr = gSettings.strEditorEnv.toLocal8Bit(); - AZStd::string editorScriptsPath = AZStd::string::format("@engroot@/%s", editorEnvStr.constData()); - XmlNodeRef envNode = XmlHelpers::LoadXmlFromFile(editorScriptsPath.c_str()); - if (envNode) - { - QString scriptPath; - int childrenCount = envNode->getChildCount(); - for (int idx = 0; idx < childrenCount; ++idx) - { - XmlNodeRef child = envNode->getChild(idx); - if (child->haveAttr("scriptPath")) - { - scriptPath = child->getAttr("scriptPath"); - scriptFolders.push_back(scriptPath); - } - } - } + auto engineScriptPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets" / "Editor" / "Scripts"; + scriptFolders.push_back(engineScriptPath.c_str()); AZ::IO::FixedMaxPathString projectPath = AZ::Utils::GetProjectPath(); ScanFolderForScripts(QString("%1/Editor/Scripts").arg(projectPath.c_str()), scriptFolders); diff --git a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.cpp b/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.cpp deleted file mode 100644 index 9384cd5051..0000000000 --- a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.cpp +++ /dev/null @@ -1,218 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#include "EditorDefs.h" - -#include "NewEntityDialog.h" - -// Qt -#include -#include -#include - -// Editor -#include "Dialogs/QT/ui_NewEntityDialog.h" - - -NewEntityDialog::NewEntityDialog(QWidget* parent) - : QDialog(parent) - , ui(new Ui::NewEntityDialog) -{ - entityNameValidator = new EntityNameValidator(this); - - ui->setupUi(this); - - ui->entityName->setFocus(); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); - connect(ui->entityName, SIGNAL(textChanged(QString)), this, SLOT(ValidateInput())); - connect(ui->categoryName, SIGNAL(textChanged(QString)), this, SLOT(ValidateInput())); - - SetCategoryCompleterPath((Path::GetEditingGameDataFolder() + "/Scripts/Entities").c_str()); - SetNameValidatorPath((Path::GetEditingGameDataFolder() + "/Entities").c_str()); -} - -NewEntityDialog::~NewEntityDialog() -{ - SAFE_DELETE(entityNameValidator); - SAFE_DELETE(folderNameCompleter); - delete ui; -} - -void NewEntityDialog::SetCategoryCompleterPath(CryStringT path) -{ - SAFE_DELETE(folderNameCompleter); - - QDirIterator directoryIt(QString::fromLocal8Bit(path.c_str(), path.length()), QDir::NoDotAndDotDot | QDir::AllDirs, QDirIterator::Subdirectories); - baseDir = directoryIt.path() + "/"; - - QStringList dirs; - while (directoryIt.hasNext()) - { - QString dir = directoryIt.next().remove(baseDir); - dirs.append(dir); - } - - folderNameCompleter = new QCompleter(dirs); - folderNameCompleter->setCompletionMode(QCompleter::UnfilteredPopupCompletion); - folderNameCompleter->setCaseSensitivity(Qt::CaseInsensitive); - ui->categoryName->setCompleter(folderNameCompleter); -} - -void NewEntityDialog::SetNameValidatorPath(CryStringT path) -{ - QDir dir(QString::fromLocal8Bit(path.c_str(), path.length())); - nameBaseDir = dir.path() + "/"; -} - -void NewEntityDialog::ValidateInput() -{ - int cursorPos = ui->entityName->cursorPosition(); - QString text = ui->entityName->text(); - bool validText = entityNameValidator->validate(text, cursorPos); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(validText); -} - -void NewEntityDialog::accept() -{ - if (ui->categoryName->text().isEmpty() - && QMessageBox::question(this, "Are you sure?", "Create entity without category?", QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) - { - return; - } - const char* devRoot = gEnv->pFileIO->GetAlias("@engroot@"); - QString devRootPath(devRoot); - QFile entTemplateFile(devRootPath + "/Editor/NewEntityTemplate.ent_template"); - QFile luaTemplateFile(devRootPath + "/Editor/NewEntityTemplate.lua_template"); - QFile entDestFile(nameBaseDir + ui->entityName->text() + ".ent"); - QFile luaDestFile(baseDir + ui->categoryName->text() + "/" + ui->entityName->text() + ".lua"); - - if (!entTemplateFile.exists() || !luaTemplateFile.exists()) - { - QMessageBox::critical(this, tr("Missing Template Files"), tr("In order to create default entities the NewEntityTemplate.lua and NewEntityTemplate.ent template files must exist in the Templates folder!")); - return; - } - - //generate the .ent file - QDir pathMaker(nameBaseDir); - pathMaker.mkpath(pathMaker.path()); - QString entFileString; - if (!entTemplateFile.open(QIODevice::ReadOnly | QIODevice::Text)) - { - AZ_Warning("Editor", false, "Enable to open template file for ent : %s", entTemplateFile.fileName().toUtf8().constData()); - return; - } - else - { - entFileString = entTemplateFile.readAll(); - entTemplateFile.close(); - } - - entFileString.replace(QString("[CATEGORY_NAME]"), ui->categoryName->text()); - entFileString.replace(QString("[ENTITY_NAME]"), ui->entityName->text()); - if (!entDestFile.open(QIODevice::WriteOnly | QIODevice::Text)) - { - AZ_Warning("Editor", false, "Enable to open destination file for ent : %s", entDestFile.fileName().toUtf8().constData()); - return; - } - else - { - entDestFile.write(entFileString.toUtf8()); - entDestFile.close(); - } - - //generate the .lua file - pathMaker.setPath(baseDir); - pathMaker.mkpath(ui->categoryName->text() + "/"); - - QString luaFileString; - if (!luaTemplateFile.open(QIODevice::ReadOnly | QIODevice::Text)) - { - AZ_Warning("Editor", false, "Enable to open template file for lua : %s", luaTemplateFile.fileName().toUtf8().constData()); - return; - } - else - { - luaFileString = luaTemplateFile.readAll(); - luaTemplateFile.close(); - } - - luaFileString.replace(QString("[ENTITY_NAME]"), ui->entityName->text()); - if (!luaDestFile.open(QIODevice::WriteOnly | QIODevice::Text)) - { - AZ_Warning("Editor", false, "Enable to open destination file for lua : %s", luaDestFile.fileName().toUtf8().constData()); - return; - } - else - { - luaDestFile.write(luaFileString.toUtf8()); - luaDestFile.close(); - } - - - if (ui->openLuaCB->isChecked()) - { - CFileUtil::EditTextFile(luaDestFile.fileName().toLocal8Bit().data()); - } - - QDialog::accept(); -} - -QValidator::State NewEntityDialog::EntityNameValidator::validate(QString& input, [[maybe_unused]] int& pos) const -{ - if (!m_Parent) - { - return Invalid; - } - - if (input.isEmpty()) - { - return Invalid; - } - - if (input.contains("/")) - { - return Invalid; - } - - QString fileBaseName = m_Parent->ui->entityName->text(); - - // Characters - const char* notAllowedChars = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' "; - for (const char* c = notAllowedChars; *c; c++) - { - if (fileBaseName.contains(QLatin1Char(*c))) - { - const QChar qc = QLatin1Char(*c); - if (qc.isSpace()) - { - QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Name may not contain white space."), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000); - } - else - { - QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Invalid character \"%1\".").arg(qc), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000); - } - return Invalid; - } - } - - QString filename(m_Parent->nameBaseDir + m_Parent->ui->entityName->text() + ".ent"); - QFile newFile(filename); - - if (newFile.exists()) - { - QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Filename already exists!"), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000); - return Invalid; - } - - return Acceptable; -} - -#include diff --git a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.h b/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.h deleted file mode 100644 index 9ed2bdb2bb..0000000000 --- a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ -#ifndef NEWENTITYDIALOG_H -#define NEWENTITYDIALOG_H - -#if !defined(Q_MOC_RUN) -#include -#include -#include -#include -#include -#include -#include -#endif - -namespace Ui { - class NewEntityDialog; -} - -class NewEntityDialog - : public QDialog -{ - Q_OBJECT - -public: - explicit NewEntityDialog(QWidget* parent = 0); - ~NewEntityDialog(); - -private: - Ui::NewEntityDialog* ui; - QString baseDir = ""; - QString nameBaseDir = ""; - QCompleter* folderNameCompleter = NULL; - - void SetCategoryCompleterPath(CryStringT path); - void SetNameValidatorPath(CryStringT path); - - virtual void accept(); - - class EntityNameValidator - : public QValidator - { - public: - explicit EntityNameValidator(NewEntityDialog* parent = 0) - : QValidator(parent) - , m_Parent(parent) - { - } - virtual State validate(QString& input, int& pos) const; - - NewEntityDialog* m_Parent; - }; - - EntityNameValidator* entityNameValidator; - -public slots: - void ValidateInput(); -}; - -#endif // NEWENTITYDIALOG_H diff --git a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.ui b/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.ui deleted file mode 100644 index 530bf9ac99..0000000000 --- a/Code/Sandbox/Editor/Dialogs/QT/NewEntityDialog.ui +++ /dev/null @@ -1,161 +0,0 @@ - - - NewEntityDialog - - - Qt::WindowModal - - - - 0 - 0 - 400 - 111 - - - - Qt::PreventContextMenu - - - New Entity - - - false - - - false - - - - - 30 - 70 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - 110 - 10 - 281 - 20 - - - - - - - 10 - 10 - 71 - 16 - - - - - 75 - true - - - - Entity Name: - - - entityName - - - - - - 10 - 40 - 91 - 16 - - - - - 75 - true - - - - Entity Category: - - - categoryName - - - - - - 110 - 40 - 281 - 20 - - - - - - - 10 - 80 - 141 - 17 - - - - Open Lua After Creating - - - - - entityName - categoryName - - - - - buttonBox - accepted() - NewEntityDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - NewEntityDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/Code/Sandbox/Editor/EditorPanelUtils.cpp b/Code/Sandbox/Editor/EditorPanelUtils.cpp index 06c7056a47..72d67ffc09 100644 --- a/Code/Sandbox/Editor/EditorPanelUtils.cpp +++ b/Code/Sandbox/Editor/EditorPanelUtils.cpp @@ -16,6 +16,8 @@ #include "EditorPanelUtils.h" +#include + // Qt #include #include @@ -147,7 +149,8 @@ public: virtual void HotKey_Export() override { - QString filepath = QFileDialog::getSaveFileName(nullptr, "Select shortcut configuration to load", "Editor/Plugins/ParticleEditorPlugin/settings", "HotKey Config Files (*.hkxml)"); + auto settingDir = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Editor" / "Plugins" / "ParticleEditorPlugin" / "settings"; + QString filepath = QFileDialog::getSaveFileName(nullptr, "Select shortcut configuration to load", settingDir.c_str(), "HotKey Config Files (*.hkxml)"); QFile file(filepath); if (!file.open(QIODevice::WriteOnly)) { diff --git a/Code/Sandbox/Editor/EditorViewportWidget.cpp b/Code/Sandbox/Editor/EditorViewportWidget.cpp index 9ce567c91e..d319fe1d52 100644 --- a/Code/Sandbox/Editor/EditorViewportWidget.cpp +++ b/Code/Sandbox/Editor/EditorViewportWidget.cpp @@ -230,9 +230,6 @@ EditorViewportWidget::~EditorViewportWidget() ////////////////////////////////////////////////////////////////////////// int EditorViewportWidget::OnCreate() { - m_renderer = GetIEditor()->GetRenderer(); - m_engine = GetIEditor()->Get3DEngine(); - CreateRenderContext(); return 0; @@ -426,7 +423,7 @@ void EditorViewportWidget::Update() return; } - if (!m_engine || m_rcClient.isEmpty() || GetIEditor()->IsInMatEditMode()) + if (m_rcClient.isEmpty() || GetIEditor()->IsInMatEditMode()) { return; } @@ -796,10 +793,6 @@ void EditorViewportWidget::OnRender() { GetIEditor()->GetRenderer()->SetCamera(gEnv->pSystem->GetViewCamera()); } - if (m_engine) - { - m_engine->RenderWorld(0, SRenderingPassInfo::CreateGeneralPassRenderingInfo(m_Camera), __FUNCTION__); - } return; } @@ -1509,10 +1502,10 @@ bool EditorViewportWidget::AddCameraMenuItems(QMenu* menu) } action = customCameraMenu->addAction(tr("Look through entity")); - AzToolsFramework::EntityIdList selectedEntityList; - AzToolsFramework::ToolsApplicationRequests::Bus::BroadcastResult(selectedEntityList, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntities); - action->setCheckable(selectedEntityList.size() > 0 || m_viewSourceType == ViewSourceType::AZ_Entity); - action->setEnabled(selectedEntityList.size() > 0 || m_viewSourceType == ViewSourceType::AZ_Entity); + bool areAnyEntitiesSelected = false; + AzToolsFramework::ToolsApplicationRequestBus::BroadcastResult(areAnyEntitiesSelected, &AzToolsFramework::ToolsApplicationRequests::AreAnyEntitiesSelected); + action->setCheckable(areAnyEntitiesSelected || m_viewSourceType == ViewSourceType::AZ_Entity); + action->setEnabled(areAnyEntitiesSelected || m_viewSourceType == ViewSourceType::AZ_Entity); action->setChecked(m_viewSourceType == ViewSourceType::AZ_Entity); connect(action, &QAction::triggered, this, [this](bool isChecked) { @@ -1814,11 +1807,6 @@ void EditorViewportWidget::SetViewTM(const Matrix34& viewTM, bool bMoveOnly) ////////////////////////////////////////////////////////////////////////// void EditorViewportWidget::RenderSelectedRegion() { - if (!m_engine) - { - return; - } - AABB box; GetIEditor()->GetSelectedRegion(box); if (box.IsEmpty()) diff --git a/Code/Sandbox/Editor/EditorViewportWidget.h b/Code/Sandbox/Editor/EditorViewportWidget.h index 1244e61242..f2a40b34a5 100644 --- a/Code/Sandbox/Editor/EditorViewportWidget.h +++ b/Code/Sandbox/Editor/EditorViewportWidget.h @@ -234,11 +234,8 @@ public: QPoint ViewportToWidget(const QPoint& point) const; QSize WidgetToViewport(const QSize& size) const; - /// Take raw input and create a final mouse interaction. - /// @attention Do not map **point** from widget to viewport explicitly, - /// this is handled internally by BuildMouseInteraction - just pass directly. AzToolsFramework::ViewportInteraction::MouseInteraction BuildMouseInteraction( - Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint& point); + Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint& point) override; void SetPlayerPos() { @@ -398,9 +395,6 @@ protected: }; void ResetToViewSourceType(const ViewSourceType& viewSourType); - //! Assigned renderer. - IRenderer* m_renderer = nullptr; - I3DEngine* m_engine = nullptr; bool m_bRenderContextCreated = false; bool m_bInRotateMode = false; bool m_bInMoveMode = false; diff --git a/Code/Sandbox/Editor/IconManager.cpp b/Code/Sandbox/Editor/IconManager.cpp index 98afb464d9..09c2d41035 100644 --- a/Code/Sandbox/Editor/IconManager.cpp +++ b/Code/Sandbox/Editor/IconManager.cpp @@ -27,27 +27,27 @@ #include "Util/ImageUtil.h" -#define HELPER_MATERIAL "Editor/Objects/Helper" +#define HELPER_MATERIAL "Objects/Helper" namespace { // Object names in this array must correspond to EObject enumeration. const char* g_ObjectNames[eStatObject_COUNT] = { - "Editor/Objects/Arrow.cgf", - "Editor/Objects/Axis.cgf", - "Editor/Objects/Sphere.cgf", - "Editor/Objects/Anchor.cgf", - "Editor/Objects/entrypoint.cgf", - "Editor/Objects/hidepoint.cgf", - "Editor/Objects/hidepoint_sec.cgf", - "Editor/Objects/reinforcement_point.cgf", + "Objects/Arrow.cgf", + "Objects/Axis.cgf", + "Objects/Sphere.cgf", + "Objects/Anchor.cgf", + "Objects/entrypoint.cgf", + "Objects/hidepoint.cgf", + "Objects/hidepoint_sec.cgf", + "Objects/reinforcement_point.cgf", }; const char* g_IconNames[eIcon_COUNT] = { - "Editor/Icons/ScaleWarning.png", - "Editor/Icons/RotationWarning.png", + "Icons/ScaleWarning.png", + "Icons/RotationWarning.png", }; }; diff --git a/Code/Sandbox/Editor/Include/IResourceSelectorHost.h b/Code/Sandbox/Editor/Include/IResourceSelectorHost.h index 95e1190c0a..f9245f97a4 100644 --- a/Code/Sandbox/Editor/Include/IResourceSelectorHost.h +++ b/Code/Sandbox/Editor/Include/IResourceSelectorHost.h @@ -26,7 +26,7 @@ // ... // return previousValue; // } -// REGISTER_RESOURCE_SELECTOR("Sound", SoundFileSelector, "Editor/icons/sound_16x16.png") +// REGISTER_RESOURCE_SELECTOR("Sound", SoundFileSelector, "Icons/sound_16x16.png") // // To expose it to serialization: // diff --git a/Code/Sandbox/Editor/LensFlareEditor/LensFlareManager.cpp b/Code/Sandbox/Editor/LensFlareEditor/LensFlareManager.cpp index e18beeb6a4..c28832898f 100644 --- a/Code/Sandbox/Editor/LensFlareEditor/LensFlareManager.cpp +++ b/Code/Sandbox/Editor/LensFlareEditor/LensFlareManager.cpp @@ -228,7 +228,7 @@ AzToolsFramework::AssetBrowser::SourceFileDetails CLensFlareManager::GetSourceFi { if (IsLensFlareLibraryXML(fullSourceFileName)) { - return AzToolsFramework::AssetBrowser::SourceFileDetails("Editor/Icons/AssetBrowser/LensFlare_16.png"); + return AzToolsFramework::AssetBrowser::SourceFileDetails("Icons/AssetBrowser/LensFlare_16.png"); } return AzToolsFramework::AssetBrowser::SourceFileDetails(); } diff --git a/Code/Sandbox/Editor/MainWindow.cpp b/Code/Sandbox/Editor/MainWindow.cpp index 902b04f266..2915ca9c2e 100644 --- a/Code/Sandbox/Editor/MainWindow.cpp +++ b/Code/Sandbox/Editor/MainWindow.cpp @@ -756,6 +756,7 @@ void MainWindow::InitActions() am->AddAction(ID_TOOLBAR_WIDGET_SNAP_GRID, QString()); am->AddAction(ID_TOOLBAR_WIDGET_ENVIRONMENT_MODE, QString()); am->AddAction(ID_TOOLBAR_WIDGET_DEBUG_MODE, QString()); + am->AddAction(ID_TOOLBAR_WIDGET_SPACER_RIGHT, QString()); // File actions am->AddAction(ID_FILE_NEW, tr("New Level")) @@ -1170,14 +1171,17 @@ void MainWindow::InitActions() am->AddAction(ID_AUDIO_REFRESH_AUDIO_SYSTEM, tr("Refresh Audio")) .Connect(&QAction::triggered, this, &MainWindow::OnRefreshAudioSystem); - // Fame actions + // Game actions am->AddAction(ID_VIEW_SWITCHTOGAME, tr("Play &Game")) + .SetIcon(QIcon(":/stylesheet/img/UI20/toolbar/Play.svg")) .SetShortcut(tr("Ctrl+G")) .SetToolTip(tr("Play Game (Ctrl+G)")) .SetStatusTip(tr("Activate the game input mode")) .SetApplyHoverEffect() .SetCheckable(true) .RegisterUpdateCallback(cryEdit, &CCryEditApp::OnUpdatePlayGame); + am->AddAction(ID_TOOLBAR_WIDGET_PLAYCONSOLE_LABEL, tr("Play Console")) + .SetText(tr("Play Console")); am->AddAction(ID_SWITCH_PHYSICS, tr("Simulate")) .SetShortcut(tr("Ctrl+P")) .SetToolTip(tr("Simulate (Ctrl+P)")) @@ -1489,6 +1493,14 @@ QToolButton* MainWindow::CreateDebugModeButton() return debugModeButton; } +QWidget* MainWindow::CreateSpacerRightWidget() +{ + QWidget* spacer = new QWidget(); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + spacer->setVisible(true); + return spacer; +} + void MainWindow::InitEnvironmentModeMenu(CVarMenu* environmentModeMenu) { environmentModeMenu->clear(); @@ -2395,6 +2407,9 @@ QWidget* MainWindow::CreateToolbarWidget(int actionId) case ID_TOOLBAR_WIDGET_DEBUG_MODE: w = CreateDebugModeButton(); break; + case ID_TOOLBAR_WIDGET_SPACER_RIGHT: + w = CreateSpacerRightWidget(); + break; default: qWarning() << Q_FUNC_INFO << "Unknown id " << actionId; return nullptr; diff --git a/Code/Sandbox/Editor/MainWindow.h b/Code/Sandbox/Editor/MainWindow.h index 3e652888fe..cafa719589 100644 --- a/Code/Sandbox/Editor/MainWindow.h +++ b/Code/Sandbox/Editor/MainWindow.h @@ -215,6 +215,7 @@ private: QWidget* CreateSnapToGridWidget(); QWidget* CreateSnapToAngleWidget(); + QWidget* CreateSpacerRightWidget(); QToolButton* CreateUndoRedoButton(int command); diff --git a/Code/Sandbox/Editor/MatEditPreviewDlg.cpp b/Code/Sandbox/Editor/MatEditPreviewDlg.cpp index bfabb271c2..4bac9b5e76 100644 --- a/Code/Sandbox/Editor/MatEditPreviewDlg.cpp +++ b/Code/Sandbox/Editor/MatEditPreviewDlg.cpp @@ -96,25 +96,25 @@ void CMatEditPreviewDlg::SetupMenuBar() ////////////////////////////////////////////////////////////////////////// void CMatEditPreviewDlg::OnPreviewSphere() { - m_previewCtrl->LoadModelFile("Editor/Objects/MtlSphere.cgf"); + m_previewCtrl->LoadModelFile("Objects/MtlSphere.cgf"); } ////////////////////////////////////////////////////////////////////////// void CMatEditPreviewDlg::OnPreviewBox() { - m_previewCtrl->LoadModelFile("Editor/Objects/MtlBox.cgf"); + m_previewCtrl->LoadModelFile("Objects/MtlBox.cgf"); } ////////////////////////////////////////////////////////////////////////// void CMatEditPreviewDlg::OnPreviewTeapot() { - m_previewCtrl->LoadModelFile("Editor/Objects/MtlTeapot.cgf"); + m_previewCtrl->LoadModelFile("Objects/MtlTeapot.cgf"); } ////////////////////////////////////////////////////////////////////////// void CMatEditPreviewDlg::OnPreviewPlane() { - m_previewCtrl->LoadModelFile("Editor/Objects/MtlPlane.cgf"); + m_previewCtrl->LoadModelFile("Objects/MtlPlane.cgf"); } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Sandbox/Editor/Material/MaterialImageListCtrl.cpp b/Code/Sandbox/Editor/Material/MaterialImageListCtrl.cpp index 364c6f7dd6..6ebc85c1bc 100644 --- a/Code/Sandbox/Editor/Material/MaterialImageListCtrl.cpp +++ b/Code/Sandbox/Editor/Material/MaterialImageListCtrl.cpp @@ -25,26 +25,26 @@ #include "MaterialBrowser.h" #include "Util/Image.h" -#define ME_BG_TEXTURE "Editor/Materials/Stripes.dds" +#define ME_BG_TEXTURE "Materials/Stripes.dds" -#define MATERIAL_EDITOR_SPHERE_MODEL_FILE "Editor/Objects/MtlSphere.cgf" +#define MATERIAL_EDITOR_SPHERE_MODEL_FILE "Objects/MtlSphere.cgf" #define MATERIAL_EDITOR_SPHERE_CAMERA_RADIUS 1.6f #define MATERIAL_EDITOR_SPHERE_CAMERA_FROM_DIRECTION Vec3(0.1f, -1.0f, -0.1f) -#define MATERIAL_EDITOR_BOX_MODEL_FILE "Editor/Objects/MtlBox.cgf" +#define MATERIAL_EDITOR_BOX_MODEL_FILE "Objects/MtlBox.cgf" #define MATERIAL_EDITOR_BOX_CAMERA_RADIUS 2.0f #define MATERIAL_EDITOR_BOX_CAMERA_FROM_DIRECTION Vec3(0.75f, -0.75f, -0.5f) -#define MATERIAL_EDITOR_TEAPOT_MODEL_FILE "Editor/Objects/MtlTeapot.cgf" +#define MATERIAL_EDITOR_TEAPOT_MODEL_FILE "Objects/MtlTeapot.cgf" #define MATERIAL_EDITOR_TEAPOT_CAMERA_RADIUS 1.6f #define MATERIAL_EDITOR_TEAPOT_CAMERA_FROM_DIRECTION Vec3(0.1f, -0.75f, -0.25f) -#define MATERIAL_EDITOR_PLANE_MODEL_FILE "Editor/Objects/MtlPlane.cgf" +#define MATERIAL_EDITOR_PLANE_MODEL_FILE "Objects/MtlPlane.cgf" #define MATERIAL_EDITOR_PLANE_CAMERA_RADIUS 1.6f #define MATERIAL_EDITOR_PLANE_CAMERA_FROM_DIRECTION Vec3(-0.5f, 0.5f, -0.5f) -#define MATERIAL_EDITOR_SWATCH_MODEL_FILE "Editor/Objects/MtlSwatch.cgf" +#define MATERIAL_EDITOR_SWATCH_MODEL_FILE "Objects/MtlSwatch.cgf" #define MATERIAL_EDITOR_SWATCH_CAMERA_RADIUS 1.0f #define MATERIAL_EDITOR_SWATCH_CAMERA_FROM_DIRECTION Vec3(0.0f, 0.0f, -1.0f) diff --git a/Code/Sandbox/Editor/PythonEditorFuncs.cpp b/Code/Sandbox/Editor/PythonEditorFuncs.cpp index 8f735706fd..29cb8eb478 100644 --- a/Code/Sandbox/Editor/PythonEditorFuncs.cpp +++ b/Code/Sandbox/Editor/PythonEditorFuncs.cpp @@ -298,7 +298,7 @@ namespace AZ::IO::FixedMaxPathString engineRoot = AZ::Utils::GetEnginePath(); QDir engineDir = !engineRoot.empty() ? QDir(QString(engineRoot.c_str())) : QDir::current(); - QString scriptFolder = engineDir.absoluteFilePath("Editor/Scripts/"); + QString scriptFolder = engineDir.absoluteFilePath("Assets/Editor/Scripts/"); Path::ConvertBackSlashToSlash(scriptFolder); path = scriptFolder + pFile; @@ -524,7 +524,7 @@ namespace // for example: Hello return AZStd::make_any(stringValue.toUtf8().data()); } - else // then it looks like an integer + else // then it looks like an integer { // for example: 456 return AZStd::make_any(stringValue.toInt()); diff --git a/Code/Sandbox/Editor/RenderViewport.h b/Code/Sandbox/Editor/RenderViewport.h index 664ed73abc..2edbd86770 100644 --- a/Code/Sandbox/Editor/RenderViewport.h +++ b/Code/Sandbox/Editor/RenderViewport.h @@ -238,11 +238,8 @@ public: QPoint ViewportToWidget(const QPoint& point) const; QSize WidgetToViewport(const QSize& size) const; - /// Take raw input and create a final mouse interaction. - /// @attention Do not map **point** from widget to viewport explicitly, - /// this is handled internally by BuildMouseInteraction - just pass directly. AzToolsFramework::ViewportInteraction::MouseInteraction BuildMouseInteraction( - Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint& point); + Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint& point) override; void SetPlayerPos() { diff --git a/Code/Sandbox/Editor/Resource.h b/Code/Sandbox/Editor/Resource.h index 8c4b09ae67..15d04bd5c0 100644 --- a/Code/Sandbox/Editor/Resource.h +++ b/Code/Sandbox/Editor/Resource.h @@ -149,8 +149,6 @@ #define ID_OBJECTMODIFY_UNFREEZE 33518 #define ID_UNDO 33524 #define ID_EDIT_CLONE 33525 -#define ID_SELECTION_SAVE 33527 -#define ID_SELECTION_LOAD 33529 #define ID_GOTO_SELECTED 33535 #define ID_EDIT_LEVELDATA 33542 #define ID_FILE_EDITEDITORINI 33543 @@ -397,4 +395,6 @@ #define ID_TOOLBAR_WIDGET_SNAP_GRID 50008 #define ID_TOOLBAR_WIDGET_ENVIRONMENT_MODE 50011 #define ID_TOOLBAR_WIDGET_DEBUG_MODE 50012 +#define ID_TOOLBAR_WIDGET_SPACER_RIGHT 50013 +#define ID_TOOLBAR_WIDGET_PLAYCONSOLE_LABEL 50014 #define ID_TOOLBAR_WIDGET_LAST 50020 diff --git a/Code/Sandbox/Editor/Settings.cpp b/Code/Sandbox/Editor/Settings.cpp index 038af33129..135d60c573 100644 --- a/Code/Sandbox/Editor/Settings.cpp +++ b/Code/Sandbox/Editor/Settings.cpp @@ -196,7 +196,6 @@ SEditorSettings::SEditorSettings() enableSceneInspector = false; strStandardTempDirectory = "Temp"; - strEditorEnv = "Editor/Editor.env"; // Init source safe params. enableSourceControl = true; @@ -532,7 +531,6 @@ void SEditorSettings::Save() SaveValue("Settings", "editorConfigSpec", editorConfigSpec); SaveValue("Settings", "TemporaryDirectory", strStandardTempDirectory); - SaveValue("Settings", "EditorEnv", strEditorEnv); SaveValue("Settings", "ConsoleBackgroundColorThemeV2", (int)consoleBackgroundColorTheme); @@ -747,7 +745,6 @@ void SEditorSettings::Load() LoadValue("Settings", "TemporaryDirectory", strStandardTempDirectory); - LoadValue("Settings", "EditorEnv", strEditorEnv); int consoleBackgroundColorThemeInt = (int)consoleBackgroundColorTheme; LoadValue("Settings", "ConsoleBackgroundColorThemeV2", consoleBackgroundColorThemeInt); @@ -760,7 +757,7 @@ void SEditorSettings::Load() LoadValue("Settings", "ShowTimeInConsole", bShowTimeInConsole); LoadValue("Settings", "EnableSceneInspector", enableSceneInspector); - + ////////////////////////////////////////////////////////////////////////// // Viewport Settings. ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Sandbox/Editor/Settings.h b/Code/Sandbox/Editor/Settings.h index 512c6e3942..4fee9d27f0 100644 --- a/Code/Sandbox/Editor/Settings.h +++ b/Code/Sandbox/Editor/Settings.h @@ -419,7 +419,6 @@ AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING // This directory is related to the editor root. QString strStandardTempDirectory; - QString strEditorEnv; SGUI_Settings gui; diff --git a/Code/Sandbox/Editor/SettingsManager.cpp b/Code/Sandbox/Editor/SettingsManager.cpp index 6e1b835fbf..2ec84507d9 100644 --- a/Code/Sandbox/Editor/SettingsManager.cpp +++ b/Code/Sandbox/Editor/SettingsManager.cpp @@ -25,7 +25,7 @@ #include "QtViewPaneManager.h" -#define TOOLBOX_FILE "Editor/ToolBox.xml" +#define TOOLBOX_FILE "ToolBox.xml" #define TOOLBOX_NODE "ToolBox" CSettingsManager::CSettingsManager(EditorSettingsManagerType managerType) diff --git a/Code/Sandbox/Editor/SettingsManager.h b/Code/Sandbox/Editor/SettingsManager.h index 9160e96cca..d496ae7714 100644 --- a/Code/Sandbox/Editor/SettingsManager.h +++ b/Code/Sandbox/Editor/SettingsManager.h @@ -19,8 +19,8 @@ class QByteArray; -#define EDITOR_LAYOUT_FILE_PATH "@engroot@/Editor/EditorLayout.xml" -#define EDITOR_SETTINGS_FILE_PATH "@engroot@/Editor/EditorSettings.xml" +#define EDITOR_LAYOUT_FILE_PATH "@user@/Editor/EditorLayout.xml" +#define EDITOR_SETTINGS_FILE_PATH "@user@/Editor/EditorSettings.xml" #define EDITOR_LAYOUT_ROOT_NODE "EditorLayout" #define EDITOR_SETTINGS_ROOT_NODE "EditorSettings" #define EDITOR_SETTINGS_CONTENT_NODE "EditorSettingsContent" @@ -30,7 +30,7 @@ class QByteArray; #define CVARS_NODE "CVars" #define CVAR_NODE "CVar" -#define EDITOR_EVENT_LOG_FILE_PATH "@engroot@/Editor/EditorEventLog.xml" +#define EDITOR_EVENT_LOG_FILE_PATH "@user@/Editor/EditorEventLog.xml" #define EDITOR_EVENT_LOG_ROOT_NODE "EventRecorder" #define EVENT_LOG_EVENT_NAME "eventName" #define EDITOR_EVENT_LOG_ATTRIB_NAME "value" diff --git a/Code/Sandbox/Editor/ShaderEnum.cpp b/Code/Sandbox/Editor/ShaderEnum.cpp index ebae2ceba2..65518303ce 100644 --- a/Code/Sandbox/Editor/ShaderEnum.cpp +++ b/Code/Sandbox/Editor/ShaderEnum.cpp @@ -71,7 +71,7 @@ int CShaderEnum::EnumShaders() m_shaders.push_back(sd); } - XmlNodeRef root = GetISystem()->GetXmlUtils()->LoadXmlFromFile("Editor/Materials/ShaderList.xml"); + XmlNodeRef root = GetISystem()->GetXmlUtils()->LoadXmlFromFile("Materials/ShaderList.xml"); if (root) { for (int i = 0; i < root->getChildCount(); ++i) diff --git a/Code/Sandbox/Editor/Style/CloudCanvas.qss b/Code/Sandbox/Editor/Style/CloudCanvas.qss deleted file mode 100644 index 730c494fdf..0000000000 --- a/Code/Sandbox/Editor/Style/CloudCanvas.qss +++ /dev/null @@ -1,488 +0,0 @@ -/* -* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -* its licensors. -* -* For complete copyright and license terms please see the LICENSE at the root of this -* distribution (the "License"). All use of this software is governed by the License, -* or, if provided, by the license below or the license accompanying this file. Do not -* remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* -*/ - -#ResourceManagement QLabel -{ - /* - This sets the indent Q_PROPERTY on QLabel to 0. The default value is -1, - which triggers some computation based on the font size. But that only - happens under some cicumstances, such as when using a stylesheet to set - margins or padding on the QLabel. Adding such styling suddenly causes - the indent to be applied, causing the left alignment of the text to break. - */ - qproperty-indent: 0 -} - -#ResourceManagement #TreeTitle -{ - font-size: 12px; - font-weight: bold; -} - -#ResourceManagement #ButtonBar { - margin-top: 6px; -} - -#ResourceManagement #ButtonBar QPushButton { - padding: 6px 9px 6px 9px; - margin-right: 6px; -} - -#ResourceManagement #Message, #ResourceManagement *[class='Message'] { - font-size: 12px; - margin-top: 6; -} - -#ResourceManagement #Title { - font-size: 14px; - font-weight: bold; -} - -#ResourceManagement #Refreshing { - color: #F0C32D; -} - -#ResourceManagement #LinkButton, #ResourceManagement *[class='Link'] { - border: none; - color: #00A1C9; - margin-top: 6px; - font-weight: bold; -} - -#ResourceManagement QHeaderView::section { - color: #999999; - font-weight: bold; - border: none; - padding-top: 0px; - padding-bottom: 3px; - padding-right: 3px; - padding-left: 3px; -} - -#ResourceManagement #Table { - qproperty-showGrid: false; - border: none; -} - -#ResourceManagement #Table::item { - padding-right: 12px; - padding-top: 3px; - padding-bottom: 3px; -} - -#ResourceManagement #TextContentHelp -{ - margin: 0px; - padding: 12px; - border-style: outset; - border-width: 1px; - border-color: #303030; -} - -#ResourceManagement #TextContentEdit -{ -} - -#ResourceManagement #TextContentFooter -{ - padding: 6px 12px 6px 12px; - border-style: outset; - border-width: 1px; - border-color: #303030; -} - -#ResourceManagement #TextContentFooter QLabel -{ - min-width: 48px; - max-width: 48px; - margin-right: 12px; - color: #999999; -} - -#ResourceManagement #TextContentFooter QPushButton -{ - padding: 6px 9px 6px 9px; - margin-left: 6px; -} - - -#ResourceManagement #Action { - padding: 12px; - background-color: #404040; -} - -#ResourceManagement #Action #ButtonBar { - background-color: #404040; -} - -#ResourceManagement #Action #Heading { - background-color: #404040; -} - -#ResourceManagement #Heading #RefreshButton { - margin-left: 12px; - padding: 3px; -} - -#ResourceManagement #Action #Heading #Title { - border: 0px solid #404040; -} - -#ResourceManagement #Action #Heading #Message { - border: 0px solid #404040; -} - -#ResourceManagement #Action #LearnMore { - background-color: #404040; -} - -#ResourceManagement #Action #LearnMore #Title { - font-size: 12px; - margin-top: 24px; - font-weight:bold; -} - -#ResourceManagement #Action #LearnMore #LinkButton { - background-color: #404040; -} - -#ResourceManagement #Action #Title, #ResourceManagement #Action #Message { - background-color: #404040; -} - -#ResourceManagement #Top { - padding: 12px; - border-style: outset; - border-width: 1px; - border-color: #303030; -} - -#ResourceManagement #Bottom { - background-color: #404040; - padding: 12px; -} - -#ResourceManagement #Bottom #Title { - background-color: #404040; - font-size: 12px; - font-weight: bold; -} - -#ResourceManagement #Bottom #Message { - background-color: #404040; - margin-bottom: 6px; -} - -#ResourceManagement #Bottom #Table { - background-color: #404040; - qproperty-alternatingRowColors: true; -} - -#ResourceManagement #Bottom #Table QHeaderView { - background-color: #404040; -} - -#ResourceManagement #Bottom #Table QHeaderView::section { - background-color: #404040; -} - -#ResourceManagement #Bottom #Table::item { - background-color: #393a3c; -} - -#ResourceManagement #Bottom #Table::item:alternate { - background-color: #303030; -} - -#ResourceManagement #Bottom #Resources { - background-color: #404040; -} - -#ResourceManagement #Bottom #Refreshing { - background-color: #404040; -} - -#ResourceManagement #Stack #Heading #Message -{ - margin-top: 0; -} - -#ResourceManagement #Stack #Status #Title -{ - font-size: 12px; - font-weight: bold; - margin-top: 6px; - margin-bottom: 6px; -} - -#ResourceManagement #StackEvents #TitleBar { - color: #CCCCCC; - background-color: #393a3c; - border-style: outset; - border-width: 1px; - border-color: #303030; -} - -#ResourceManagement #StackEvents #TitleBar * { - font-size:12px; -} - -#ResourceManagement #StackEvents #TitleBar #Title { - font-weight:bold; - margin-right: 12px; -} - -#ResourceManagement #StackEvents #TitleBar #InProgress #Text { - color: #F0C32D; -} - -#ResourceManagement #StackEvents #TitleBar #Succeeded { - color: #43d96a; -} - -#ResourceManagement #StackEvents #TitleBar #Failed { - color: #f44642; -} - -#ResourceManagement #StackEvents #Content { - border-style: inset; - border-width: 1px; - border-color: #303030; - padding: 12px; -} - -#ResourceManagement #StackEvents #Table { - qproperty-alternatingRowColors: true; - qproperty-showGrid: false; -} - -#ResourceManagement #StackEvents QTableView::item { - background-color: #303030; -} - -#ResourceManagement #StackEvents QTableView::item:focus { - selection-color: #FFFFFF; - selection-background-color: rgba(255, 153, 0, 128); -} - -#ResourceManagement #StackEvents QTableView::item:alternate { - background-color: #393a3c; -} - -#ResourceManagement #CreateDeployment #LearnMore -{ - margin-bottom: 12px; -} - -#ResourceManagement #CreateDeployment #WarningMessage -{ - margin-top: 12px; - margin-bottom: 12px; -} - -#ResourceManagement #LoadingError, #ResourceManagement #LoadingError #Title, #ResourceManagement #LoadingError #Message, #ResourceManagement #LoadingError #ErrorText -{ - background: #404040; -} - -#ResourceManagement #LoadingError #ErrorText -{ - padding: 12px; - color: #f44642; -} - -#ResourceManagement #Loading, #ResourceManagement #Loading #Title, #ResourceManagement #Loading #Message -{ - background: #404040; -} - -#ResourceManagement #Loading, #ResourceManagement #LoadingError -{ - padding: 12px; -} - -#ResourceManagement #MainToolbar -{ - padding: 6px; - border-style: inset; - border-width: 1px; - border-color: #303030; -} - -#ResourceManagement #MainToolbar QPushButton -{ - border: none; - padding: 0px; -} - -#ResourceManagement #MainToolbar #AddNewButton -{ - margin-left: 12px; - margin-right: 12px; -} - -#ResourceManagement #ResourceImporter #RegionBox:disabled -{ - color: #555555; -} - -#ResourceManagement #ResourceImporter #ListTable -{ - qproperty-alternatingRowColors: true; - qproperty-showGrid: false; - border: none; -} - -#ResourceManagement #ResourceImporter #ListTable::item -{ - padding-right: 12px; - padding-top: 3px; - padding-bottom: 3px; - background-color: #333436; -} - -#ResourceManagement #ResourceImporter #ListTable::item:alternate -{ - background-color: #303030; -} - -#ResourceManagement #ResourceImporter #SelectionTable -{ - qproperty-showGrid: false; - border: none; - gridline-color: #393a3c; -} - -#ResourceManagement #ResourceImporter #SelectionTable::item -{ - padding: 1px 1px 1px 1px; - -} - -#ResourceManagement #ResourceImporter #LoadingLabel -{ - color : #F0C32D; -} - -#ResourceManagement #MainToolbar #SaveButton, -#ResourceManagement #MainToolbar #DeleteButton, -#ResourceManagement #MainToolbar #SourceControlButton, -#ResourceManagement #MainToolbar #AddNewButton -{ - qproperty-flat: true; -} - -#ResourceManagement #MainToolbar #CurrentProfile -{ - margin-right: 12px; -} - -#ResourceManagement #MainToolbar #CurrentDeployment -{ - margin-right: 12px; - margin-left: 12px; -} - -#ResourceManagement #UpdateStack #Refreshing -{ - margin-top: 12px; - margin-left: 12px; -} - -#ResourceManagement #UpdateStack #Message -{ - margin-bottom: 6px; -} - -#ResourceManagement #UpdateStack #Table { - qproperty-alternatingRowColors: true; - qproperty-showGrid: false; -} - -#ResourceManagement #UpdateStack #Table::item { - background-color: #303030; -} - -#ResourceManagement #UpdateStack #Table::item:alternate { - background-color: #393a3c; -} - -#ResourceManagement #UpdateStack #Status { - color: #F0C32D; -} - -#ProfileSelector #DeleteProfile { - width: 38px; - height: 11px; - border: none; -} - -#ProfileSelector #EditSelectedProfile { - color: #00A1C9; -} - -#InitializeCloudCanvasProject #Profiles QRadioButton { - margin-left: 5px; -} - -#InitializeCloudCanvasProject #ProfileEditButtons { -} - -#InitializeCloudCanvasProject #ProfileEditButtons QPushButton { -} - -#InitializeCloudCanvasProject #ContentFrame { - x-margin: 6px; - x-padding: 6px; - border: 1px solid rgb(34, 35, 38); - x-background-color: purple; -} - -#LoginDialog -{ - background-color: #F8F8F8; -} - -#LoginDialog Amazon--LoginWelcomeTitle -{ - color: #444444; - background-color: #F8F8F8; - font-size: 21px; - qproperty-alignment: AlignCenter; - font-family: "Open Sans Semibold"; -} - -#LoginDialog Amazon--LoginWelcomeText -{ - color: #444444; - background-color: #F8F8F8; - font-size: 13px; - qproperty-alignment: AlignLeft; -} - -#LoginDialog Amazon--LoginFooterText -{ - color: #999999; - background-color: #F8F8F8; - font-size: 13px; - qproperty-alignment: AlignCenter; -} - -#LoginDialog Amazon--LoginWebViewFrame -{ - border: 2px solid #EEEEEE; -} - -#LoginDialog Amazon--LoginWebView -{ - background-color: #F8F8F8; -} diff --git a/Code/Sandbox/Editor/Style/resources.qrc b/Code/Sandbox/Editor/Style/resources.qrc index 54c2c4754a..aa32f29555 100644 --- a/Code/Sandbox/Editor/Style/resources.qrc +++ b/Code/Sandbox/Editor/Style/resources.qrc @@ -1,10 +1,9 @@ - Editor.qss - EditorPreferencesDialog.qss - CloudCanvas.qss - LayoutConfigDialog.qss - GraphicsSettingsDialog.qss - LensFlareEditor.qss + Editor.qss + EditorPreferencesDialog.qss + LayoutConfigDialog.qss + GraphicsSettingsDialog.qss + LensFlareEditor.qss diff --git a/Code/Sandbox/Editor/TimeOfDayDialog.cpp b/Code/Sandbox/Editor/TimeOfDayDialog.cpp index 9c3b77f17d..8fe368b8fb 100644 --- a/Code/Sandbox/Editor/TimeOfDayDialog.cpp +++ b/Code/Sandbox/Editor/TimeOfDayDialog.cpp @@ -1088,7 +1088,7 @@ void CTimeOfDayDialog::OnResetToDefaultValues() ITimeOfDay* pTimeOfDay = gEnv->p3DEngine->GetTimeOfDay(); // Load the default time of day settings and use those to reset the time of day. - XmlNodeRef root = GetISystem()->LoadXmlFromFile("Editor/default_time_of_day.xml"); + XmlNodeRef root = GetISystem()->LoadXmlFromFile("default_time_of_day.xml"); if (root) { pTimeOfDay->Serialize(root, true); diff --git a/Code/Sandbox/Editor/ToolBox.cpp b/Code/Sandbox/Editor/ToolBox.cpp index 46c01ce864..2711797168 100644 --- a/Code/Sandbox/Editor/ToolBox.cpp +++ b/Code/Sandbox/Editor/ToolBox.cpp @@ -335,21 +335,9 @@ void CToolBoxManager::Load(ActionManager* actionManager) if (actionManager) { - QByteArray array = gSettings.strEditorEnv.toUtf8(); - AZStd::string actualPath = AZStd::string::format("@engroot@/%s", array.constData()); - XmlNodeRef envNode = XmlHelpers::LoadXmlFromFile(actualPath.c_str()); - if (envNode) - { - int childrenCount = envNode->getChildCount(); - for (int idx = 0; idx < childrenCount; ++idx) - { - XmlNodeRef child = envNode->getChild(idx); - if (child->haveAttr("scriptPath") && child->haveAttr("shelvesPath")) - { - LoadShelves(child->getAttr("scriptPath"), child->getAttr("shelvesPath"), actionManager); - } - } - } + auto engineSourceAssetPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets"; + LoadShelves((engineSourceAssetPath / "Editor" / "Scripts").c_str(), + (engineSourceAssetPath / "Editor" / "Scripts" / "Shelves").c_str(), actionManager); } } diff --git a/Code/Sandbox/Editor/ToolbarManager.cpp b/Code/Sandbox/Editor/ToolbarManager.cpp index 6977121933..c1758405ca 100644 --- a/Code/Sandbox/Editor/ToolbarManager.cpp +++ b/Code/Sandbox/Editor/ToolbarManager.cpp @@ -511,6 +511,7 @@ void ToolbarManager::InitializeStandardToolbars() m_standardToolbars.reserve(5 + macroToolbars.size()); m_standardToolbars.push_back(GetEditModeToolbar()); m_standardToolbars.push_back(GetObjectToolbar()); + m_standardToolbars.push_back(GetPlayConsoleToolbar()); IPlugin* pGamePlugin = GetIEditor()->GetPluginManager()->GetPluginByGUID("{71CED8AB-54E2-4739-AA78-7590A5DC5AEB}"); IPlugin* pDescriptionEditorPlugin = GetIEditor()->GetPluginManager()->GetPluginByGUID("{4B9B7074-2D58-4AFD-BBE1-BE469D48456A}"); @@ -591,8 +592,6 @@ AmazonToolbar ToolbarManager::GetEditModeToolbar() const t.AddAction(ID_EDITMODE_ROTATE, ORIGINAL_TOOLBAR_VERSION); t.AddAction(ID_EDITMODE_SCALE, ORIGINAL_TOOLBAR_VERSION); - t.AddAction(ID_VIEW_SWITCHTOGAME, TOOLBARS_WITH_PLAY_GAME); - t.AddAction(ID_TOOLBAR_SEPARATOR, ORIGINAL_TOOLBAR_VERSION); t.AddAction(ID_TOOLBAR_WIDGET_SNAP_GRID, ORIGINAL_TOOLBAR_VERSION); t.AddAction(ID_TOOLBAR_WIDGET_SNAP_ANGLE, ORIGINAL_TOOLBAR_VERSION); @@ -622,6 +621,18 @@ AmazonToolbar ToolbarManager::GetObjectToolbar() const return t; } +AmazonToolbar ToolbarManager::GetPlayConsoleToolbar() const +{ + AmazonToolbar t = AmazonToolbar("PlayConsole", QObject::tr("Play Console")); + t.SetMainToolbar(true); + + t.AddAction(ID_TOOLBAR_WIDGET_SPACER_RIGHT, ORIGINAL_TOOLBAR_VERSION); + t.AddAction(ID_TOOLBAR_SEPARATOR, ORIGINAL_TOOLBAR_VERSION); + t.AddAction(ID_TOOLBAR_WIDGET_PLAYCONSOLE_LABEL, ORIGINAL_TOOLBAR_VERSION); + t.AddAction(ID_VIEW_SWITCHTOGAME, TOOLBARS_WITH_PLAY_GAME); + return t; +} + AmazonToolbar ToolbarManager::GetEditorsToolbar() const { AmazonToolbar t = AmazonToolbar("Editors", QObject::tr("Editors Toolbar")); @@ -753,7 +764,7 @@ void ToolbarManager::InstantiateToolbars() for (int i = 0; i < numToolbars; ++i) { InstantiateToolbar(i); - if (i == 1) + if (i == 2) { // Hack. Just copying how it was m_mainWindow->addToolBarBreak(); diff --git a/Code/Sandbox/Editor/ToolbarManager.h b/Code/Sandbox/Editor/ToolbarManager.h index a0a9c83029..70228636f5 100644 --- a/Code/Sandbox/Editor/ToolbarManager.h +++ b/Code/Sandbox/Editor/ToolbarManager.h @@ -167,6 +167,7 @@ public: AmazonToolbar GetObjectToolbar() const; AmazonToolbar GetEditorsToolbar() const; AmazonToolbar GetMiscToolbar() const; + AmazonToolbar GetPlayConsoleToolbar() const; private: Q_DISABLE_COPY(ToolbarManager); diff --git a/Code/Sandbox/Editor/TrackView/TrackViewDialog.cpp b/Code/Sandbox/Editor/TrackView/TrackViewDialog.cpp index a7a801e35a..06184c0fc3 100644 --- a/Code/Sandbox/Editor/TrackView/TrackViewDialog.cpp +++ b/Code/Sandbox/Editor/TrackView/TrackViewDialog.cpp @@ -807,18 +807,11 @@ void CTrackViewDialog::UpdateActions() m_actions[ID_TRACKVIEW_MUTE_ALL]->setEnabled(true); m_actions[ID_ADDSCENETRACK]->setEnabled(true); - AzToolsFramework::EntityIdList entityIds; - AzToolsFramework::ToolsApplicationRequests::Bus::BroadcastResult( - entityIds, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntities); + bool areAnyEntitiesSelected = false; + AzToolsFramework::ToolsApplicationRequestBus::BroadcastResult( + areAnyEntitiesSelected, &AzToolsFramework::ToolsApplicationRequests::AreAnyEntitiesSelected); - if (entityIds.empty()) - { - m_actions[ID_ADDNODE]->setEnabled(false); - } - else - { - m_actions[ID_ADDNODE]->setEnabled(true); - } + m_actions[ID_ADDNODE]->setEnabled(areAnyEntitiesSelected); } else { @@ -1569,12 +1562,12 @@ void CTrackViewDialog::OnAddSelectedNode() sequence->MarkAsModified(); } - AzToolsFramework::EntityIdList entityIds; - AzToolsFramework::ToolsApplicationRequests::Bus::BroadcastResult( - entityIds, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntities); + int selectedEntitiesCount = 0; + AzToolsFramework::ToolsApplicationRequestBus::BroadcastResult( + selectedEntitiesCount, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntitiesCount); // check to make sure all nodes were added and notify user if they weren't - if (addedNodes.GetCount() != entityIds.size()) + if (addedNodes.GetCount() != selectedEntitiesCount) { IMovieSystem* movieSystem = GetIEditor()->GetMovieSystem(); diff --git a/Code/Sandbox/Editor/TrackView/TrackViewNodes.cpp b/Code/Sandbox/Editor/TrackView/TrackViewNodes.cpp index 268ae229b5..3979bf3cca 100644 --- a/Code/Sandbox/Editor/TrackView/TrackViewNodes.cpp +++ b/Code/Sandbox/Editor/TrackView/TrackViewNodes.cpp @@ -1137,12 +1137,12 @@ void CTrackViewNodesCtrl::OnNMRclick(QPoint point) CTrackViewAnimNodeBundle addedNodes = groupNode->AddSelectedEntities(m_pTrackViewDialog->GetDefaultTracksForEntityNode()); undoBatch.MarkEntityDirty(groupNode->GetSequence()->GetSequenceComponentEntityId()); - AzToolsFramework::EntityIdList entityIds; - AzToolsFramework::ToolsApplicationRequests::Bus::BroadcastResult( - entityIds, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntities); + int selectedEntitiesCount = 0; + AzToolsFramework::ToolsApplicationRequestBus::BroadcastResult( + selectedEntitiesCount, &AzToolsFramework::ToolsApplicationRequests::GetSelectedEntitiesCount); // check to make sure all nodes were added and notify user if they weren't - if (addedNodes.GetCount() != entityIds.size()) + if (addedNodes.GetCount() != selectedEntitiesCount) { IMovieSystem* movieSystem = GetIEditor()->GetMovieSystem(); diff --git a/Code/Sandbox/Editor/ViewPane.cpp b/Code/Sandbox/Editor/ViewPane.cpp index 52146bdf09..c66a5f3f38 100644 --- a/Code/Sandbox/Editor/ViewPane.cpp +++ b/Code/Sandbox/Editor/ViewPane.cpp @@ -589,7 +589,7 @@ void CLayoutViewPane::ShowTitleMenu() action->setChecked(IsFullscreen()); action = root.addAction(tr("Configure Layout...")); - if (AZ::Interface::Get()) + if (!CViewManager::IsMultiViewportEnabled()) { action->setDisabled(true); } diff --git a/Code/Sandbox/Editor/Viewport.cpp b/Code/Sandbox/Editor/Viewport.cpp index 1041a4f086..37a9ee5f29 100644 --- a/Code/Sandbox/Editor/Viewport.cpp +++ b/Code/Sandbox/Editor/Viewport.cpp @@ -21,6 +21,9 @@ // AzQtComponents #include +#include +#include + // Editor #include "ViewManager.h" #include "Include/ITransformManipulator.h" @@ -1091,6 +1094,13 @@ void QtViewport::SetAxisConstrain(int axis) m_activeAxis = axis; }; +AzToolsFramework::ViewportInteraction::MouseInteraction QtViewport::BuildMouseInteraction( + [[maybe_unused]] Qt::MouseButtons buttons, [[maybe_unused]] Qt::KeyboardModifiers modifiers, [[maybe_unused]] const QPoint& point) +{ + // Implemented by sub-class + return AzToolsFramework::ViewportInteraction::MouseInteraction(); +} + ////////////////////////////////////////////////////////////////////////// bool QtViewport::HitTest(const QPoint& point, HitContext& hitInfo) { @@ -1103,7 +1113,51 @@ bool QtViewport::HitTest(const QPoint& point, HitContext& hitInfo) hitInfo.bUseSelectionHelpers = true; } - return GetIEditor()->GetObjectManager()->HitTest(hitInfo); + const int viewportId = GetViewportId(); + + AzToolsFramework::EntityIdList visibleEntityIds; + AzToolsFramework::ViewportInteraction::MainEditorViewportInteractionRequestBus::Event( + viewportId, + &AzToolsFramework::ViewportInteraction::MainEditorViewportInteractionRequests::FindVisibleEntities, + visibleEntityIds); + + // Look through all visible entities to find the closest one to the specified mouse point + using namespace AzToolsFramework::ViewportInteraction; + AZ::EntityId entityIdUnderCursor; + float closestDistance = std::numeric_limits::max(); + MouseInteraction mouseInteraction = BuildMouseInteraction(QGuiApplication::mouseButtons(), + QGuiApplication::queryKeyboardModifiers(), + point); + for (auto entityId : visibleEntityIds) + { + using AzFramework::ViewportInfo; + // Check if components provide an aabb + if (const AZ::Aabb aabb = AzToolsFramework::CalculateEditorEntitySelectionBounds(entityId, ViewportInfo{ viewportId }); + aabb.IsValid()) + { + // Coarse grain check + if (AzToolsFramework::AabbIntersectMouseRay(mouseInteraction, aabb)) + { + // If success, pick against specific component + if (AzToolsFramework::PickEntity( + entityId, mouseInteraction, + closestDistance, viewportId)) + { + entityIdUnderCursor = entityId; + } + } + } + } + + // If we hit a valid Entity, then store the distance in the HitContext + // so that the caller can use this for calculations + if (entityIdUnderCursor.IsValid()) + { + hitInfo.dist = closestDistance; + return true; + } + + return false; } ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Sandbox/Editor/Viewport.h b/Code/Sandbox/Editor/Viewport.h index 9979a3bb0a..bd7c749573 100644 --- a/Code/Sandbox/Editor/Viewport.h +++ b/Code/Sandbox/Editor/Viewport.h @@ -17,6 +17,7 @@ #pragma once #if !defined(Q_MOC_RUN) +#include #include #include #include "IPostRenderer.h" @@ -405,6 +406,12 @@ public: void SetAxisConstrain(int axis); + /// Take raw input and create a final mouse interaction. + /// @attention Do not map **point** from widget to viewport explicitly, + /// this is handled internally by BuildMouseInteraction - just pass directly. + virtual AzToolsFramework::ViewportInteraction::MouseInteraction BuildMouseInteraction( + Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPoint& point); + ////////////////////////////////////////////////////////////////////////// // Selection. ////////////////////////////////////////////////////////////////////////// diff --git a/Code/Sandbox/Editor/editor_lib_files.cmake b/Code/Sandbox/Editor/editor_lib_files.cmake index ffbc37170d..80ec582d19 100644 --- a/Code/Sandbox/Editor/editor_lib_files.cmake +++ b/Code/Sandbox/Editor/editor_lib_files.cmake @@ -511,9 +511,6 @@ set(FILES DimensionsDialog.cpp DimensionsDialog.h DimensionsDialog.ui - Dialogs/QT/NewEntityDialog.cpp - Dialogs/QT/NewEntityDialog.h - Dialogs/QT/NewEntityDialog.ui NewLevelDialog.cpp NewLevelDialog.h NewLevelDialog.ui @@ -551,7 +548,6 @@ set(FILES DatabaseFrameWnd.h DatabaseFrameWnd.ui DatabaseFrameWnd.qrc - Dialogs/DuplicatedObjectsHandlerDlg.h DocMultiArchive.h EditMode/DeepSelection.h FBXExporterDialog.h @@ -711,8 +707,6 @@ set(FILES graphicssettingsdialog.ui AboutDialog.cpp DatabaseFrameWnd.cpp - Dialogs/DuplicatedObjectsHandlerDlg.cpp - Dialogs/DuplicatedObjectsHandlerDlg.ui ErrorReportTableModel.h ErrorReportTableModel.cpp EditMode/DeepSelection.cpp diff --git a/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/SandboxIntegration.h b/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/SandboxIntegration.h index ea4d2fe32b..1bcffa8f2c 100644 --- a/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/SandboxIntegration.h +++ b/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/SandboxIntegration.h @@ -376,9 +376,9 @@ private: // Tracks new entities that have not yet been saved. AZStd::unordered_set m_unsavedEntities; - const AZStd::string m_defaultComponentIconLocation = "Editor/Icons/Components/Component_Placeholder.svg"; - const AZStd::string m_defaultComponentViewportIconLocation = "Editor/Icons/Components/Viewport/Component_Placeholder.png"; - const AZStd::string m_defaultEntityIconLocation = "Editor/Icons/Components/Viewport/Transform.png"; + const AZStd::string m_defaultComponentIconLocation = "Icons/Components/Component_Placeholder.svg"; + const AZStd::string m_defaultComponentViewportIconLocation = "Icons/Components/Viewport/Component_Placeholder.png"; + const AZStd::string m_defaultEntityIconLocation = "Icons/Components/Viewport/Transform.png"; bool m_debugDisplayBusImplementationActive = false; diff --git a/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/UI/ComponentPalette/CategoriesList.cpp b/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/UI/ComponentPalette/CategoriesList.cpp index 5f3c49426d..5e71d31752 100644 --- a/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/UI/ComponentPalette/CategoriesList.cpp +++ b/Code/Sandbox/Plugins/ComponentEntityEditorPlugin/UI/ComponentPalette/CategoriesList.cpp @@ -33,8 +33,8 @@ void ComponentCategoryList::Init() headers << tr("Categories"); setHeaderLabels(headers); - const QString parentCategoryIconPath = QString("Editor/Icons/PropertyEditor/Browse_on.png"); - const QString categoryIconPath = QString("Editor/Icons/PropertyEditor/Browse.png"); + const QString parentCategoryIconPath = QString("Icons/PropertyEditor/Browse_on.png"); + const QString categoryIconPath = QString("Icons/PropertyEditor/Browse.png"); QTreeWidgetItem* allCategory = new QTreeWidgetItem(this); allCategory->setText(0, "All"); diff --git a/Code/Sandbox/Plugins/EditorAssetImporter/AssetBrowserContextProvider.cpp b/Code/Sandbox/Plugins/EditorAssetImporter/AssetBrowserContextProvider.cpp index 0e94ff80cf..14a3d6fa1e 100644 --- a/Code/Sandbox/Plugins/EditorAssetImporter/AssetBrowserContextProvider.cpp +++ b/Code/Sandbox/Plugins/EditorAssetImporter/AssetBrowserContextProvider.cpp @@ -94,7 +94,7 @@ namespace AZ { if (AzFramework::StringFunc::Equal(extensionString.c_str(), potentialExtension.c_str())) { - return AzToolsFramework::AssetBrowser::SourceFileDetails("Editor/Icons/AssetBrowser/FBX_16.png"); + return AzToolsFramework::AssetBrowser::SourceFileDetails("Icons/AssetBrowser/FBX_16.png"); } } } diff --git a/Code/Sandbox/Plugins/EditorAssetImporter/AssetImporter.qrc b/Code/Sandbox/Plugins/EditorAssetImporter/AssetImporter.qrc index 5140ed81ab..35b7557a9b 100644 --- a/Code/Sandbox/Plugins/EditorAssetImporter/AssetImporter.qrc +++ b/Code/Sandbox/Plugins/EditorAssetImporter/AssetImporter.qrc @@ -1,17 +1,17 @@ - ../../../../Editor/Icons/PropertyEditor/Browse.png - ../../../../Editor/Icons/PropertyEditor/Browse_on.png - ../../../../Editor/Icons/PropertyEditor/remove.png - ../../../../Editor/Icons/PropertyEditor/remove.png - ../../../../Editor/Icons/PropertyEditor/error_icon.png - ../../../../Editor/Icons/PropertyEditor/reset_icon.png - ../../../../Editor/Icons/AssetImporter/mesh.png - ../../../../Editor/Icons/AssetImporter/mesh_on.png - ../../../../Editor/Icons/AssetImporter/mesh_on.png - ../../../../Editor/Icons/AssetImporter/group_icon.png - ../../../../Editor/Icons/checkmark_checked.png - ../../../../Editor/Icons/checkmark_checked_hover.png - ../../../../Editor/Icons/checkmark_unchecked_hover.png + ../../../../Assets/Editor/Icons/PropertyEditor/Browse.png + ../../../../Assets/Editor/Icons/PropertyEditor/Browse_on.png + ../../../../Assets/Editor/Icons/PropertyEditor/remove.png + ../../../../Assets/Editor/Icons/PropertyEditor/remove.png + ../../../../Assets/Editor/Icons/PropertyEditor/error_icon.png + ../../../../Assets/Editor/Icons/PropertyEditor/reset_icon.png + ../../../../Assets/Editor/Icons/AssetImporter/mesh.png + ../../../../Assets/Editor/Icons/AssetImporter/mesh_on.png + ../../../../Assets/Editor/Icons/AssetImporter/mesh_on.png + ../../../../Assets/Editor/Icons/AssetImporter/group_icon.png + ../../../../Assets/Editor/Icons/checkmark_checked.png + ../../../../Assets/Editor/Icons/checkmark_checked_hover.png + ../../../../Assets/Editor/Icons/checkmark_unchecked_hover.png diff --git a/Code/Sandbox/Plugins/EditorCommon/DockTitleBarWidget.cpp b/Code/Sandbox/Plugins/EditorCommon/DockTitleBarWidget.cpp index 183674505a..e7de4904d1 100644 --- a/Code/Sandbox/Plugins/EditorCommon/DockTitleBarWidget.cpp +++ b/Code/Sandbox/Plugins/EditorCommon/DockTitleBarWidget.cpp @@ -175,7 +175,7 @@ CDockTitleBarWidget::CDockTitleBarWidget(QDockWidget* dockWidget) m_layout->addLayout(m_buttonLayout, 0); m_floatButton = new CDockWidgetTitleButton(dockWidget); - m_floatButton->setIcon(QIcon("Editor/Icons/float.png")); + m_floatButton->setIcon(QIcon("Icons/float.png")); m_floatButton->setVisible(opt.floatable); m_floatButton->setToolTip("Toggle Floating"); connect(m_floatButton, SIGNAL(clicked()), SLOT(OnFloatButtonPressed())); @@ -185,7 +185,7 @@ CDockTitleBarWidget::CDockTitleBarWidget(QDockWidget* dockWidget) // close.png is a standard icon that looks similar to one in Fusion theme but // uses alpha so it can be used on dark theme as well. // style()->standardIcon(QStyle::SP_TitleBarCloseButton, &opt, dockWidget) - QIcon closeIcon("Editor/Icons/close.png"); + QIcon closeIcon("Icons/close.png"); m_closeButton->setIcon(closeIcon); m_closeButton->setVisible(opt.closable); m_closeButton->setToolTip("Close"); diff --git a/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowLocalFrame.cpp b/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowLocalFrame.cpp index f04a38dbdb..6d318aecde 100644 --- a/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowLocalFrame.cpp +++ b/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowLocalFrame.cpp @@ -80,7 +80,7 @@ void PropertyRowLocalFrameBase::reset(QPropertyTree* tree) void PropertyRowLocalFrameBase::redraw(const PropertyDrawContext& context) { - static QIcon gizmo("Editor/Icons/animation/gizmo_location.png"); + static QIcon gizmo("Icons/animation/gizmo_location.png"); gizmo.paint(context.painter, context.widgetRect.adjusted(1, 1, 1, 1), Qt::AlignRight); } diff --git a/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowResourceSelector.cpp b/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowResourceSelector.cpp index 76295ec1f0..942691df04 100644 --- a/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowResourceSelector.cpp +++ b/Code/Sandbox/Plugins/EditorCommon/QPropertyTree/PropertyRowResourceSelector.cpp @@ -292,7 +292,7 @@ const QIcon& PropertyRowResourceSelector::buttonIcon(const QPropertyTree* tree, } case BUTTON_CREATE: { - static QIcon addIcon("Editor/Icons/animation/add.png"); + static QIcon addIcon("Icons/animation/add.png"); ; return addIcon; } diff --git a/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 1acb3b90e6..0000000000 --- a/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,9 +0,0 @@ -[Platforms] -;pc=enabled -es3=enabled -;ios=enabled -;osx_gl=enabled -;provo=enabled -;server=enabled - - diff --git a/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..81fcdbcf12 --- /dev/null +++ b/Code/Tools/AssetBundler/tests/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,11 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platforms": { + "es3": "enabled" + } + } + } + } +} diff --git a/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.ini b/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.ini deleted file mode 100644 index 702a486603..0000000000 --- a/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Platforms] -;pc=enabled -;es3=enabled -ios=enabled -;osx_gl=enabled -;provo=enabled -;server=enabled diff --git a/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.setreg b/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.setreg new file mode 100644 index 0000000000..490d4a8571 --- /dev/null +++ b/Code/Tools/AssetBundler/tests/DummyProject/AssetProcessorGamePlatformConfig.setreg @@ -0,0 +1,11 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platforms": { + "ios": "enabled" + } + } + } + } +} diff --git a/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.ini b/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.ini deleted file mode 100644 index 125b5dc32a..0000000000 --- a/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.ini +++ /dev/null @@ -1,9 +0,0 @@ -[Platforms] -;pc=enabled -;es3=enabled -;ios=enabled -;osx_gl=enabled -provo=enabled -;server=enabled - - diff --git a/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.setreg b/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.setreg new file mode 100644 index 0000000000..6616f886b1 --- /dev/null +++ b/Code/Tools/AssetBundler/tests/Gems/GemA/AssetProcessorGemConfig.setreg @@ -0,0 +1,11 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platforms": { + "provo": "enabled" + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/CMakeLists.txt b/Code/Tools/AssetProcessor/CMakeLists.txt index 9eea81b415..dd59481636 100644 --- a/Code/Tools/AssetProcessor/CMakeLists.txt +++ b/Code/Tools/AssetProcessor/CMakeLists.txt @@ -178,7 +178,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_broken_badplatform ) @@ -186,7 +186,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_noscans/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_noscans/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_broken_noscans ) @@ -194,7 +194,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_broken_recognizers ) @@ -202,7 +202,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_broken_noplatform ) @@ -210,7 +210,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_regular/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_regular/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_regular ) @@ -218,7 +218,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/config_regular_platform_scanfolder ) @@ -226,7 +226,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/EmptyDummyProject ) @@ -234,7 +234,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) TARGETS AssetProcessor.Tests FILES - ${CMAKE_CURRENT_SOURCE_DIR}/testdata/DummyProject/AssetProcessorGamePlatformConfig.ini + ${CMAKE_CURRENT_SOURCE_DIR}/testdata/DummyProject/AssetProcessorGamePlatformConfig.setreg OUTPUT_SUBDIRECTORY testdata/DummyProject ) diff --git a/Code/Tools/AssetProcessor/assetprocessor_test_files.cmake b/Code/Tools/AssetProcessor/assetprocessor_test_files.cmake index 257f044ffd..cff5f4ef39 100644 --- a/Code/Tools/AssetProcessor/assetprocessor_test_files.cmake +++ b/Code/Tools/AssetProcessor/assetprocessor_test_files.cmake @@ -10,14 +10,14 @@ # set(FILES - testdata/config_broken_badplatform/AssetProcessorPlatformConfig.ini - testdata/config_broken_noplatform/AssetProcessorPlatformConfig.ini - testdata/config_broken_noscans/AssetProcessorPlatformConfig.ini - testdata/config_broken_recognizers/AssetProcessorPlatformConfig.ini - testdata/config_regular/AssetProcessorPlatformConfig.ini - testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.ini - testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.ini - testdata/DummyProject/AssetProcessorGamePlatformConfig.ini + testdata/config_broken_badplatform/AssetProcessorPlatformConfig.setreg + testdata/config_broken_noplatform/AssetProcessorPlatformConfig.setreg + testdata/config_broken_noscans/AssetProcessorPlatformConfig.setreg + testdata/config_broken_recognizers/AssetProcessorPlatformConfig.setreg + testdata/config_regular/AssetProcessorPlatformConfig.setreg + testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.setreg + testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.setreg + testdata/DummyProject/AssetProcessorGamePlatformConfig.setreg native/tests/AssetProcessorTest.h native/tests/AssetProcessorTest.cpp native/tests/BaseAssetProcessorTest.h diff --git a/Code/Tools/AssetProcessor/native/AssetDatabase/AssetDatabase.cpp b/Code/Tools/AssetProcessor/native/AssetDatabase/AssetDatabase.cpp index fa6adcf0fe..5430f0807e 100644 --- a/Code/Tools/AssetProcessor/native/AssetDatabase/AssetDatabase.cpp +++ b/Code/Tools/AssetProcessor/native/AssetDatabase/AssetDatabase.cpp @@ -45,7 +45,6 @@ namespace AssetProcessor " ScanFolder TEXT NOT NULL collate nocase, " " DisplayName TEXT NOT NULL collate nocase, " " PortableKey TEXT NOT NULL collate nocase, " - " OutputPrefix TEXT NOT NULL collate nocase, " " IsRoot INTEGER NOT NULL);"; static const char* CREATE_SOURCES_TABLE = "AssetProcessor::CreateSourceTable"; @@ -254,14 +253,13 @@ namespace AssetProcessor static const char* INSERT_SCANFOLDER = "AssetProcessor::InsertScanFolder"; static const char* INSERT_SCANFOLDER_STATEMENT = - "INSERT INTO ScanFolders (ScanFolder, DisplayName, PortableKey, OutputPrefix, IsRoot) " - "VALUES (:scanfolder, :displayname, :portablekey, :outputprefix, :isroot);"; + "INSERT INTO ScanFolders (ScanFolder, DisplayName, PortableKey, IsRoot) " + "VALUES (:scanfolder, :displayname, :portablekey, :isroot);"; static const auto s_InsertScanfolderQuery = MakeSqlQuery(INSERT_SCANFOLDER, INSERT_SCANFOLDER_STATEMENT, LOG_NAME, SqlParam(":scanfolder"), SqlParam(":displayname"), SqlParam(":portablekey"), - SqlParam(":outputprefix"), SqlParam(":isroot")); static const char* UPDATE_SCANFOLDER = "AssetProcessor::UpdateScanFolder"; @@ -270,7 +268,6 @@ namespace AssetProcessor "ScanFolder = :scanfolder, " "DisplayName = :displayname, " "PortableKey = :portablekey, " - "OutputPrefix = :outputprefix, " "IsRoot = :isroot " "WHERE " "ScanFolderID = :scanfolderid;"; @@ -279,7 +276,6 @@ namespace AssetProcessor SqlParam(":scanfolder"), SqlParam(":displayname"), SqlParam(":portablekey"), - SqlParam(":outputprefix"), SqlParam(":isroot"), SqlParam(":scanfolderid")); @@ -1051,6 +1047,10 @@ namespace AssetProcessor } } + // Nothing to do for version `AssetDatabase::DatabaseVersion::RemoveOutputPrefixFromScanFolders` + // sqlite doesn't not support altering a table to remove a column + // This is fine as the extra OutputPrefix column will not be queried + if (foundVersion == CurrentDatabaseVersion()) { dropAllTables = false; @@ -1433,7 +1433,7 @@ namespace AssetProcessor //its not in the database, add it // it is a single statement, do not wrap it in a transaction, this wastes a lot of time. - if (!s_InsertScanfolderQuery.BindAndStep(*m_databaseConnection, entry.m_scanFolder.c_str(), entry.m_displayName.c_str(), entry.m_portableKey.c_str(), entry.m_outputPrefix.c_str(), entry.m_isRoot)) + if (!s_InsertScanfolderQuery.BindAndStep(*m_databaseConnection, entry.m_scanFolder.c_str(), entry.m_displayName.c_str(), entry.m_portableKey.c_str(), entry.m_isRoot)) { return false; } @@ -1457,7 +1457,7 @@ namespace AssetProcessor return false; } - return s_UpdateScanfolderQuery.BindAndStep(*m_databaseConnection, entry.m_scanFolder.c_str(), entry.m_displayName.c_str(), entry.m_portableKey.c_str(), entry.m_outputPrefix.c_str(), entry.m_isRoot, entry.m_scanFolderID); + return s_UpdateScanfolderQuery.BindAndStep(*m_databaseConnection, entry.m_scanFolder.c_str(), entry.m_displayName.c_str(), entry.m_portableKey.c_str(), entry.m_isRoot, entry.m_scanFolderID); } } diff --git a/Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.cpp b/Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.cpp index 0991ef72de..196f6b0543 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.cpp +++ b/Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.cpp @@ -951,17 +951,7 @@ namespace AssetProcessor // the subId part of the assetId will always be set to zero. assetInfo.m_assetId = AZ::Data::AssetId(entry.m_sourceGuid, 0); - // the Scan Folder may have an output prefix, so we must remove it from the relpath. - // this involves deleting the output prefix and the first slash ('editor/') which is why - // we remove the length of outputPrefix and one extra character. - if (!scanEntry.m_outputPrefix.empty()) - { - assetInfo.m_relativePath = entry.m_sourceName.substr(static_cast(scanEntry.m_outputPrefix.size()) + 1); - } - else - { - assetInfo.m_relativePath = entry.m_sourceName; - } + assetInfo.m_relativePath = entry.m_sourceName; AZStd::string absolutePath; AzFramework::StringFunc::Path::Join(scanEntry.m_scanFolder.c_str(), assetInfo.m_relativePath.c_str(), absolutePath); assetInfo.m_sizeBytes = AZ::IO::SystemFile::Length(absolutePath.c_str()); @@ -1375,17 +1365,7 @@ namespace AssetProcessor AzToolsFramework::AssetDatabase::ScanFolderDatabaseEntry scanEntry; if (m_db->GetScanFolderByScanFolderID(entry.m_scanFolderPK, scanEntry)) { - // the Scan Folder may have an output prefix, so we must remove it from the relpath. - // this involves deleting the output prefix and the first slash ('editor/') which is why - // we remove the length of outputPrefix and one extra character. - if (!scanEntry.m_outputPrefix.empty()) - { - relativePath = entry.m_sourceName.substr(static_cast(scanEntry.m_outputPrefix.size()) + 1); - } - else - { - relativePath = entry.m_sourceName; - } + relativePath = entry.m_sourceName; watchFolder = scanEntry.m_scanFolder; @@ -1530,28 +1510,7 @@ namespace AssetProcessor watchFolder = sourceInfo.m_watchFolder.toStdString().c_str(); AZStd::string sourceNameStr(sourceInfo.m_sourceName.toStdString().c_str()); - - // the Scan Folder may have an output prefix, so we must remove it from the relpath. - // this involves deleting the output prefix and the first slash ('editor/') which is why - // we remove the length of outputPrefix and one extra character. - const AssetProcessor::ScanFolderInfo* info = m_platformConfig->GetScanFolderByPath(watchFolder.c_str()); - if ((info)&&(!info->GetOutputPrefix().isEmpty())) - { - const int prefixLength = static_cast(info->GetOutputPrefix().length()) + 1; - AZ_Assert(sourceNameStr.length() > prefixLength, "Source name [%s] was invalid compared to the output prefix.", sourceNameStr.c_str() != nullptr ? sourceNameStr.c_str() : ""); - if (sourceNameStr.length() > prefixLength) - { - assetInfo.m_relativePath = sourceNameStr.substr(prefixLength); - } - else - { - assetInfo.m_relativePath.swap(sourceNameStr); - } - } - else - { - assetInfo.m_relativePath.swap(sourceNameStr); - } + assetInfo.m_relativePath.swap(sourceNameStr); assetInfo.m_assetId = foundSource->first; @@ -1598,15 +1557,7 @@ namespace AssetProcessor return false; } QString databasePath = QString::fromUtf8(sourceDatabaseName); - if (!scanFolderInfo->GetOutputPrefix().isEmpty() && databasePath.startsWith(scanFolderInfo->GetOutputPrefix(), Qt::CaseInsensitive)) - { - QString relativePath = databasePath.right(databasePath.length() - scanFolderInfo->GetOutputPrefix().length() - 1); // also eat the slash, hence -1 - assetInfo.m_relativePath = relativePath.toUtf8().data(); - } - else - { - assetInfo.m_relativePath = sourceDatabaseName; - } + assetInfo.m_relativePath = sourceDatabaseName; AZStd::string absolutePath; AzFramework::StringFunc::Path::Join(watchFolder, assetInfo.m_relativePath.c_str(), absolutePath); diff --git a/Code/Tools/AssetProcessor/native/AssetManager/PathDependencyManager.cpp b/Code/Tools/AssetProcessor/native/AssetManager/PathDependencyManager.cpp index 78c49b1940..de8bde9b05 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/PathDependencyManager.cpp +++ b/Code/Tools/AssetProcessor/native/AssetManager/PathDependencyManager.cpp @@ -65,7 +65,7 @@ namespace AssetProcessor if (!AzFramework::StringFunc::Path::IsRelative(path.c_str())) { - if (m_platformConfig->ConvertToRelativePath(QString::fromUtf8(path.c_str()), relativePath, scanFolder, true)) + if (m_platformConfig->ConvertToRelativePath(QString::fromUtf8(path.c_str()), relativePath, scanFolder)) { auto* scanFolderInfo = m_platformConfig->GetScanFolderByPath(scanFolder); diff --git a/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.cpp b/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.cpp index f565309bce..a242c6377c 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.cpp +++ b/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.cpp @@ -156,7 +156,7 @@ Please note that only those seed files will get updated that are active for your else { QString relativePathQString; - if (!PlatformConfiguration::ConvertToRelativePath(normalizedSource.c_str(), scanFolderInfo, relativePathQString, false)) + if (!PlatformConfiguration::ConvertToRelativePath(normalizedSource.c_str(), scanFolderInfo, relativePathQString)) { return AZ::Failure(AZStd::string::format("Failed to convert path to relative path. %s\n", normalizedSource.c_str())); } @@ -167,16 +167,6 @@ Please note that only those seed files will get updated that are active for your return AZ::Success(); } - AZStd::string SourceFileRelocator::RemoveDatabasePrefix(const ScanFolderInfo* scanFolder, AZStd::string sourceName) - { - if (!scanFolder->GetOutputPrefix().isEmpty()) - { - return sourceName.substr(scanFolder->GetOutputPrefix().size() + 1); //+1 to remove the slash after the prefix - } - - return sourceName; - } - QHash SourceFileRelocator::GetSources(QStringList pathMatches, const ScanFolderInfo* scanFolderInfo, SourceFileRelocationContainer& sources) const { @@ -188,7 +178,7 @@ Please note that only those seed files will get updated that are active for your PlatformConfiguration::ConvertToRelativePath(file, scanFolderInfo, databaseSourceName); m_stateData->QuerySourceBySourceNameScanFolderID(databaseSourceName.toUtf8().constData(), scanFolderInfo->ScanFolderID(), [this, &sources, &scanFolderInfo, &sourceIndexMap, &databaseSourceName](const AzToolsFramework::AssetDatabase::SourceDatabaseEntry& entry) { - sources.emplace_back(entry, GetProductMapForSource(entry.m_sourceID), RemoveDatabasePrefix(scanFolderInfo, entry.m_sourceName), scanFolderInfo); + sources.emplace_back(entry, GetProductMapForSource(entry.m_sourceID), entry.m_sourceName, scanFolderInfo); sourceIndexMap[databaseSourceName] = aznumeric_cast (sources.size() - 1); return true; }); @@ -357,12 +347,6 @@ Please note that only those seed files will get updated that are active for your QString relativeFileName(normalizedSource.c_str()); - //if relative path starts with the output prefix than remove it first - if (!scanFolderInfo->GetOutputPrefix().isEmpty() && relativeFileName.startsWith(scanFolderInfo->GetOutputPrefix(), Qt::CaseInsensitive)) - { - relativeFileName = relativeFileName.right(relativeFileName.length() - (scanFolderInfo->GetOutputPrefix().length() + 1)); // adding 1 for slash - } - QDir rooted(scanFolderInfo->ScanPath()); QString absolutePath = rooted.absoluteFilePath(relativeFileName); @@ -620,7 +604,7 @@ Please note that only those seed files will get updated that are active for your { QString relativePath; QString scanFolderName; - m_platformConfig->ConvertToRelativePath(newDestinationPath.c_str(), relativePath, scanFolderName, false); + m_platformConfig->ConvertToRelativePath(newDestinationPath.c_str(), relativePath, scanFolderName); relocationInfo.m_newAbsolutePath = newDestinationPath; relocationInfo.m_newRelativePath = relativePath.toUtf8().constData(); diff --git a/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.h b/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.h index 1fcda59b71..35c0216d4a 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.h +++ b/Code/Tools/AssetProcessor/native/AssetManager/SourceFileRelocator.h @@ -96,7 +96,7 @@ namespace AssetProcessor SourceFileRelocationInfo(const AZStd::string& filePath, const ScanFolderInfo* scanFolder) { QString relFilePath; - PlatformConfiguration::ConvertToRelativePath(filePath.c_str(), scanFolder, relFilePath, true); + PlatformConfiguration::ConvertToRelativePath(filePath.c_str(), scanFolder, relFilePath); m_oldRelativePath = relFilePath.toUtf8().data(); AzFramework::StringFunc::Path::ConstructFull(scanFolder->ScanPath().toUtf8().constData(), m_oldRelativePath.c_str(), m_oldAbsolutePath, false); m_oldAbsolutePath = AssetUtilities::NormalizeFilePath(m_oldAbsolutePath.c_str()).toUtf8().constData(); @@ -191,7 +191,6 @@ namespace AssetProcessor SourceFileRelocator(AZStd::shared_ptr stateData, PlatformConfiguration* platformConfiguration); ~SourceFileRelocator(); - static AZStd::string RemoveDatabasePrefix(const ScanFolderInfo* scanFolder, AZStd::string sourceName); static void MakePathRelative(const AZStd::string& parentPath, const AZStd::string& childPath, AZStd::string& parentRelative, AZStd::string& childRelative); static AZ::Outcome HandleWildcard(AZStd::string_view absFile, AZStd::string_view absSearch, AZStd::string destination); diff --git a/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.cpp b/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.cpp index d403b97359..47f79d9709 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.cpp +++ b/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.cpp @@ -142,11 +142,6 @@ namespace AssetProcessor QString databaseSourceName = QString::fromUtf8(entry.m_sourceName.c_str()); QString scanFolderPath = QString::fromUtf8(entry.m_scanFolder.c_str()); QString relativeToScanFolderPath = databaseSourceName; - if (!entry.m_outputPrefix.empty()) - { - relativeToScanFolderPath = relativeToScanFolderPath.remove(0, static_cast(entry.m_outputPrefix.size()) + 1); - } - QString finalAbsolute = (QString("%1/%2").arg(scanFolderPath).arg(relativeToScanFolderPath)); m_sourceFilesInDatabase[finalAbsolute] = { scanFolderPath, relativeToScanFolderPath, databaseSourceName, entry.m_analysisFingerprint.c_str() }; @@ -173,12 +168,6 @@ namespace AssetProcessor if (scanFolderInfo.ScanFolderID() == entry.m_scanFolderPK) { scanFolderPath = scanFolderInfo.ScanPath(); - - if (!scanFolderInfo.GetOutputPrefix().isEmpty()) - { - relativeToScanFolderPath = relativeToScanFolderPath.remove(0, static_cast(scanFolderInfo.GetOutputPrefix().size()) + 1); - } - break; } } @@ -470,12 +459,12 @@ namespace AssetProcessor return; } - // note that m_SourceFilesInDatabase is a map from (full absolute path) --> (database name for file, which includes outputprefix) + // note that m_SourceFilesInDatabase is a map from (full absolute path) --> (database name for file) for (auto iter = m_sourceFilesInDatabase.begin(); iter != m_sourceFilesInDatabase.end(); iter++) { // CheckDeletedSourceFile actually expects the database name as the second value // iter.key is the full path normalized. iter.value is the database path. - // we need the relative path too, which involves removing the scan folder outputprefix it present: + // we need the relative path too: CheckDeletedSourceFile( iter.key(), iter.value().m_sourceRelativeToWatchFolder, iter.value().m_sourceDatabaseName, AZStd::chrono::system_clock::now()); @@ -1633,27 +1622,7 @@ namespace AssetProcessor AzToolsFramework::AssetDatabase::ScanFolderDatabaseEntry scanfolder; if (m_stateData->GetScanFolderByScanFolderID(source.m_scanFolderPK, scanfolder)) { - // there's one more thing to account for here, and thats the fact that the sourceName may have an outputPrefix appended on to it - // so for example, the scan folder might be c:/ly/dev/Gems/Clouds/Assets - // but the outputPrefix might be Clouds/Assets, meaning "put it in that folder in the cache instead of just at the root" - // When we have an outputprefix, we prepend it to SourceName so that its a unique source - // so for example, the sourceName might be Clouds/Assets/blah.tif - // if you were to blindly concatenate them you'd end up with c:/ly/dev/Gems/Clouds/Assets/Clouds/Assets/blah.tif - // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - // The watch folder is here - // ^^^^^^^^^^^^^^ - // Prefix prepended - // ^^^^^^^^ - // actual name - // so remove the output prefix from sourcename if present before doing any source ops on it. - - AZStd::string sourceName(source.m_sourceName); - - if (!scanfolder.m_outputPrefix.empty()) - { - sourceName = sourceName.substr(scanfolder.m_outputPrefix.size() + 1); - } - AZStd::string fullSourcePath = AZStd::string::format("%s/%s", scanfolder.m_scanFolder.c_str(), sourceName.c_str()); + AZStd::string fullSourcePath = AZStd::string::format("%s/%s", scanfolder.m_scanFolder.c_str(), source.m_sourceName.c_str()); AssessFileInternal(fullSourcePath.c_str(), false); } @@ -2001,18 +1970,7 @@ namespace AssetProcessor //remove the jobs associated with these products m_stateData->RemoveJob(oldJobInfo.m_jobID); - // note that JobRemoved is supposed to emit a jobinfo that is not output-prefixed - if (!scanFolder->GetOutputPrefix().isEmpty()) - { - JobInfo newJobInfo(oldJobInfo); - QString sourcePathWithPrefix = QString::fromUtf8(oldJobInfo.m_sourceFile.c_str()); - newJobInfo.m_sourceFile = (sourcePathWithPrefix.right(sourcePathWithPrefix.length() - (scanFolder->GetOutputPrefix().length() + 1))).toUtf8().constData(); - Q_EMIT JobRemoved(newJobInfo); - } - else - { - Q_EMIT JobRemoved(oldJobInfo); - } + Q_EMIT JobRemoved(oldJobInfo); } } @@ -2239,7 +2197,7 @@ namespace AssetProcessor } AzToolsFramework::AssetDatabase::SourceDatabaseEntryContainer sources; - QString sourceName = scanFolderInfo->GetOutputPrefix().isEmpty() ? relativePath : QDir::cleanPath(scanFolderInfo->GetOutputPrefix() + QDir::separator() + relativePath); + QString sourceName = relativePath; m_stateData->GetSourcesLikeSourceName(sourceName, AzToolsFramework::AssetDatabase::AssetDatabaseConnection::StartsWith, sources); AZ_TracePrintf(AssetProcessor::DebugChannel, "CheckDeletedSourceFolder: %i matching files.\n", sources.size()); @@ -2250,11 +2208,6 @@ namespace AssetProcessor // reconstruct full path: QString actualRelativePath = source.m_sourceName.c_str(); - if (!scanFolderInfo->GetOutputPrefix().isEmpty()) - { - actualRelativePath = actualRelativePath.right(actualRelativePath.length() - (scanFolderInfo->GetOutputPrefix().length() + 1)); // adding one for separator - } - QString finalPath = scanFolder.absoluteFilePath(actualRelativePath); if (!QFile::exists(finalPath)) @@ -2513,11 +2466,6 @@ namespace AssetProcessor const ScanFolderInfo* scanFolderInfo = m_platformConfig->GetScanFolderForFile(normalizedPath); relativePathToFile = databasePathToFile; - // remove output prefix if present to generate relative path - if ((scanFolderInfo)&&(!scanFolderInfo->GetOutputPrefix().isEmpty())) - { - relativePathToFile = relativePathToFile.remove(0, static_cast(scanFolderInfo->GetOutputPrefix().length()) + 1); - } if (normalizedPath.length() >= AP_MAX_PATH_LEN) { @@ -2537,7 +2485,7 @@ namespace AssetProcessor job.m_jobEntry = JobEntry( QString::fromUtf8(jobInfo.m_watchFolder.c_str()), relativePathToFile, - databasePathToFile, // with outputprefix + databasePathToFile, jobInfo.m_builderGuid, *platformFromInfo, jobInfo.m_jobKey.c_str(), 0, GenerateNewJobRunKey(), @@ -2646,7 +2594,7 @@ namespace AssetProcessor // to call the expensive function to discover correct case. QString pathRelativeToScanFolder; QString scanFolderPath; - m_platformConfig->ConvertToRelativePath(overrider, pathRelativeToScanFolder, scanFolderPath, false /*include output prefix*/); + m_platformConfig->ConvertToRelativePath(overrider, pathRelativeToScanFolder, scanFolderPath); AssetUtilities::UpdateToCorrectCase(scanFolderPath, pathRelativeToScanFolder); overrider = QDir(scanFolderPath).absoluteFilePath(pathRelativeToScanFolder); } @@ -3367,10 +3315,6 @@ namespace AssetProcessor newSourceInfo.m_watchFolder = scanFolder->ScanPath(); newSourceInfo.m_sourceDatabaseName = databasePathToFile; newSourceInfo.m_sourceRelativeToWatchFolder = databasePathToFile; - if (!scanFolder->GetOutputPrefix().isEmpty()) - { - newSourceInfo.m_sourceRelativeToWatchFolder = newSourceInfo.m_sourceRelativeToWatchFolder.remove(0, static_cast(scanFolder->GetOutputPrefix().length()) + 1); - } { // this scope exists only to narrow the range of m_sourceUUIDToSourceNameMapMutex @@ -3644,12 +3588,6 @@ namespace AssetProcessor continue; } - //if relative path starts with the output prefix then remove it first - if (!scanFolderInfo->GetOutputPrefix().isEmpty() && knownPathBeforeWildcard.startsWith(scanFolderInfo->GetOutputPrefix(), Qt::CaseInsensitive)) - { - knownPathBeforeWildcard = knownPathBeforeWildcard.right(knownPathBeforeWildcard.length() - (scanFolderInfo->GetOutputPrefix().length() + 1)); // adding 1 for slash - } - QDir rooted(scanFolderInfo->ScanPath()); QString absolutePath = rooted.absoluteFilePath(knownPathBeforeWildcard); @@ -3950,7 +3888,6 @@ namespace AssetProcessor scanFolderFromConfigFile.ScanPath().toUtf8().constData(), scanFolderFromConfigFile.GetDisplayName().toUtf8().constData(), scanFolderFromConfigFile.GetPortableKey().toUtf8().constData(), - scanFolderFromConfigFile.GetOutputPrefix().toUtf8().constData(), scanFolderFromConfigFile.IsRoot()); //remove this scan path from the scan folders so what is left can deleted m_scanFoldersInDatabase.erase(found); @@ -3962,7 +3899,6 @@ namespace AssetProcessor scanFolderFromConfigFile.ScanPath().toUtf8().constData(), scanFolderFromConfigFile.GetDisplayName().toUtf8().constData(), scanFolderFromConfigFile.GetPortableKey().toUtf8().constData(), - scanFolderFromConfigFile.GetOutputPrefix().toUtf8().constData(), scanFolderFromConfigFile.IsRoot()); } @@ -4006,11 +3942,7 @@ namespace AssetProcessor result.m_sourceDatabaseName = QString::fromUtf8(sourceDatabaseEntry.m_sourceName.c_str()); result.m_watchFolder = QString::fromUtf8(scanFolder.m_scanFolder.c_str()); result.m_sourceRelativeToWatchFolder = result.m_sourceDatabaseName; - if (!scanFolder.m_outputPrefix.empty()) - { - result.m_sourceRelativeToWatchFolder = result.m_sourceRelativeToWatchFolder.remove(0, static_cast(scanFolder.m_outputPrefix.size()) + 1); - } - + { // this scope exists to restrict the duration of the below lock. AZStd::lock_guard lock(m_sourceUUIDToSourceInfoMapMutex); @@ -4088,16 +4020,7 @@ namespace AssetProcessor { sourceDatabaseEntry.m_scanFolderPK = scanFolder->ScanFolderID(); - if (!scanFolder->GetOutputPrefix().isEmpty()) - { - // replace the "output prefix" part of the file name with the one from the ini file to sort out case sensitivity problems. - QString withoutOutputPrefix = relativeSourceFilePath.remove(0, scanFolder->GetOutputPrefix().length() + 1); - sourceDatabaseEntry.m_sourceName = AZStd::string::format("%s/%s", scanFolder->GetOutputPrefix().toUtf8().constData(), withoutOutputPrefix.toUtf8().data()); - } - else - { - sourceDatabaseEntry.m_sourceName = relativeSourceFilePath.toUtf8().constData(); - } + sourceDatabaseEntry.m_sourceName = relativeSourceFilePath.toUtf8().constData(); sourceDatabaseEntry.m_sourceGuid = AssetUtilities::CreateSafeSourceUUIDFromName(sourceDatabaseEntry.m_sourceName.c_str()); @@ -4709,7 +4632,7 @@ namespace AssetProcessor QString databasePath; QString scanFolderPath; - m_platformConfig->ConvertToRelativePath(metaDataFileName, databasePath, scanFolderPath, true); + m_platformConfig->ConvertToRelativePath(metaDataFileName, databasePath, scanFolderPath); outFilesToFingerprint.insert(AZStd::make_pair(metaDataFileName.toUtf8().constData(), databasePath.toUtf8().constData())); } } diff --git a/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.h b/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.h index 4c203567e9..88f74c886b 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.h +++ b/Code/Tools/AssetProcessor/native/AssetManager/assetProcessorManager.h @@ -163,7 +163,7 @@ namespace AssetProcessor //! Internal structure that will hold all the necessary source info struct SourceFileInfo { - QString m_databasePath; // clarification: this is the database path (ie, includes outputprefix) + QString m_databasePath; // clarification: this is the database path QString m_pathRelativeToScanFolder; AZ::Uuid m_uuid; const ScanFolderInfo* m_scanFolder{ nullptr }; @@ -222,7 +222,7 @@ namespace AssetProcessor //! Emit whenever a new asset is found or an existing asset is updated void AssetMessage(AzFramework::AssetSystem::AssetNotificationMessage message); - // InputAssetProcessed - uses absolute asset path of input file - no outputprefix + // InputAssetProcessed - uses absolute asset path of input file void InputAssetProcessed(QString fullAssetPath, QString platform); void RequestInputAssetStatus(QString inputAssetPath, QString platform, QString jobDescription); diff --git a/Code/Tools/AssetProcessor/native/AssetManager/assetScanFolderInfo.h b/Code/Tools/AssetProcessor/native/AssetManager/assetScanFolderInfo.h index 13c1a8671a..5767822451 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/assetScanFolderInfo.h +++ b/Code/Tools/AssetProcessor/native/AssetManager/assetScanFolderInfo.h @@ -28,7 +28,6 @@ namespace AssetProcessor QString path, QString displayName, QString portableKey, - QString prefix, bool isRoot, bool recurseSubFolders, AZStd::vector platforms = AZStd::vector{}, @@ -38,7 +37,6 @@ namespace AssetProcessor : m_scanPath(path) , m_displayName(displayName) , m_portableKey (portableKey) - , m_outputPrefix(prefix) , m_isRoot(isRoot) , m_recurseSubFolders(recurseSubFolders) , m_order(order) @@ -62,11 +60,6 @@ namespace AssetProcessor return m_displayName; } - QString GetOutputPrefix() const - { - return m_outputPrefix; - } - bool IsRoot() const { return m_isRoot; @@ -110,7 +103,6 @@ namespace AssetProcessor private: QString m_scanPath; // the local path to scan ("C:\\whatever") QString m_displayName; // the display name to show in GUIs that show it. - QString m_outputPrefix; // the output prefix to target results into (eg, put things in a certain subfolder of @assets@ rather than the relative to assets itself) QString m_portableKey; // a key that remains the same even if the asset database is moved from computer to computer. bool m_isRoot = false; // is it 'the' root folder? bool m_recurseSubFolders = true; diff --git a/Code/Tools/AssetProcessor/native/AssetManager/assetScannerWorker.cpp b/Code/Tools/AssetProcessor/native/AssetManager/assetScannerWorker.cpp index a54e9b3c38..c869e40236 100644 --- a/Code/Tools/AssetProcessor/native/AssetManager/assetScannerWorker.cpp +++ b/Code/Tools/AssetProcessor/native/AssetManager/assetScannerWorker.cpp @@ -126,7 +126,7 @@ void AssetScannerWorker::ScanForSourceFiles(const ScanFolderInfo& scanFolderInfo { //Entry is a directory m_folderList.insert(AZStd::move(assetFileInfo)); - ScanFolderInfo tempScanFolderInfo(absPath, "", "", "", false, true); + ScanFolderInfo tempScanFolderInfo(absPath, "", "", false, true); ScanForSourceFiles(tempScanFolderInfo, rootScanFolder); } else diff --git a/Code/Tools/AssetProcessor/native/resourcecompiler/RCCommon.h b/Code/Tools/AssetProcessor/native/resourcecompiler/RCCommon.h index 4143019627..c3dd994ef5 100644 --- a/Code/Tools/AssetProcessor/native/resourcecompiler/RCCommon.h +++ b/Code/Tools/AssetProcessor/native/resourcecompiler/RCCommon.h @@ -41,7 +41,7 @@ namespace AssetProcessor public: QueueElementID() = default; - ///! note that inputAssetName is a database name (so includes outputprefix), not a relative path. + ///! note that inputAssetName is a database name, not a relative path. QueueElementID(QString inputAssetName, QString platform, QString jobDescriptor); diff --git a/Code/Tools/AssetProcessor/native/resourcecompiler/rcjoblistmodel.h b/Code/Tools/AssetProcessor/native/resourcecompiler/rcjoblistmodel.h index e364a503b9..9701f4cd9a 100644 --- a/Code/Tools/AssetProcessor/native/resourcecompiler/rcjoblistmodel.h +++ b/Code/Tools/AssetProcessor/native/resourcecompiler/rcjoblistmodel.h @@ -96,7 +96,7 @@ namespace AssetProcessor RCJob* getItem(int index) const; int GetIndexOfProcessingJob(const QueueElementID& elementId); - ///! EraseJobs expects the database name of the source file. (So with outputprefix) + ///! EraseJobs expects the database name of the source file. void EraseJobs(QString sourceFileDatabaseName, AZStd::vector& pendingJobs); private: diff --git a/Code/Tools/AssetProcessor/native/tests/AssetCatalog/AssetCatalogUnitTests.cpp b/Code/Tools/AssetProcessor/native/tests/AssetCatalog/AssetCatalogUnitTests.cpp index 281d5a24fa..e92e9afba5 100644 --- a/Code/Tools/AssetProcessor/native/tests/AssetCatalog/AssetCatalogUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/AssetCatalog/AssetCatalogUnitTests.cpp @@ -217,7 +217,6 @@ namespace AssetProcessor scanFolderInfo.ScanPath().toStdString().c_str(), scanFolderInfo.GetDisplayName().toStdString().c_str(), scanFolderInfo.GetPortableKey().toStdString().c_str(), - scanFolderInfo.GetOutputPrefix().toStdString().c_str(), scanFolderInfo.IsRoot()); dbConn->SetScanFolder(newScanFolder); } @@ -230,12 +229,12 @@ namespace AssetProcessor config.EnablePlatform({ "fandango" ,{ "console", "renderer" } }, false); AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); - // PATH DisplayName PortKey outputfolder root recurse platforms order - AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", "", false, false, platforms, -6), config, dbConn); // subfolder 4 overrides subfolder3 - AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", "", false, false, platforms, -5), config, dbConn); // subfolder 3 overrides subfolder2 - AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", "", false, true, platforms, -2), config, dbConn); // subfolder 2 overrides subfolder1 - AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, platforms, -1), config, dbConn); // subfolder1 overrides root - AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", "", true, false, platforms, 0), config, dbConn); // add the root + // PATH DisplayName PortKey root recurse platforms order + AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", false, false, platforms, -6), config, dbConn); // subfolder 4 overrides subfolder3 + AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", false, false, platforms, -5), config, dbConn); // subfolder 3 overrides subfolder2 + AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", false, true, platforms, -2), config, dbConn); // subfolder 2 overrides subfolder1 + AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, platforms, -1), config, dbConn); // subfolder1 overrides root + AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", true, false, platforms, 0), config, dbConn); // add the root config.AddMetaDataType("exportsettings", QString()); diff --git a/Code/Tools/AssetProcessor/native/tests/AssetProcessorMessagesTests.cpp b/Code/Tools/AssetProcessor/native/tests/AssetProcessorMessagesTests.cpp index 1b3bac2897..c33943f9a7 100644 --- a/Code/Tools/AssetProcessor/native/tests/AssetProcessorMessagesTests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/AssetProcessorMessagesTests.cpp @@ -317,7 +317,7 @@ namespace AssetProcessorMessagesTests using namespace AzToolsFramework::AssetDatabase; // Setup the database with all needed info - ScanFolderDatabaseEntry scanfolder1("scanfolder1", "scanfolder1", "scanfolder1", ""); + ScanFolderDatabaseEntry scanfolder1("scanfolder1", "scanfolder1", "scanfolder1"); ASSERT_TRUE(m_dbConn.SetScanFolder(scanfolder1)); SourceDatabaseEntry source1(scanfolder1.m_scanFolderID, "source1.png", AZ::Uuid::CreateRandom(), "Fingerprint"); diff --git a/Code/Tools/AssetProcessor/native/tests/FileProcessor/FileProcessorTests.cpp b/Code/Tools/AssetProcessor/native/tests/FileProcessor/FileProcessorTests.cpp index cb5dd8e532..141a5a9b67 100644 --- a/Code/Tools/AssetProcessor/native/tests/FileProcessor/FileProcessorTests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/FileProcessor/FileProcessorTests.cpp @@ -46,10 +46,10 @@ namespace UnitTests m_data->m_fileProcessor = AZStd::make_unique(m_data->m_config.get()); - m_data->m_scanFolder = { m_data->m_temporarySourceDir.absolutePath().toUtf8().constData(), "dev", "rootportkey", "" }; + m_data->m_scanFolder = { m_data->m_temporarySourceDir.absolutePath().toUtf8().constData(), "dev", "rootportkey" }; ASSERT_TRUE(m_data->m_connection.SetScanFolder(m_data->m_scanFolder)); - m_data->m_config->AddScanFolder(ScanFolderInfo(m_data->m_temporarySourceDir.absolutePath(), "dev", "rootportkey", "", false, true, m_data->m_config->GetEnabledPlatforms(), 0, m_data->m_scanFolder.m_scanFolderID)); + m_data->m_config->AddScanFolder(ScanFolderInfo(m_data->m_temporarySourceDir.absolutePath(), "dev", "rootportkey", false, true, m_data->m_config->GetEnabledPlatforms(), 0, m_data->m_scanFolder.m_scanFolderID)); for (int index = 0; index < 10; ++index) { diff --git a/Code/Tools/AssetProcessor/native/tests/SourceFileRelocatorTests.cpp b/Code/Tools/AssetProcessor/native/tests/SourceFileRelocatorTests.cpp index 852d68cba2..2731aa6c5a 100644 --- a/Code/Tools/AssetProcessor/native/tests/SourceFileRelocatorTests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/SourceFileRelocatorTests.cpp @@ -84,8 +84,8 @@ namespace UnitTests AZStd::vector platforms; m_data->m_platformConfig.PopulatePlatformsForScanFolder(platforms); - m_data->m_scanFolder1 = { tempPath.absoluteFilePath("dev").toUtf8().constData(), "dev", "devKey", ""}; - m_data->m_scanFolder2 = { tempPath.absoluteFilePath("folder").toUtf8().constData(), "folder", "folderKey", "prefix" }; + m_data->m_scanFolder1 = { tempPath.absoluteFilePath("dev").toUtf8().constData(), "dev", "devKey"}; + m_data->m_scanFolder2 = { tempPath.absoluteFilePath("folder").toUtf8().constData(), "folder", "folderKey"}; ASSERT_TRUE(m_data->m_connection->SetScanFolder(m_data->m_scanFolder1)); ASSERT_TRUE(m_data->m_connection->SetScanFolder(m_data->m_scanFolder2)); @@ -93,21 +93,19 @@ namespace UnitTests ScanFolderInfo scanFolder1(m_data->m_scanFolder1.m_scanFolder.c_str(), m_data->m_scanFolder1.m_displayName.c_str(), m_data->m_scanFolder1.m_portableKey.c_str(), - m_data->m_scanFolder1.m_outputPrefix.c_str(), false, true, platforms, 0, m_data->m_scanFolder1.m_scanFolderID); m_data->m_platformConfig.AddScanFolder(scanFolder1); ScanFolderInfo scanFolder2(m_data->m_scanFolder2.m_scanFolder.c_str(), m_data->m_scanFolder2.m_displayName.c_str(), m_data->m_scanFolder2.m_portableKey.c_str(), - m_data->m_scanFolder2.m_outputPrefix.c_str(), false, true, platforms, 0, m_data->m_scanFolder2.m_scanFolderID); m_data->m_platformConfig.AddScanFolder(scanFolder2); SourceDatabaseEntry sourceFile1 = { m_data->m_scanFolder1.m_scanFolderID, "subfolder1/somefile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; SourceDatabaseEntry sourceFile2 = { m_data->m_scanFolder1.m_scanFolderID, "subfolder1/otherfile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; - SourceDatabaseEntry sourceFile3 = { m_data->m_scanFolder2.m_scanFolderID, "prefix/otherfile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; - SourceDatabaseEntry sourceFile4 = { m_data->m_scanFolder2.m_scanFolderID, "prefix/a/b/c/d/otherfile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; + SourceDatabaseEntry sourceFile3 = { m_data->m_scanFolder2.m_scanFolderID, "otherfile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; + SourceDatabaseEntry sourceFile4 = { m_data->m_scanFolder2.m_scanFolderID, "a/b/c/d/otherfile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; SourceDatabaseEntry sourceFile5 = { m_data->m_scanFolder1.m_scanFolderID, "duplicate/file1.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; SourceDatabaseEntry sourceFile6 = { m_data->m_scanFolder2.m_scanFolderID, "duplicate/file1.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; SourceDatabaseEntry sourceFile7 = { m_data->m_scanFolder1.m_scanFolderID, "subfolder2/file.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint" }; @@ -128,7 +126,7 @@ namespace UnitTests ASSERT_TRUE(m_data->m_connection->SetSource(sourceFile11)); SourceFileDependencyEntry dependency1 = { AZ::Uuid::CreateRandom(), "subfolder1/somefile.tif", "subfolder1/otherfile.tif", SourceFileDependencyEntry::TypeOfDependency::DEP_SourceToSource, false }; - SourceFileDependencyEntry dependency2 = { AZ::Uuid::CreateRandom(), "subfolder1/otherfile.tif", "prefix/otherfile.tif", SourceFileDependencyEntry::TypeOfDependency::DEP_JobToJob, false }; + SourceFileDependencyEntry dependency2 = { AZ::Uuid::CreateRandom(), "subfolder1/otherfile.tif", "otherfile.tif", SourceFileDependencyEntry::TypeOfDependency::DEP_JobToJob, false }; ASSERT_TRUE(m_data->m_connection->SetSourceFileDependency(dependency1)); ASSERT_TRUE(m_data->m_connection->SetSourceFileDependency(dependency2)); @@ -252,7 +250,7 @@ namespace UnitTests const ScanFolderInfo* info; auto result = m_data->m_reporter->GetSourcesByPath(source, relocationContainer, info, excludeMetaDataFiles); - ASSERT_EQ(result.IsSuccess(), expectSuccess) << result.GetError().c_str(); + ASSERT_EQ(result.IsSuccess(), expectSuccess) << (!result.IsSuccess() ? result.GetError().c_str() : ""); if (expectSuccess) { @@ -423,13 +421,13 @@ namespace UnitTests TEST_F(SourceFileRelocatorTest, GetSources_PrefixedFile_Succeeds) { - TestGetSourcesByPath("otherfile.tif", { "prefix/otherfile.tif" }); + TestGetSourcesByPath("otherfile.tif", { "otherfile.tif" }); } TEST_F(SourceFileRelocatorTest, GetSources_PrefixedAbsFile_Succeeds) { QDir tempDir(m_tempDir.path()); - TestGetSourcesByPath( tempDir.absoluteFilePath("folder/otherfile.tif").toUtf8().constData(), { "prefix/otherfile.tif" }); + TestGetSourcesByPath(tempDir.absoluteFilePath("folder/otherfile.tif").toUtf8().constData(), { "otherfile.tif" }); } TEST_F(SourceFileRelocatorTest, GetSources_Folder_Fails) @@ -664,7 +662,7 @@ namespace UnitTests ASSERT_TRUE(m_data->m_reporter->GetSourcesByPath(tempPath.absoluteFilePath(AZStd::string("folder/o*").c_str()).toUtf8().constData(), entryContainer, info)); ASSERT_EQ(entryContainer.size(), 1); - ASSERT_STREQ(entryContainer[0].m_sourceEntry.m_sourceName.c_str(), "prefix/otherfile.tif"); + ASSERT_STREQ(entryContainer[0].m_sourceEntry.m_sourceName.c_str(), "otherfile.tif"); m_data->m_reporter->PopulateDependencies(entryContainer); @@ -803,7 +801,7 @@ namespace UnitTests FileUpdateTasks updateTasks; ASSERT_TRUE(m_data->m_reporter->GetSourcesByPath(tempPath.absoluteFilePath("folder/*").toUtf8().constData(), entryContainer, info)); - ASSERT_EQ(entryContainer.size(), 2); + ASSERT_EQ(entryContainer.size(), 3); m_data->m_reporter->ComputeDestination(entryContainer, info, "*", "someOtherPlace/*", destInfo); m_data->m_reporter->PopulateDependencies(entryContainer); diff --git a/Code/Tools/AssetProcessor/native/tests/assetdatabase/AssetDatabaseTest.cpp b/Code/Tools/AssetProcessor/native/tests/assetdatabase/AssetDatabaseTest.cpp index 12b202e804..8c3fdb3fbe 100644 --- a/Code/Tools/AssetProcessor/native/tests/assetdatabase/AssetDatabaseTest.cpp +++ b/Code/Tools/AssetProcessor/native/tests/assetdatabase/AssetDatabaseTest.cpp @@ -81,7 +81,7 @@ namespace UnitTests // Product: "someproduct4.dds" subid: 4 void CreateCoverageTestData() { - m_data->m_scanFolder = { "c:/O3DE/dev", "dev", "rootportkey", "" }; + m_data->m_scanFolder = { "c:/O3DE/dev", "dev", "rootportkey" }; ASSERT_TRUE(m_data->m_connection.SetScanFolder(m_data->m_scanFolder)); m_data->m_sourceFile1 = { m_data->m_scanFolder.m_scanFolderID, "somefile.tif", AZ::Uuid::CreateRandom(), "AnalysisFingerprint1"}; @@ -239,7 +239,7 @@ namespace UnitTests // we'll create all of those first (except product) before starting the product test. //add a scanfolder. None of this has to exist in real disk, this is a db test only. - ScanFolderDatabaseEntry scanFolder {"c:/O3DE/dev", "dev", "rootportkey", ""}; + ScanFolderDatabaseEntry scanFolder{ "c:/O3DE/dev", "dev", "rootportkey" }; EXPECT_TRUE(m_data->m_connection.SetScanFolder(scanFolder)); ASSERT_NE(scanFolder.m_scanFolderID, AzToolsFramework::AssetDatabase::InvalidEntryId); @@ -278,7 +278,7 @@ namespace UnitTests // to add a product legitimately you have to have a full chain of primary keys, chain is: // ScanFolder --> Source --> job --> product. // we'll create all of those first (except product) before starting the product test. - ScanFolderDatabaseEntry scanFolder{ "c:/O3DE/dev", "dev", "rootportkey", "" }; + ScanFolderDatabaseEntry scanFolder{ "c:/O3DE/dev", "dev", "rootportkey" }; ASSERT_TRUE(m_data->m_connection.SetScanFolder(scanFolder)); SourceDatabaseEntry sourceEntry{ scanFolder.m_scanFolderID, "somefile.tif", AZ::Uuid::CreateRandom(), "fingerprint1" }; @@ -323,7 +323,7 @@ namespace UnitTests // this is actually a very common case (same job id, same subID) TEST_F(AssetDatabaseTest, SetProduct_SpecificPK_Succeeds_SameSubID_SameJobID) { - ScanFolderDatabaseEntry scanFolder{ "c:/O3DE/dev", "dev", "rootportkey", "" }; + ScanFolderDatabaseEntry scanFolder{ "c:/O3DE/dev", "dev", "rootportkey"}; ASSERT_TRUE(m_data->m_connection.SetScanFolder(scanFolder)); SourceDatabaseEntry sourceEntry{ scanFolder.m_scanFolderID, "somefile.tif", AZ::Uuid::CreateRandom(), "fingerprint1" }; ASSERT_TRUE(m_data->m_connection.SetSource(sourceEntry)); diff --git a/Code/Tools/AssetProcessor/native/tests/assetmanager/AssetProcessorManagerTest.cpp b/Code/Tools/AssetProcessor/native/tests/assetmanager/AssetProcessorManagerTest.cpp index d8afda1b2c..07d1e48229 100644 --- a/Code/Tools/AssetProcessor/native/tests/assetmanager/AssetProcessorManagerTest.cpp +++ b/Code/Tools/AssetProcessor/native/tests/assetmanager/AssetProcessorManagerTest.cpp @@ -63,13 +63,6 @@ public: friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WildcardMissingFiles_ByName_UpdatesWhenTheyAppear); friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, JobDependencyOrderOnce_MultipleJobs_EmitOK); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_BasicTest); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_UpdateTest); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByUuid); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByName); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByUuid_UpdatesWhenTheyAppear); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByName_UpdatesWhenTheyAppear); - friend class GTEST_TEST_CLASS_NAME_(AssetProcessorManagerTest, SourceFileProcessFailure_ClearsFingerprint); friend class GTEST_TEST_CLASS_NAME_(AbsolutePathProductDependencyTest, UnresolvedProductPathDependency_AssetProcessedTwice_DoesNotDuplicateDependency); @@ -243,15 +236,10 @@ void AssetProcessorManagerTest::SetUp() m_config->EnablePlatform({ "pc", { "host", "renderer", "desktop" } }, true); - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, m_config->GetEnabledPlatforms() )); - - // add a scan folder that has an output prefix: - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", "redirected", false, true, m_config->GetEnabledPlatforms())); - - //adding another scan folder with an output prefix - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", "dummy", false, true, m_config->GetEnabledPlatforms())); - - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", "", false, true, m_config->GetEnabledPlatforms())); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, m_config->GetEnabledPlatforms(), 1)); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2/redirected"), "subfolder2", "subfolder2", false, true, m_config->GetEnabledPlatforms())); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", false, true, m_config->GetEnabledPlatforms(), 1)); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", false, true, m_config->GetEnabledPlatforms(), 1)); m_config->AddMetaDataType("assetinfo", ""); AssetRecognizer rec; AssetPlatformSpec specpc; @@ -459,72 +447,6 @@ TEST_F(AssetProcessorManagerTest, DeleteFolder_SignalsDeleteOfContainedFiles) EXPECT_EQ(1, count); } -TEST_F(AssetProcessorManagerTest, UnitTestForOutPutPrefix) -{ - using namespace AssetProcessor; - QDir tempPath(m_tempDir.path()); - - UnitTestUtils::CreateDummyFile(tempPath.absoluteFilePath("subfolder2/test.txt")); - UnitTestUtils::CreateDummyFile(tempPath.absoluteFilePath("subfolder3/test.txt")); - - int count = 0; - auto connection = QObject::connect(m_assetProcessorManager.get(), &AssetProcessorManager::AssetToProcess, [&count](JobDetails jobDetails) - { - if (jobDetails.m_jobEntry.m_databaseSourceName.compare("redirected/test.txt", Qt::CaseInsensitive) == 0 || - jobDetails.m_jobEntry.m_databaseSourceName.compare("dummy/test.txt", Qt::CaseInsensitive) == 0 ) - { - count++; - } - }); - - - m_isIdling = false; - // tell the APM about the files: - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder2/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder3/test.txt"))); - ASSERT_TRUE(BlockUntilIdle(5000)); - - EXPECT_EQ(2, count); - - EXPECT_TRUE(QFile::remove(tempPath.absoluteFilePath("subfolder2/test.txt"))); - EXPECT_TRUE(QFile::remove(tempPath.absoluteFilePath("subfolder3/test.txt"))); - -} - -TEST_F(AssetProcessorManagerTest, UnitTestForOutPutPrefixWithMultipleNotification) -{ - using namespace AssetProcessor; - QDir tempPath(m_tempDir.path()); - - UnitTestUtils::CreateDummyFile(tempPath.absoluteFilePath("subfolder2/test.txt")); - UnitTestUtils::CreateDummyFile(tempPath.absoluteFilePath("subfolder3/test.txt")); - - int count = 0; - auto connection = QObject::connect(m_assetProcessorManager.get(), &AssetProcessorManager::AssetToProcess, [&count](JobDetails jobDetails) - { - if (jobDetails.m_jobEntry.m_databaseSourceName.compare("redirected/test.txt", Qt::CaseInsensitive) == 0 || - jobDetails.m_jobEntry.m_databaseSourceName.compare("dummy/test.txt", Qt::CaseInsensitive) == 0) - { - count++; - } - }); - - - m_isIdling = false; - // we are putting multiple entries in the pipeline here and testing that we still receive only unique notifications for processing those assets - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder2/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder2/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder2/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder3/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder3/test.txt"))); - QMetaObject::invokeMethod(m_assetProcessorManager.get(), "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, tempPath.absoluteFilePath("subfolder3/test.txt"))); - ASSERT_TRUE(BlockUntilIdle(5000)); - - EXPECT_EQ(2, count); - EXPECT_TRUE(QFile::remove(tempPath.absoluteFilePath("subfolder2/test.txt"))); - EXPECT_TRUE(QFile::remove(tempPath.absoluteFilePath("subfolder3/test.txt"))); -} - TEST_F(AssetProcessorManagerTest, UnitTestForGettingJobInfoBySourceUUIDFailure) { using namespace AzToolsFramework::AssetSystem; @@ -1191,7 +1113,7 @@ TEST_F(AssetProcessorManagerTest, BuilderSDK_API_CreateJobs_HasValidParameters_W { QDir tempPath(m_tempDir.path()); // here we push a file change through APM and make sure that "CreateJobs" has correct parameters, with no output redirection - QString absPath(tempPath.absoluteFilePath("subfolder2/test_text.txt")); + QString absPath(tempPath.absoluteFilePath("subfolder2/redirected/test_text.txt")); UnitTestUtils::CreateDummyFile(absPath); m_mockApplicationManager->ResetMockBuilderCreateJobCalls(); @@ -1212,7 +1134,7 @@ TEST_F(AssetProcessorManagerTest, BuilderSDK_API_CreateJobs_HasValidParameters_W // subfolder2 has its output redirected in the cache // this test makes sure that the CreateJobs API is completely unaffected by that and none of the internal database stuff // is reflected by the API. - EXPECT_STREQ(req.m_watchFolder.c_str(), tempPath.absoluteFilePath("subfolder2").toUtf8().constData()); + EXPECT_STREQ(req.m_watchFolder.c_str(), tempPath.absoluteFilePath("subfolder2/redirected").toUtf8().constData()); EXPECT_STREQ(req.m_sourceFile.c_str(), "test_text.txt"); // only the name should be there, no output prefix. EXPECT_NE(req.m_sourceFileUUID, AZ::Uuid::CreateNull()); @@ -2354,7 +2276,7 @@ TEST_F(PathDependencyTest, AbsoluteDependencies_Deferred_ResolveCorrectly) // When an absolute path matches a scan folder, the portion of the path matching that scan folder // is replaced with the scan folder's ID. AZStd::string absPathDep1WithScanfolder(AZStd::string::format("$4$%s", relativePathDep1.c_str())); - QString absPathDep2(tempPath.absoluteFilePath("subfolder2/dep2.txt")); + QString absPathDep2(tempPath.absoluteFilePath("subfolder2/redirected/dep2.txt")); QString absPathDep3(tempPath.absoluteFilePath("subfolder1/dep3.txt")); // -------- Make main test asset, with dependencies on products that don't exist yet ----- @@ -2375,7 +2297,7 @@ TEST_F(PathDependencyTest, AbsoluteDependencies_Deferred_ResolveCorrectly) // Different scanfolder, same relative file name. This should *not* trigger the dependency. We can't test with another asset in the proper scanfolder because AssetIds are based on relative file name, // which means both assets have the same AssetId and there would be no way to tell which one matched ASSERT_TRUE(ProcessAsset(dep1, { {".asset1"}, {".asset2"} }, {}, "subfolder1/")); - ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/")); // subfolder2 has a prefix of "redirected" + ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/redirected/")); ASSERT_TRUE(ProcessAsset(dep3, { {".asset1"}, {".asset2"} }, {}, "subfolder1/")); // test a normal dependency with no prefix // ---------- Verify that the dependency was recorded, and did not keep the path after resolution ---------- @@ -2550,14 +2472,14 @@ TEST_F(PathDependencyTest, AssetProcessed_Impl_DeferredPathResolution_CorrectlyM // -------- Make main test asset, with dependencies on products that don't exist yet ----- TestAsset primaryFile("test_text"); - ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"test.asset1", ProductPathDependencyType::ProductFile}, {"redirected/test.asset2", ProductPathDependencyType::ProductFile} })); + ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"test.asset1", ProductPathDependencyType::ProductFile}, {"test.asset2", ProductPathDependencyType::ProductFile} })); // create dependees TestAsset dep1("test"); TestAsset dep2("test"); ASSERT_TRUE(ProcessAsset(dep1, { {".asset1"}, {".asset2"} }, {}, "subfolder1/")); - ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/")); // subfolder2 has a prefix of "redirected" + ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/redirected/")); // ---------- Verify that the dependency was recorded, and did not keep the path after resolution ---------- AzToolsFramework::AssetDatabase::ProductDependencyDatabaseEntryContainer dependencyContainer; @@ -2575,14 +2497,14 @@ TEST_F(PathDependencyTest, SourceFileDependencyWithPrefix_Deferred_ResolvesCorre // -------- Make main test asset, with dependencies on products that don't exist yet ----- TestAsset primaryFile("test_text"); - ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"redirected/test.txt", ProductPathDependencyType::SourceFile} })); + ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"test.txt", ProductPathDependencyType::SourceFile} })); // create dependees TestAsset dep1("test"); TestAsset dep2("test"); ASSERT_TRUE(ProcessAsset(dep1, { {".asset1"}, {".asset2"} }, {}, "subfolder1/")); - ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/")); // subfolder2 has a prefix of "redirected" + ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/redirected/")); // ---------- Verify that the dependency was recorded, and did not keep the path after resolution ---------- AzToolsFramework::AssetDatabase::ProductDependencyDatabaseEntryContainer dependencyContainer; @@ -2606,12 +2528,12 @@ TEST_F(PathDependencyTest, SourceFileDependencyWithPrefix_Existing_ResolvesCorre TestAsset dep2("test"); ASSERT_TRUE(ProcessAsset(dep1, { {".asset1"}, {".asset2"} }, {}, "subfolder1/")); - ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/")); // subfolder2 has a prefix of "redirected" + ASSERT_TRUE(ProcessAsset(dep2, { {".asset1"}, {".asset2"} }, {}, "subfolder2/redirected/")); // -------- Make main test asset, with dependencies on products we just created ----- TestAsset primaryFile("test_text"); - ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"redirected/test.txt", ProductPathDependencyType::SourceFile} })); + ASSERT_TRUE(ProcessAsset(primaryFile, { { ".asset" }, {} }, { {"test.txt", ProductPathDependencyType::SourceFile} })); // ---------- Verify that the dependency was recorded, and did not keep the path after resolution ---------- AzToolsFramework::AssetDatabase::ProductDependencyDatabaseEntryContainer dependencyContainer; @@ -2633,13 +2555,9 @@ void MultiplatformPathDependencyTest::SetUp() m_config->EnablePlatform({ "provo",{ "console" } }, true); QDir tempPath(m_tempDir.path()); - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, m_config->GetEnabledPlatforms() )); - - // add a scan folder that has an output prefix: - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", "redirected", false, true, m_config->GetEnabledPlatforms())); - - //adding another scan folder with an output prefix - m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", "dummy", false, true, m_config->GetEnabledPlatforms())); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, m_config->GetEnabledPlatforms() )); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", false, true, m_config->GetEnabledPlatforms())); + m_config->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", false, true, m_config->GetEnabledPlatforms())); m_assetProcessorManager = nullptr; // we need to destroy the previous instance before creating a new one m_assetProcessorManager = AZStd::make_unique(m_config.get()); @@ -3741,577 +3659,6 @@ TEST_F(AssetProcessorManagerTest, JobDependencyOrderOnce_MultipleJobs_EmitOK) EXPECT_EQ(jobDetails[1].m_jobDependencyList[0].m_jobDependency.m_sourceFile.m_sourceFileDependencyPath, secondRelSourceFile); // there should only be one job dependency } - - - -// ------------------------------------------------------------------------------------------------------------ -// The same suite of tests as above, but using a folder with an output prefix instead -// ------------------------------------------------------------------------------------------------------------ - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_BasicTest) -{ - // make sure that if we publish some dependencies, they appear: - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - UnitTestUtils::CreateDummyFile(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - ASSERT_STREQ(scanFolder->GetOutputPrefix().toUtf8().constData(), "redirected"); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Job, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfB] = { watchFolderPath, "b.txt", "redirected/b.txt" }; - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfD] = { watchFolderPath, "d.txt", "redirected/d.txt" }; - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - - job.m_jobsToAnalyze.push_back(newDetails); - - // this is the one line that this unit test is really testing: - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - - // the rest of this test now performs a series of queries to verify the database was correctly set. - // this indirectly verifies the QueryAbsolutePathDependenciesRecursive function also but it has its own dedicated tests, above. - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 5); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); - - // make sure the corresponding values in the map are also correct (ie, database path only) - EXPECT_STREQ(deps[absPath.toUtf8().constData()].c_str(), "redirected/outputprefixtest.txt"); - EXPECT_STREQ(deps[dependsOnFile1_Source.toUtf8().constData()].c_str(), "redirected/a.txt"); - EXPECT_STREQ(deps[dependsOnFile2_Source.toUtf8().constData()].c_str(), "redirected/b.txt"); - EXPECT_STREQ(deps[dependsOnFile1_Job.toUtf8().constData()].c_str(), "redirected/c.txt"); - EXPECT_STREQ(deps[dependsOnFile2_Job.toUtf8().constData()].c_str(), "redirected/d.txt"); -} - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_UpdateTest) -{ - // make sure that if we remove dependencies that are published, they disappear. - // so the first part of this test is to put some data in there, the same as before: - - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - UnitTestUtils::CreateDummyFile(absPath); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files: - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Job, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfB] = { watchFolderPath, "b.txt", "redirected/b.txt" }; - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfD] = { watchFolderPath, "d.txt", "redirected/d.txt" }; - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - job.m_jobsToAnalyze.push_back(newDetails); - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - - // in this test, though, we delete some after pushing them in there, and update it again: - job.m_sourceFileDependencies.pop_back(); // erase the 'b' dependency. - job.m_jobsToAnalyze[0].m_jobDependencyList.pop_back(); // erase the 'd' dependency, which is by guid. - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - - // now make sure that the same queries omit b and d: - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); -} - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByUuid) -{ - // make sure that if we publish some dependencies, they do not appear if missing. - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - UnitTestUtils::CreateDummyFile(absPath); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files: - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - - // in this case, we are only creating file b, and d (which are input by UUID) - // and we will be missing a and c, which are input by name. - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfB] = { watchFolderPath, "b.txt", "redirected/b.txt" }; - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfD] = { watchFolderPath, "d.txt", "redirected/d.txt" }; - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - - job.m_jobsToAnalyze.push_back(newDetails); - - // this is the one line that this unit test is really testing: - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - - // the rest of this test now performs a series of queries to verify the database was correctly set. - // this indirectly verifies the QueryAbsolutePathDependenciesRecursive function also but it has its own dedicated tests, above. - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); // b - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); // d - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - // the above function includes the actual source, as an absolute path. - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); // b - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); // d -} - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByName) -{ - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - UnitTestUtils::CreateDummyFile(absPath); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files: - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - - // in this case, we are only creating file a, and c, which are input by name - // and we we will be making b and d missing, which are input by UUID. - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - - job.m_jobsToAnalyze.push_back(newDetails); - - // this is the one line that this unit test is really testing: - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - - // the rest of this test now performs a series of queries to verify the database was correctly set. - // this indirectly verifies the QueryAbsolutePathDependenciesRecursive function also but it has its own dedicated tests, above. - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - - // we should find all of the deps, but none of the placeholder - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); // a - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); // c - - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); // a - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); // c -} - - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByUuid_UpdatesWhenTheyAppear) -{ - // this test makes sure that when files DO appear that were previously placeholders, the database is updated - // so the strategy here is to have files b, and d missing, which are declared as dependencies by UUID. - // then, we make them re-appear later, and check that the database has updated them appropriately. - - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - UnitTestUtils::CreateDummyFile(absPath); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files: - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - - // in this case, we are only creating file b, and d, which are addressed by UUID. - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - - job.m_jobsToAnalyze.push_back(newDetails); - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - // so at this point, the database should be in the same state as after the UpdateSourceFileDependenciesDatabase_MissingFiles_ByUuid test - // which was already verified, by that test. - - // now that the database has placeholders, we expect them to resolve themselves when we provide the actual files: - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Source, QString("tempdata\n"))); - // now that B exists, we pretend a job came in to process B. (it doesn't require dependencies to be declared) - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfB] = { watchFolderPath, "b.txt", "redirected/b.txt" }; - - AssetProcessorManager::JobToProcessEntry job2; - job2.m_sourceFileInfo.m_databasePath = "redirected/b.txt"; - job2.m_sourceFileInfo.m_pathRelativeToScanFolder = "b.txt"; - job2.m_sourceFileInfo.m_scanFolder = scanFolder; - job2.m_sourceFileInfo.m_uuid = uuidOfB; - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job2); - - // b should no longer be a placeholder, so both A and B should be present as their actual path. - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); // a - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); // b - - // but d should still be a placeholder, since we have not declared it yet. - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); // c - - // in addition, we expect to have the original file that depends on B appear in the analysis queue, since something it depends on appeared: - QString normalizedSourcePath = AssetUtilities::NormalizeFilePath(absPath); - EXPECT_TRUE(m_assetProcessorManager->m_alreadyActiveFiles.contains(normalizedSourcePath)); - - // now make d exist too and pretend a job came in to process it: - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Job, QString("tempdata\n"))); // create file D - AssetProcessorManager::JobToProcessEntry job3; - job3.m_sourceFileInfo.m_databasePath = "redirected/d.txt"; - job3.m_sourceFileInfo.m_pathRelativeToScanFolder = "d.txt"; - job3.m_sourceFileInfo.m_scanFolder = scanFolder; - job3.m_sourceFileInfo.m_uuid = uuidOfD; - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfD] = { watchFolderPath, "d.txt", "redirected/d.txt" }; - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job3); - - // all files should now be present: - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - EXPECT_EQ(deps.size(), 5); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); -} - - -TEST_F(AssetProcessorManagerTest, UpdateSourceFileDependenciesDatabase_WithOutputPrefix_MissingFiles_ByName_UpdatesWhenTheyAppear) -{ - // this test makes sure that when files DO appear that were previously placeholders, the database is updated - // so the strategy here is to have files a, and c missing, which are declared as dependencies by name. - // then, we make them re-appear later, and check that the database has updated them appropriately. - - AZ::Uuid dummyBuilderUUID = AZ::Uuid::CreateRandom(); - QDir tempPath(m_tempDir.path()); - QString absPath(tempPath.absoluteFilePath("subfolder2/outputprefixtest.txt")); - UnitTestUtils::CreateDummyFile(absPath); - QString inputDatabasePath = "redirected/outputprefixtest.txt"; - QString watchFolderPath = tempPath.absoluteFilePath("subfolder2"); - const ScanFolderInfo* scanFolder = m_config->GetScanFolderByPath(watchFolderPath); - ASSERT_NE(scanFolder, nullptr); - - // the above file (assetProcessorManagerTest.txt) will depend on these four files: - QString dependsOnFile1_Source = tempPath.absoluteFilePath("subfolder2/a.txt"); - QString dependsOnFile2_Source = tempPath.absoluteFilePath("subfolder2/b.txt"); - QString dependsOnFile1_Job = tempPath.absoluteFilePath("subfolder2/c.txt"); - QString dependsOnFile2_Job = tempPath.absoluteFilePath("subfolder2/d.txt"); - - // in this case, we are only creating file b, and d, which are addressed by UUID. - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Source, QString("tempdata\n"))); - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile2_Job, QString("tempdata\n"))); - - // construct the dummy job to feed to the database updater function: - AssetProcessorManager::JobToProcessEntry job; - job.m_sourceFileInfo.m_databasePath = inputDatabasePath; - job.m_sourceFileInfo.m_pathRelativeToScanFolder = "outputprefixtest.txt"; - job.m_sourceFileInfo.m_scanFolder = scanFolder; - job.m_sourceFileInfo.m_uuid = AssetUtilities::CreateSafeSourceUUIDFromName(job.m_sourceFileInfo.m_databasePath.toUtf8().data()); - - // note that we have to "prime" the map with the UUIDs to the source info for this to work: - AZ::Uuid uuidOfB = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/b.txt"); - AZ::Uuid uuidOfD = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/d.txt"); - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfB] = { watchFolderPath, "b.txt", "redirected/b.txt" }; - m_assetProcessorManager->m_sourceUUIDToSourceInfoMap[uuidOfD] = { watchFolderPath, "d.txt", "redirected/d.txt" }; - - // each file we will take a different approach to publishing: rel path, and UUID: - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "a.txt", AZ::Uuid::CreateNull() })); - job.m_sourceFileDependencies.push_back(AZStd::make_pair(dummyBuilderUUID, { "", uuidOfB })); - - // it is currently assumed that the only fields that we care about in JobDetails is the builder busId and the job dependencies themselves: - JobDetails newDetails; - newDetails.m_assetBuilderDesc.m_busId = dummyBuilderUUID; - - AssetBuilderSDK::SourceFileDependency dep1 = { "c.txt", AZ::Uuid::CreateNull() }; - AssetBuilderSDK::JobDependency jobDep1("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep1); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep1)); - - AssetBuilderSDK::SourceFileDependency dep2 = { "",uuidOfD }; - AssetBuilderSDK::JobDependency jobDep2("pc build", "pc", AssetBuilderSDK::JobDependencyType::Order, dep2); - newDetails.m_jobDependencyList.push_back(JobDependencyInternal(jobDep2)); - - job.m_jobsToAnalyze.push_back(newDetails); - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job); - // so at this point, the database should be in the same state as after the UpdateSourceFileDependenciesDatabase_MissingFiles_ByUuid test - // which was already verified, by that test. - - // now that the database has placeholders, we expect them to resolve themselves when we provide the actual files: - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Source, QString("tempdata\n"))); - // now that A exists, we pretend a job came in to process a. (it doesn't require dependencies to be declared) - AZ::Uuid uuidOfA = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/a.txt"); - AssetProcessorManager::JobToProcessEntry job2; - job2.m_sourceFileInfo.m_databasePath = "redirected/a.txt"; - job2.m_sourceFileInfo.m_pathRelativeToScanFolder = "a.txt"; - job2.m_sourceFileInfo.m_scanFolder = scanFolder; - job2.m_sourceFileInfo.m_uuid = uuidOfA; - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job2); - - // a should no longer be a placeholder - AssetProcessor::SourceFilesForFingerprintingContainer deps; - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_SourceToSource, false); - EXPECT_EQ(deps.size(), 3); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); // a - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); // b - deps.clear(); - - // c should still be a placeholder and thus should not appear in the results. - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_JobToJob, false); - EXPECT_EQ(deps.size(), 2); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); // d - - // in addition, we expect to have the original file that depends on A appear in the analysis queue, since something it depends on appeared: - QString normalizedSourcePath = AssetUtilities::NormalizeFilePath(absPath); - EXPECT_TRUE(m_assetProcessorManager->m_alreadyActiveFiles.contains(normalizedSourcePath)); - - // now make c exist too and pretend a job came in to process it: - ASSERT_TRUE(UnitTestUtils::CreateDummyFile(dependsOnFile1_Job, QString("tempdata\n"))); - AZ::Uuid uuidOfC = AssetUtilities::CreateSafeSourceUUIDFromName("redirected/c.txt"); - AssetProcessorManager::JobToProcessEntry job3; - job3.m_sourceFileInfo.m_databasePath = "redirected/c.txt"; - job3.m_sourceFileInfo.m_pathRelativeToScanFolder = "c.txt"; - job3.m_sourceFileInfo.m_scanFolder = scanFolder; - job3.m_sourceFileInfo.m_uuid = uuidOfC; - - m_assetProcessorManager.get()->UpdateSourceFileDependenciesDatabase(job3); - - // all files should now be present: - deps.clear(); - m_assetProcessorManager.get()->QueryAbsolutePathDependenciesRecursive(inputDatabasePath, deps, AzToolsFramework::AssetDatabase::SourceFileDependencyEntry::DEP_Any, false); - EXPECT_EQ(deps.size(), 5); - EXPECT_NE(deps.find(absPath.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Source.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile1_Job.toUtf8().constData()), deps.end()); - EXPECT_NE(deps.find(dependsOnFile2_Job.toUtf8().constData()), deps.end()); -} - TEST_F(AssetProcessorManagerTest, SourceFile_With_NonASCII_Characters_Fail_Job_OK) { // This test ensures that asset processor manager detects a source file that has non-ASCII characters diff --git a/Code/Tools/AssetProcessor/native/tests/assetscanner/AssetScannerTests.cpp b/Code/Tools/AssetProcessor/native/tests/assetscanner/AssetScannerTests.cpp index f1e125e0d8..1ad868421b 100644 --- a/Code/Tools/AssetProcessor/native/tests/assetscanner/AssetScannerTests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/assetscanner/AssetScannerTests.cpp @@ -74,10 +74,10 @@ namespace AssetProcessor m_platformConfig.reset(new AssetProcessor::PlatformConfiguration()); AZStd::vector platforms; m_platformConfig.get()->PopulatePlatformsForScanFolder(platforms); - // PATH DisplayName PortKey outputfolder root recurse platforms - m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "", "ap1", "", true, false, platforms)); - m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "ap2", "", false, true, platforms)); - m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "ap3", "", false, true, platforms)); + // PATH DisplayName PortKey root recurse platforms + m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "", "ap1", true, false, platforms)); + m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "ap2", false, true, platforms)); + m_platformConfig.get()->AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "ap3", false, true, platforms)); m_assetScanner.reset(new AssetScanner_Test(m_platformConfig.get())); diff --git a/Code/Tools/AssetProcessor/native/tests/platformconfiguration/platformconfigurationtests.cpp b/Code/Tools/AssetProcessor/native/tests/platformconfiguration/platformconfigurationtests.cpp index 076a1c2448..31e4996b1e 100644 --- a/Code/Tools/AssetProcessor/native/tests/platformconfiguration/platformconfigurationtests.cpp +++ b/Code/Tools/AssetProcessor/native/tests/platformconfiguration/platformconfigurationtests.cpp @@ -170,7 +170,7 @@ TEST_F(PlatformConfigurationUnitTests, TestReadScanFolderRoot_FromSettingsRegist EXPECT_TRUE(settingsRegistry->Get(scanOrder, AZ::SettingsRegistryInterface::FixedValueString(AssetProcessor::AssetProcessorSettingsKey) + "/ScanFolder SettingsRegistryTest/order")); - // These test values come from the /Engine/Registry/AssetProcessorPlatformConfig.setreg file + // These test values come from the /Registry/AssetProcessorPlatformConfig.setreg file EXPECT_STREQ("_TestPath", watchPath.c_str()); EXPECT_FALSE(recurseScanFolder); EXPECT_EQ(20000, scanOrder); @@ -200,7 +200,7 @@ public: m_config.reset(); PlatformConfigurationUnitTests::TearDown(); } - + AZStd::vector m_platforms; AZStd::unique_ptr m_config; AZStd::unique_ptr m_tempEngineRoot = nullptr; // this actually creates the folder in its constructor, so hold off until setup.. @@ -213,8 +213,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetScanFolderForFile_Roo using namespace AzToolsFramework::AssetSystem; using namespace AssetProcessor; - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", "", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor", "sf2", "", false, true, m_platforms), true); // a child folder that exists within that scan folder. + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor", "sf2", false, true, m_platforms), true); // a child folder that exists within that scan folder. const ScanFolderInfo* info = m_config->GetScanFolderForFile(m_tempPath.filePath("scanfolder1/something.txt")); @@ -229,8 +229,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetScanFolderForFile_Sub using namespace AzToolsFramework::AssetSystem; using namespace AssetProcessor; - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", "", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor ScanFolder", "sf2", "", false, true, m_platforms), true); // a child folder that exists within that scan folder. + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor ScanFolder", "sf2", false, true, m_platforms), true); // a child folder that exists within that scan folder. const ScanFolderInfo* info = m_config->GetScanFolderForFile(m_tempPath.filePath("scanfolder1/Editor/something.txt")); @@ -254,8 +254,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetOverridingFile_Exists QString differentCaseDummyFileName = m_tempPath.absoluteFilePath("scanfolder2/testcase.txt"); UnitTestUtils::CreateDummyFile(caseSensitiveDummyFileName, QString("testcase1\n")); UnitTestUtils::CreateDummyFile(differentCaseDummyFileName, QString("testcase2\n")); - m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", "", false, true, m_platforms), true); - m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", "", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", false, true, m_platforms), true); // Perform the test by asking it whether anyone overrides "testcase" (lowercase) in scanfolder 2. QString overrider = m_config->GetOverridingFile("testcase.txt", scanfolder2Path); @@ -278,9 +278,9 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetOverridingFile_Exists QString differentCaseDummyFileName = m_tempPath.absoluteFilePath("scanfolder2/testcase.txt"); UnitTestUtils::CreateDummyFile(caseSensitiveDummyFileName, QString("testcase1\n")); UnitTestUtils::CreateDummyFile(differentCaseDummyFileName, QString("testcase2\n")); - m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", "", false, true, m_platforms), true); - m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", "", false, true, m_platforms), true); - + m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", false, true, m_platforms), true); + // Perform the test by asking it whether the existing real winning file is being overridden by anyone. QString overrider = m_config->GetOverridingFile("TestCase.tXt", scanfolder1Path); @@ -297,8 +297,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetOverridingFile_DoesNo QString scanfolder1Path = m_tempPath.filePath("scanfolder1"); QString scanfolder2Path = m_tempPath.filePath("scanfolder2"); - m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", "", false, true, m_platforms), true); - m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", "", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", false, true, m_platforms), true); // Perform the test by asking it whether anyone overrides "testcase" (lowercase) in scanfolder 2. QString overrider = m_config->GetOverridingFile("doesntExist.txt", scanfolder2Path); @@ -314,8 +314,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, FindFirstMatchingFile_Do // create two scan folders, since its order dependent, the ScanFolder1 is the "winner" in tie breakers. QString scanfolder1Path = m_tempPath.filePath("scanfolder1"); QString scanfolder2Path = m_tempPath.filePath("scanfolder2"); - m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", "", false, true, m_platforms), true); - m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", "", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder1Path, "ScanFolder1", "sf1", false, true, m_platforms), true); + m_config->AddScanFolder(ScanFolderInfo(scanfolder2Path, "ScanFolder2", "sf2", false, true, m_platforms), true); // Perform the test by asking it whether anyone overrides "testcase" (lowercase) in scanfolder 2. QString foundFile = m_config->FindFirstMatchingFile("doesntExist.txt"); @@ -325,7 +325,7 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, FindFirstMatchingFile_Do // note that we do not guarantee that FindFirstMatchingFile always returns the correct case, as it is a super hot path // function, and the only time case could be incorrect is in the situation where a file with different case overrides -// an underlying file, ie, +// an underlying file, ie, // Engine/EngineAssets/Textures/StartScreen.tif // MyGame/EngineAssets/textures/startscreen.tif <-- would override the above because game has higher / more important priority. @@ -335,8 +335,8 @@ TEST_F(PlatformConfigurationUnitTests_OnePCHostFixture, GetScanFolderForFile_Sub using namespace AzToolsFramework::AssetSystem; using namespace AssetProcessor; - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", "", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive - m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor ScanFolder", "sf2", "", false, true, m_platforms), true); // a child folder that exists within that scan folder. + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1"), "ScanFolder1", "sf1", true, false, m_platforms), true); // a root folder that has watched subfolders, not recursive + m_config->AddScanFolder(ScanFolderInfo(m_tempPath.filePath("scanfolder1/Editor"), "Editor ScanFolder", "sf2", false, true, m_platforms), true); // a child folder that exists within that scan folder. const ScanFolderInfo* info = m_config->GetScanFolderForFile(m_tempPath.filePath("scanfolder1/Editor")); ASSERT_TRUE(info); @@ -363,20 +363,17 @@ TEST_F(PlatformConfigurationUnitTests, TestFailReadConfigFile_RegularScanfolder) ASSERT_EQ(config.GetScanFolderCount(), 3); // the two, and then the one that has the same data as prior but different identifier. QString scanName = AssetUtilities::ComputeProjectPath() + " Scan Folder"; ASSERT_EQ(config.GetScanFolderAt(0).GetDisplayName(), scanName); - ASSERT_EQ(config.GetScanFolderAt(0).GetOutputPrefix(), QString()); ASSERT_EQ(config.GetScanFolderAt(0).RecurseSubFolders(), true); ASSERT_EQ(config.GetScanFolderAt(0).GetOrder(), 0); ASSERT_EQ(config.GetScanFolderAt(0).GetPortableKey(), QString("Game")); ASSERT_EQ(config.GetScanFolderAt(1).GetDisplayName(), QString("FeatureTests")); - ASSERT_EQ(config.GetScanFolderAt(1).GetOutputPrefix(), QString("featuretestsoutputfolder")); // to prove its not related to display name ASSERT_EQ(config.GetScanFolderAt(1).RecurseSubFolders(), false); ASSERT_EQ(config.GetScanFolderAt(1).GetOrder(), 5000); // this proves that the featuretests name is used instead of the output prefix ASSERT_EQ(config.GetScanFolderAt(1).GetPortableKey(), QString("FeatureTests")); ASSERT_EQ(config.GetScanFolderAt(2).GetDisplayName(), QString("FeatureTests2")); - ASSERT_EQ(config.GetScanFolderAt(2).GetOutputPrefix(), QString("featuretestsoutputfolder")); // to prove its not related to display name ASSERT_EQ(config.GetScanFolderAt(2).RecurseSubFolders(), false); ASSERT_EQ(config.GetScanFolderAt(2).GetOrder(), 6000); // this proves that the featuretests name is used instead of the output prefix @@ -613,7 +610,6 @@ TEST_F(PlatformConfigurationUnitTests, Test_GemHandling) ASSERT_EQ(2, config.GetScanFolderCount()); EXPECT_FALSE(config.GetScanFolderAt(0).IsRoot()); - EXPECT_TRUE(config.GetScanFolderAt(0).GetOutputPrefix().isEmpty()); EXPECT_TRUE(config.GetScanFolderAt(0).RecurseSubFolders()); // the first one is a game gem, so its order should be above 1 but below 100. EXPECT_GE(config.GetScanFolderAt(0).GetOrder(), 100); @@ -623,7 +619,6 @@ TEST_F(PlatformConfigurationUnitTests, Test_GemHandling) expectedScanFolder = tempPath.absoluteFilePath("Gems/LmbrCentral/v2/Assets"); EXPECT_FALSE(config.GetScanFolderAt(1).IsRoot() ); - EXPECT_TRUE(config.GetScanFolderAt(1).GetOutputPrefix().isEmpty()); EXPECT_TRUE(config.GetScanFolderAt(1).RecurseSubFolders()); EXPECT_GT(config.GetScanFolderAt(1).GetOrder(), config.GetScanFolderAt(0).GetOrder()); EXPECT_EQ(0, config.GetScanFolderAt(1).ScanPath().compare(expectedScanFolder, Qt::CaseInsensitive)); diff --git a/Code/Tools/AssetProcessor/native/tests/resourcecompiler/RCControllerTest.cpp b/Code/Tools/AssetProcessor/native/tests/resourcecompiler/RCControllerTest.cpp index ac78db6c3d..b08fbc28d5 100644 --- a/Code/Tools/AssetProcessor/native/tests/resourcecompiler/RCControllerTest.cpp +++ b/Code/Tools/AssetProcessor/native/tests/resourcecompiler/RCControllerTest.cpp @@ -247,54 +247,3 @@ TEST_F(RCcontrollerTest_Simple, SameJobIsCompletedMultipleTimes_CompletesWithout ASSERT_EQ(m_errorAbsorber->m_numAssertsAbsorbed, 4); // Expected that there are 4 errors related to the files not existing on disk. Error message: GenerateFingerprint was called but no input files were requested for fingerprinting. ASSERT_EQ(m_errorAbsorber->m_numErrorsAbsorbed, 0); } - -// makes sure to expose parts of RCJob to the unit test -class TestRCJob : public AssetProcessor::RCJob -{ - friend class GTEST_TEST_CLASS_NAME_(RCcontrollerTest, BuilderSDK_API_ProcessJob_HasValidParameters_WithOutputFolder); -public: - explicit TestRCJob(QObject* parent = 0) : AssetProcessor::RCJob(parent) {}; -}; - -TEST_F(RCcontrollerTest, BuilderSDK_API_ProcessJob_HasValidParameters_WithOutputFolder) -{ - // this test makes sure that the BuilderSDK API is not exposed to any database internals. - - AZ::Uuid sourceUUID = AZ::Uuid::CreateRandom(); - AZ::Uuid builderGuid = AZ::Uuid::CreateRandom(); - - AssetBuilderSDK::ProcessJobRequest req; - { - // note that this scope is intentional. job.Init(jobDetails) below is actually a by-ref operation that destroys JobDetails in the process. - AssetProcessor::JobDetails jobDetails; - - // the crux of this test: the database source name differs from the relative path to watch folder: - jobDetails.m_jobEntry.m_pathRelativeToWatchFolder = "SomeThing.tif"; // case sensitive - - // Note that while this is an OS-SPECIFIC path, this unit test does not actually invoke the file system at all - // and only operates on in-memory structures, so it should work on every platform. - jobDetails.m_jobEntry.m_watchFolderPath = "c:/test/a/B/c"; // just to make sure case is preserved - jobDetails.m_jobEntry.m_databaseSourceName = "somepath/SomeThing.tif"; // case sensitive but outputprefixes are generally lowcase - - jobDetails.m_jobEntry.m_sourceFileUUID = sourceUUID; - jobDetails.m_jobEntry.m_platformInfo = { "ios",{ "mobile", "renderer" } }; - jobDetails.m_jobEntry.m_jobRunKey = 1; - jobDetails.m_jobEntry.m_jobKey = "tiff"; - jobDetails.m_jobEntry.m_builderGuid = builderGuid; - - TestRCJob job; - job.Init(jobDetails); - job.PopulateProcessJobRequest(req); - } - - EXPECT_STREQ(req.m_sourceFile.c_str(), "SomeThing.tif"); - EXPECT_STREQ(req.m_watchFolder.c_str(), "c:/test/a/B/c"); - - // the crux of the test, tested: make sure that it does not contain 'somepath' in there just becuase its part of the Database Source Name. - EXPECT_STREQ(req.m_fullPath.c_str(), "c:/test/a/B/c/SomeThing.tif"); - EXPECT_EQ(req.m_builderGuid, builderGuid); - EXPECT_TRUE(req.m_platformInfo.HasTag("renderer")); - EXPECT_TRUE(req.m_platformInfo.HasTag("mobile")); - EXPECT_STREQ(req.m_platformInfo.m_identifier.c_str(), "ios"); - EXPECT_EQ(req.m_sourceFileUUID, sourceUUID); -} diff --git a/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeItemData.cpp b/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeItemData.cpp index 2cf0aa8ffc..f8c58b7866 100644 --- a/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeItemData.cpp +++ b/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeItemData.cpp @@ -54,13 +54,6 @@ namespace AssetProcessor QDir scanFolder(file->m_scanFolderInfo.m_scanFolder.c_str()); QString sourceName = file->m_sourceInfo.m_sourceName.c_str(); - // If a scan folder has a prefix, then source files in those scan folders will have that - // prefix prepended in the asset database. Strip that prefix off for building the actual absolute path to the file. - if (!file->m_scanFolderInfo.m_outputPrefix.empty()) - { - QRegExp prefixRemovalRegex(QString("^%1/").arg(file->m_scanFolderInfo.m_outputPrefix.c_str())); - sourceName.remove(prefixRemovalRegex); - } return scanFolder.filePath(sourceName); } diff --git a/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeModel.cpp b/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeModel.cpp index 4d7711acad..dda0a58837 100644 --- a/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeModel.cpp +++ b/Code/Tools/AssetProcessor/native/ui/SourceAssetTreeModel.cpp @@ -14,6 +14,7 @@ #include "SourceAssetTreeItemData.h" #include +#include #include @@ -62,19 +63,8 @@ namespace AssetProcessor } - AZStd::string fullPath = source.m_sourceName; + auto fullPath = AZ::IO::Path(scanFolder.m_scanFolder) / source.m_sourceName; - // The source assets should look like they do on disk. - // If the scan folder has an output prefix, strip it from the source file's path in the database, before - // the scan folder path is prepended to the source file. - if (!scanFolder.m_outputPrefix.empty()) - { - AZStd::string prefixPath = scanFolder.m_outputPrefix; - AzFramework::StringFunc::Append(prefixPath, AZ_CORRECT_DATABASE_SEPARATOR); - AzFramework::StringFunc::Replace(fullPath, prefixPath.c_str(), "", false, true); - } - - AzFramework::StringFunc::AssetDatabasePath::Join(scanFolder.m_scanFolder.c_str(), fullPath.c_str(), fullPath, true, false); // It's common for Open 3D Engine game projects and scan folders to be in a subfolder // of the engine install. To improve readability of the source files, strip out @@ -85,7 +75,7 @@ namespace AssetProcessor } if (m_assetRootSet) { - AzFramework::StringFunc::Replace(fullPath, m_assetRoot.absolutePath().toUtf8(), ""); + AzFramework::StringFunc::Replace(fullPath.Native(), m_assetRoot.absolutePath().toUtf8(), ""); } diff --git a/Code/Tools/AssetProcessor/native/unittests/AssetProcessingStateDataUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/AssetProcessingStateDataUnitTests.cpp index 1ece24210a..da4ddd6761 100644 --- a/Code/Tools/AssetProcessor/native/unittests/AssetProcessingStateDataUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/AssetProcessingStateDataUnitTests.cpp @@ -148,7 +148,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon scanFolders.clear(); //add a scanfolder - scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "rootportkey", ""); + scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "rootportkey"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(scanFolder)); if (scanFolder.m_scanFolderID == AzToolsFramework::AssetDatabase::InvalidEntryId) { @@ -158,7 +158,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon //add the same folder again, should not add another because it already exists, so we should get the same id // not only that, but the path should update. - ScanFolderDatabaseEntry dupeScanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev2", "dev", "rootportkey", ""); + ScanFolderDatabaseEntry dupeScanFolder("c:/O3DE/dev2", "dev", "rootportkey"); dupeScanFolder.m_scanFolderID = AzToolsFramework::AssetDatabase::InvalidEntryId; UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(dupeScanFolder)); if (!(dupeScanFolder == scanFolder)) @@ -200,7 +200,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon } //add another folder - ScanFolderDatabaseEntry gameScanFolderEntry("c:/O3DE/game", "game", "gameportkey", ""); + ScanFolderDatabaseEntry gameScanFolderEntry("c:/O3DE/game", "game", "gameportkey"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(gameScanFolderEntry)); if (gameScanFolderEntry.m_scanFolderID == AzToolsFramework::AssetDatabase::InvalidEntryId || gameScanFolderEntry.m_scanFolderID == scanFolder.m_scanFolderID) @@ -230,7 +230,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon UNIT_TEST_EXPECT_TRUE(ScanFoldersContainScanFolderID(scanFolders, scanFolder.m_scanFolderID)); //add another folder again - gameScanFolderEntry = ScanFolderDatabaseEntry("c:/O3DE/game", "game", "gameportkey2", ""); + gameScanFolderEntry = ScanFolderDatabaseEntry("c:/O3DE/game", "game", "gameportkey2"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(gameScanFolderEntry)); if (gameScanFolderEntry.m_scanFolderID == AzToolsFramework::AssetDatabase::InvalidEntryId || gameScanFolderEntry.m_scanFolderID == scanFolder.m_scanFolderID) @@ -258,7 +258,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon /////////////////////////////////////////////////////////// //setup for sources tests //for the rest of the test lets add the original scan folder - scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "devkey2", ""); + scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "devkey2"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(scanFolder)); /////////////////////////////////////////////////////////// @@ -370,7 +370,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon UNIT_TEST_EXPECT_TRUE(SourcesContainSourceGuid(sources, source.m_sourceGuid)); //add the same source again, but change the scan folder. This should NOT add a new source - even if we don't know what the sourceID is: - ScanFolderDatabaseEntry scanfolder2 = ScanFolderDatabaseEntry("c:/O3DE/dev2", "dev2", "devkey3", ""); + ScanFolderDatabaseEntry scanfolder2 = ScanFolderDatabaseEntry("c:/O3DE/dev2", "dev2", "devkey3"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(scanfolder2)); SourceDatabaseEntry dupeSource2(source); @@ -554,7 +554,7 @@ void AssetProcessingStateDataUnitTest::DataTest(AssetProcessor::AssetDatabaseCon //////////////////////////////////////////////////////////////// //Setup for jobs tests by having a scan folder and some sources //Add a scan folder - scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "devkey3", ""); + scanFolder = ScanFolderDatabaseEntry("c:/O3DE/dev", "dev", "devkey3"); UNIT_TEST_EXPECT_TRUE(stateData->SetScanFolder(scanFolder)); //Add some sources diff --git a/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.cpp index a336997068..5940caadb7 100644 --- a/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.cpp @@ -46,7 +46,6 @@ namespace AssetProcessor friend class AssetProcessorManagerUnitTests; friend class AssetProcessorManagerUnitTests_JobKeys; friend class AssetProcessorManagerUnitTests_JobDependencies_Fingerprint; - friend class AssetProcessorManagerUnitTests_CheckOutputFolders; #endif // AZ_TRAIT_DISABLE_FAILED_ASSET_PROCESSOR_TESTS public: @@ -64,7 +63,6 @@ namespace AssetProcessor REGISTER_UNIT_TEST(AssetProcessorManagerUnitTests) REGISTER_UNIT_TEST(AssetProcessorManagerUnitTests_JobKeys) REGISTER_UNIT_TEST(AssetProcessorManagerUnitTests_JobDependencies_Fingerprint) - REGISTER_UNIT_TEST(AssetProcessorManagerUnitTests_CheckOutputFolders) #endif // AZ_TRAIT_DISABLE_FAILED_ASSET_PROCESSOR_TESTS @@ -247,11 +245,11 @@ namespace AssetProcessor AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); // PATH DisplayName PortKey outputfolder root recurse platforms order - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", "", false, false, platforms, -6)); // subfolder 4 overrides subfolder3 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", "", false, false, platforms,-5)); // subfolder 3 overrides subfolder2 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", "", false, true, platforms, -2)); // subfolder 2 overrides subfolder1 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, platforms, -1)); // subfolder1 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", "", true, false, platforms, 0)); // add the root + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", false, false, platforms, -6)); // subfolder 4 overrides subfolder3 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", false, false, platforms,-5)); // subfolder 3 overrides subfolder2 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", false, true, platforms, -2)); // subfolder 2 overrides subfolder1 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, platforms, -1)); // subfolder1 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", true, false, platforms, 0)); // add the root config.AddMetaDataType("exportsettings", QString()); @@ -2325,8 +2323,8 @@ namespace AssetProcessor AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); // PATH DisplayName PortKey outputfolder root recurse order - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, platforms,-1)); // subfolder1 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", "", true, false, platforms, 0)); // add the root + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, platforms,-1)); // subfolder1 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", true, false, platforms, 0)); // add the root AssetProcessorManager_Test apm(&config); @@ -2534,11 +2532,11 @@ namespace AssetProcessor AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); // PATH DisplayName PortKey outputfolder root recurse platforms order - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", "", false, false, platforms, -6)); // subfolder 4 overrides subfolder3 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", "", false, false, platforms, -5)); // subfolder 3 overrides subfolder2 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", "", false, true, platforms, -2)); // subfolder 2 overrides subfolder1 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, platforms, -1)); // subfolder1 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", "", true, false, platforms, 0)); // add the root + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", false, false, platforms, -6)); // subfolder 4 overrides subfolder3 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "subfolder3", "subfolder3", false, false, platforms, -5)); // subfolder 3 overrides subfolder2 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "subfolder2", "subfolder2", false, true, platforms, -2)); // subfolder 2 overrides subfolder1 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, platforms, -1)); // subfolder1 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", true, false, platforms, 0)); // add the root { // create this, which will write those scan folders into the db as-is @@ -2584,13 +2582,13 @@ namespace AssetProcessor config2.PopulatePlatformsForScanFolder(platforms2); // PATH DisplayName PortKey outputfolder root recurse platforms order // case 1: same absolute path, but the same portable key - should use same ID as before. - config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", "", false, false, platforms2, -6)); // subfolder 4 overrides subfolder3 + config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "subfolder4", "subfolder4", false, false, platforms2, -6)); // subfolder 4 overrides subfolder3 // case 2: A new absolute path, but same portable key - should use same id as before - config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("newfolder3"), "subfolder3", "subfolder3", "", false, false, platforms2, -5)); // subfolder 3 overrides subfolder2 + config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("newfolder3"), "subfolder3", "subfolder3", false, false, platforms2, -5)); // subfolder 3 overrides subfolder2 // case 3: same absolute path, new portable key - should use a new ID - config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder3", "newfolder3", "", false, false, platforms2, -5)); // subfolder 3 overrides subfolder2 + config2.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder3", "newfolder3", false, false, platforms2, -5)); // subfolder 3 overrides subfolder2 // case 4: subfolder2 is missing - it should be gone. @@ -2775,8 +2773,8 @@ namespace AssetProcessor AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); // PATH DisplayName PortKey outputfolder root recurse order - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "", false, true, platforms, -1)); // subfolder1 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", "", true, false, platforms, 0)); // add the root + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", false, true, platforms, -1)); // subfolder1 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "tempfolder", true, false, platforms, 0)); // add the root AssetProcessorManager_Test apm(&config); @@ -3083,255 +3081,6 @@ namespace AssetProcessor Q_EMIT UnitTestPassed(); } - void AssetProcessorManagerUnitTests_CheckOutputFolders::StartTest() - { - MockAssetBuilderInfoHandler mockAssetBuilderInfoHandler; - - QDir oldRoot; - AssetUtilities::ComputeAssetRoot(oldRoot); - AssetUtilities::ResetAssetRoot(); - - // the canonicalization of the path here is to get around the fact that on some platforms - // the "temporary" folder location could be junctioned into some other folder and getting "QDir::current()" - // and other similar functions may actually return a different string but still be referring to the same folder - QTemporaryDir dir; - QDir tempPath(dir.path()); - QString canonicalTempDirPath = AssetUtilities::NormalizeDirectoryPath(tempPath.canonicalPath()); - UnitTestUtils::ScopedDir changeDir(canonicalTempDirPath); - tempPath = QDir(canonicalTempDirPath); - - QString gameName = AssetUtilities::ComputeProjectName(AssetProcessorManagerTestGameProject); - - // update the engine root - AssetUtilities::ResetAssetRoot(); - QDir newRoot; - AssetUtilities::ComputeAssetRoot(newRoot, &tempPath); - - UNIT_TEST_EXPECT_FALSE(gameName.isEmpty()); - - PlatformConfiguration config; - config.EnablePlatform({ "pc",{ "desktop", "renderer" } }, true); - AZStd::vector platforms; - config.PopulatePlatformsForScanFolder(platforms); - // PATH DisplayName PortKey outputfolder root recurse platforms order - - // note: the crux of this test is that we ar redirecting output into the cache at a different location instead of default. - // so our scan folder has a "redirected" folder. - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "subfolder1", "subfolder1", "redirected", false, true, platforms, -1)); - - AssetProcessorManager_Test apm(&config); - - QDir cacheRoot; - UNIT_TEST_EXPECT_TRUE(AssetUtilities::ComputeProjectCacheRoot(cacheRoot)); - - QList processResults; - QList > changedInputResults; - QList< AzFramework::AssetSystem::AssetNotificationMessage > assetMessages; - - bool idling = false; - - connect(&apm, &AssetProcessorManager::AssetToProcess, - this, [&processResults](JobDetails details) - { - processResults.push_back(AZStd::move(details)); - }); - - connect(&apm, &AssetProcessorManager::AssetMessage, - this, [&assetMessages](AzFramework::AssetSystem::AssetNotificationMessage message) - { - assetMessages.push_back( message); - }); - - connect(&apm, &AssetProcessorManager::InputAssetProcessed, - this, [&changedInputResults](QString relativePath, QString platform) - { - changedInputResults.push_back(QPair(relativePath, platform)); - }); - - connect(&apm, &AssetProcessorManager::AssetProcessorManagerIdleState, - this, [&idling](bool state) - { - idling = state; - } - ); - - QString sourceFile = tempPath.absoluteFilePath("subfolder1/basefile.foo"); - CreateDummyFile(sourceFile); - - mockAssetBuilderInfoHandler.m_numberOfJobsToCreate = 1; //Create two jobs for this file - - QMetaObject::invokeMethod(&apm, "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, sourceFile)); - - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - // block until no more events trickle in: - QCoreApplication::processEvents(QEventLoop::AllEvents); - - UNIT_TEST_EXPECT_TRUE(processResults.size() == 1); - UNIT_TEST_EXPECT_TRUE((processResults[0].m_jobEntry.m_platformInfo.m_identifier == "pc")); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_databaseSourceName == "redirected/basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_pathRelativeToWatchFolder == "basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_watchFolderPath == tempPath.filePath("subfolder1")); - - QStringList pcouts; - pcouts.push_back(cacheRoot.filePath(QString("pc/redirected/basefile.arc1"))); - - // Create the product files for the first job - UNIT_TEST_EXPECT_TRUE(CreateDummyFile(pcouts[0], "product1")); - - // Invoke Asset Processed for pc platform for the first job - AssetBuilderSDK::ProcessJobResponse response; - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - response.m_outputProducts.push_back(AssetBuilderSDK::JobProduct(pcouts[0].toUtf8().constData())); - - QMetaObject::invokeMethod(&apm, "AssetProcessed", Qt::QueuedConnection, Q_ARG(JobEntry, processResults[0].m_jobEntry), Q_ARG(AssetBuilderSDK::ProcessJobResponse, response)); - - // let events bubble through: - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - UNIT_TEST_EXPECT_TRUE(assetMessages.size() == 1); - UNIT_TEST_EXPECT_TRUE(changedInputResults.size() == 1); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_platform == "pc"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_data == "redirected/basefile.arc1"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_type == AzFramework::AssetSystem::AssetNotificationMessage::AssetChanged); - - UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(changedInputResults[0].first) == AssetUtilities::NormalizeFilePath(sourceFile)); - - // ------------- TEST 1: Modified source file - - processResults.clear(); - pcouts.clear(); - assetMessages.clear(); - changedInputResults.clear(); - - // now, the test is set up. we can now start poking that file and make sure we emit the appropriate messages. - // first, lets modify the file and make sure we get the build request. - -#if defined(AZ_PLATFORM_WINDOWS) - QThread::msleep(30); // give at least some milliseconds so that the files never share the same timestamp exactly -#else - // on some file systems such as HFS (commonly used on Apple devices, the file time resolution is only a second. - // We are forcing a wait here of at least a second to make sure that the file modtime - // actually changes. - QThread::msleep(1001); -#endif // defined (AZ_PLATFORM_WINDOWS) - - UNIT_TEST_EXPECT_TRUE(CreateDummyFile(sourceFile, "new data!")); - - QMetaObject::invokeMethod(&apm, "AssessModifiedFile", Qt::QueuedConnection, Q_ARG(QString, sourceFile)); - - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - // block until no more events trickle in: - QCoreApplication::processEvents(QEventLoop::AllEvents); - - UNIT_TEST_EXPECT_TRUE(processResults.size() == 1); - UNIT_TEST_EXPECT_TRUE((processResults[0].m_jobEntry.m_platformInfo.m_identifier == "pc")); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_pathRelativeToWatchFolder == "basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_databaseSourceName == "redirected/basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_watchFolderPath == tempPath.absoluteFilePath("subfolder1")); - - pcouts.push_back(cacheRoot.filePath(QString("pc/redirected/basefile.arc1"))); - - // Create the product files for the first job - UNIT_TEST_EXPECT_TRUE(CreateDummyFile(pcouts[0], "product1")); - - // Invoke Asset Processed for pc platform for the first job - response.m_outputProducts.clear(); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - response.m_outputProducts.push_back(AssetBuilderSDK::JobProduct(pcouts[0].toUtf8().constData())); - - QMetaObject::invokeMethod(&apm, "AssetProcessed", Qt::QueuedConnection, Q_ARG(JobEntry, processResults[0].m_jobEntry), Q_ARG(AssetBuilderSDK::ProcessJobResponse, response)); - - // let events bubble through: - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - UNIT_TEST_EXPECT_TRUE(assetMessages.size() == 1); - UNIT_TEST_EXPECT_TRUE(changedInputResults.size() == 1); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_platform == "pc"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_data == "redirected/basefile.arc1"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_type == AzFramework::AssetSystem::AssetNotificationMessage::AssetChanged); - - UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(changedInputResults[0].first) == AssetUtilities::NormalizeFilePath(sourceFile)); - - // ------------- TEST 2: Deleted product - - processResults.clear(); - pcouts.clear(); - assetMessages.clear(); - changedInputResults.clear(); - - QString deletedProductPath = cacheRoot.filePath(QString("pc/redirected/basefile.arc1")); - - QFile::remove(deletedProductPath); - - QMetaObject::invokeMethod(&apm, "AssessDeletedFile", Qt::QueuedConnection, Q_ARG(QString, deletedProductPath)); - - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - // block until no more events trickle in: - QCoreApplication::processEvents(QEventLoop::AllEvents); - - UNIT_TEST_EXPECT_TRUE(assetMessages.size() == 0); // asset removed is delayed until actual processing occurs. - - UNIT_TEST_EXPECT_TRUE(processResults.size() == 1); - UNIT_TEST_EXPECT_TRUE((processResults[0].m_jobEntry.m_platformInfo.m_identifier == "pc")); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_pathRelativeToWatchFolder == "basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_databaseSourceName == "redirected/basefile.foo"); - UNIT_TEST_EXPECT_TRUE(processResults[0].m_jobEntry.m_watchFolderPath == tempPath.absoluteFilePath("subfolder1")); - - pcouts.push_back(cacheRoot.filePath(QString("pc/redirected/basefile.arc1"))); - - // Create the product files for the first job - UNIT_TEST_EXPECT_TRUE(CreateDummyFile(pcouts[0], "product1")); - - // Invoke Asset Processed for pc platform for the first job - response.m_outputProducts.clear(); - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - response.m_outputProducts.push_back(AssetBuilderSDK::JobProduct(pcouts[0].toUtf8().constData())); - - changedInputResults.clear(); - assetMessages.clear(); - - QMetaObject::invokeMethod(&apm, "AssetProcessed", Qt::QueuedConnection, Q_ARG(JobEntry, processResults[0].m_jobEntry), Q_ARG(AssetBuilderSDK::ProcessJobResponse, response)); - - // let events bubble through: - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - UNIT_TEST_EXPECT_TRUE(assetMessages.size() == 1); - UNIT_TEST_EXPECT_TRUE(changedInputResults.size() == 1); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_platform == "pc"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_data == "redirected/basefile.arc1"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_type == AzFramework::AssetSystem::AssetNotificationMessage::AssetChanged); - - UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(changedInputResults[0].first) == AssetUtilities::NormalizeFilePath(sourceFile)); - - // ------------- TEST 3: Deleted source - the products should end up deleted! - - processResults.clear(); - pcouts.clear(); - assetMessages.clear(); - changedInputResults.clear(); - - QString deletedSourcePath = sourceFile; - QFile::remove(deletedSourcePath); - QMetaObject::invokeMethod(&apm, "AssessDeletedFile", Qt::QueuedConnection, Q_ARG(QString, deletedSourcePath)); - - UNIT_TEST_EXPECT_TRUE(BlockUntil(idling, 5000)); - - // block until no more events trickle in: - QCoreApplication::processEvents(QEventLoop::AllEvents); - - UNIT_TEST_EXPECT_TRUE(assetMessages.size() == 1); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_platform == "pc"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_data == "redirected/basefile.arc1"); - UNIT_TEST_EXPECT_TRUE(assetMessages[0].m_type == AzFramework::AssetSystem::AssetNotificationMessage::AssetRemoved); - - // also ensure file is actually gone! - UNIT_TEST_EXPECT_TRUE(!QFile::exists(deletedProductPath)); - - Q_EMIT UnitTestPassed(); - } void AssetProcessorManagerUnitTests_JobDependencies_Fingerprint::GetMatchingBuildersInfo(const AZStd::string& assetPath, AssetProcessor::BuilderInfoList& builderInfoList) { AZ_UNUSED(assetPath); diff --git a/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.h b/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.h index 295e2331bd..1608c133a3 100644 --- a/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.h +++ b/Code/Tools/AssetProcessor/native/unittests/AssetProcessorManagerUnitTests.h @@ -45,14 +45,6 @@ Q_SIGNALS: virtual void StartTest() override; }; -class AssetProcessorManagerUnitTests_CheckOutputFolders - : public UnitTestRun - { - Q_OBJECT - public: - virtual void StartTest() override; - - }; class AssetProcessorManagerUnitTests_JobDependencies_Fingerprint : public UnitTestRun , public AssetProcessor::AssetBuilderInfoBus::Handler diff --git a/Code/Tools/AssetProcessor/native/unittests/AssetScannerUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/AssetScannerUnitTests.cpp index d4bf49773e..d42be02d06 100644 --- a/Code/Tools/AssetProcessor/native/unittests/AssetScannerUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/AssetScannerUnitTests.cpp @@ -65,10 +65,10 @@ void AssetScannerUnitTest::StartTest() AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); // PATH DisplayName PortKey outputfolder root recurse platforms - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "ap1", "", true, false, platforms)); // note: "Recurse" set to false. - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "ap2", "", false, true, platforms)); - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "ap3", "", false, true, platforms)); - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "", "ap4", "", false, false, platforms)); // note: "Recurse" set to false. + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "ap1", true, false, platforms)); // note: "Recurse" set to false. + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "ap2", false, true, platforms)); + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "ap3", false, true, platforms)); + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "", "ap4", false, false, platforms)); // note: "Recurse" set to false. AssetScanner scanner(&config); QList filesFound; diff --git a/Code/Tools/AssetProcessor/native/unittests/ConnectionUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/ConnectionUnitTests.cpp index e270a9133b..29a0570d39 100644 --- a/Code/Tools/AssetProcessor/native/unittests/ConnectionUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/ConnectionUnitTests.cpp @@ -44,7 +44,4 @@ ConnectionUnitTest::~ConnectionUnitTest() } - - -REGISTER_UNIT_TEST(ConnectionUnitTest) - +// REGISTER_UNIT_TEST(ConnectionUnitTest) // disabling due to intermittent test failure - LYN-3368 diff --git a/Code/Tools/AssetProcessor/native/unittests/PlatformConfigurationUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/PlatformConfigurationUnitTests.cpp index 5a697c103f..e09a6366a1 100644 --- a/Code/Tools/AssetProcessor/native/unittests/PlatformConfigurationUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/PlatformConfigurationUnitTests.cpp @@ -69,20 +69,20 @@ void PlatformConfigurationTests::StartTest() AZStd::vector platforms; config.PopulatePlatformsForScanFolder(platforms); - // PATH DisplayName PortKey outputfolder root recurse platforms, isunittesting - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "", "sf3", "", false, false, platforms), true); // subfolder 3 overrides subfolder2 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "sf4", "", false, true, platforms), true); // subfolder 2 overrides subfolder1 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "sf1", "subfolder1", false, true, platforms), true); // subfolder1 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "", "sf4", "", false, true, platforms), true); // subfolder4 overrides subfolder5 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder5"), "", "sf5", "b/c", false, true, platforms), true); // subfolder5 overrides subfolder6 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder6"), "", "sf6", "b/c", false, true, platforms), true); // subfolder6 overrides subfolder7 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder7"), "", "sf7", "", false, true, platforms), true); // subfolder7 overrides subfolder8 - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder8/x"), "", "sf8", "", false, true, platforms), true); // subfolder8 overrides root - config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "temp", "", true, false, platforms), true); // add the root + // PATH DisplayName PortKey root recurse platforms, isunittesting + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder3"), "", "sf3", false, false, platforms), true); // subfolder 3 overrides subfolder2 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder2"), "", "sf4", false, true, platforms), true); // subfolder 2 overrides subfolder1 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder1"), "", "sf1", false, true, platforms), true); // subfolder1 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder4"), "", "sf4", false, true, platforms), true); // subfolder4 overrides subfolder5 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder5"), "", "sf5", false, true, platforms), true); // subfolder5 overrides subfolder6 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder6"), "", "sf6", false, true, platforms), true); // subfolder6 overrides subfolder7 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder7"), "", "sf7", false, true, platforms), true); // subfolder7 overrides subfolder8 + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("subfolder8/x"), "", "sf8", false, true, platforms), true); // subfolder8 overrides root + config.AddScanFolder(ScanFolderInfo(tempPath.absolutePath(), "temp", "temp", true, false, platforms), true); // add the root // these are checked for later. - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("GameName"), "gn", "", "", false, true, platforms), true); - config.AddScanFolder(ScanFolderInfo(tempPath.filePath("GameNameButWithExtra"), "gnbwe", "", "WithExtra", false, true, platforms), true); + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("GameName"), "gn", "", false, true, platforms), true); + config.AddScanFolder(ScanFolderInfo(tempPath.filePath("GameNameButWithExtra"), "gnbwe", "", false, true, platforms), true); @@ -151,7 +151,7 @@ void PlatformConfigurationTests::StartTest() UNIT_TEST_EXPECT_TRUE(config.GetOverridingFile("rootfile3.txt", tempPath.absolutePath()) == tempPath.absoluteFilePath("subfolder3/rootfile3.txt")); UNIT_TEST_EXPECT_TRUE(config.GetOverridingFile("subfolder1/whatever.txt", tempPath.filePath("subfolder1")) == QString()); UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(config.GetOverridingFile("subfolder1/override.txt", tempPath.filePath("subfolder1"))) == AssetUtilities::NormalizeFilePath(tempPath.absoluteFilePath("subfolder2/subfolder1/override.txt"))); - UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(config.GetOverridingFile("b/c/a/testfile.txt", tempPath.filePath("subfolder6"))) == AssetUtilities::NormalizeFilePath(tempPath.absoluteFilePath("subfolder5/a/testfile.txt"))); + UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(config.GetOverridingFile("a/testfile.txt", tempPath.filePath("subfolder6"))) == AssetUtilities::NormalizeFilePath(tempPath.absoluteFilePath("subfolder4/a/testfile.txt"))); UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(config.GetOverridingFile("a/testfile.txt", tempPath.filePath("subfolder7"))) == AssetUtilities::NormalizeFilePath(tempPath.absoluteFilePath("subfolder4/a/testfile.txt"))); UNIT_TEST_EXPECT_TRUE(AssetUtilities::NormalizeFilePath(config.GetOverridingFile("a/testfile.txt", tempPath.filePath("subfolder8/x"))) == AssetUtilities::NormalizeFilePath(tempPath.absoluteFilePath("subfolder4/a/testfile.txt"))); @@ -183,7 +183,6 @@ void PlatformConfigurationTests::StartTest() // different regex rule should not interfere UNIT_TEST_EXPECT_TRUE(config.FindFirstMatchingFile("test/test.format") == tempPath.filePath("subfolder1/test/test.format")); - UNIT_TEST_EXPECT_TRUE(config.FindFirstMatchingFile("b/c/a/testfile.txt") == tempPath.filePath("subfolder5/a/testfile.txt")); UNIT_TEST_EXPECT_TRUE(config.FindFirstMatchingFile("a/testfile.txt") == tempPath.filePath("subfolder4/a/testfile.txt")); // ---------------------------- GetScanFolderForFile ----------------- @@ -198,15 +197,6 @@ void PlatformConfigurationTests::StartTest() UNIT_TEST_EXPECT_TRUE(config.GetScanFolderForFile(tempPath.filePath("rootfile2.txt"))); UNIT_TEST_EXPECT_TRUE(config.GetScanFolderForFile(tempPath.filePath("rootfile2.txt"))->ScanPath() == tempPath.absolutePath()); - // test of output prefix lookup - UNIT_TEST_EXPECT_TRUE(config.GetScanFolderForFile(tempPath.filePath("subfolder1/whatever.txt"))->GetOutputPrefix() == "subfolder1"); - - // make sure that it does not mistake the GameName folder and the GameNameWithExtra folder for each other. - - UNIT_TEST_EXPECT_TRUE(config.GetScanFolderForFile(tempPath.filePath("GameNameButWithExtra/somefile.meo"))->GetOutputPrefix() == "WithExtra"); - UNIT_TEST_EXPECT_TRUE(config.GetScanFolderForFile(tempPath.filePath("GameName/otherfile.meo"))->GetOutputPrefix() == ""); - - // -------------------------- ConvertToRelativePath ------------------------------ QString fileName; @@ -238,9 +228,9 @@ void PlatformConfigurationTests::StartTest() UNIT_TEST_EXPECT_TRUE(fileName == "aaa/bbb/ccc/ddd/basefile.txt"); UNIT_TEST_EXPECT_TRUE(scanFolderPath == tempPath.filePath("subfolder2")); - // verify that output relative paths include output prefix + // verify that output relative paths UNIT_TEST_EXPECT_TRUE(config.ConvertToRelativePath(tempPath.absoluteFilePath("subfolder1/whatever.txt"), fileName, scanFolderPath)); - UNIT_TEST_EXPECT_TRUE(fileName == "subfolder1/whatever.txt"); + UNIT_TEST_EXPECT_TRUE(fileName == "whatever.txt"); UNIT_TEST_EXPECT_TRUE(scanFolderPath == tempPath.filePath("subfolder1")); } diff --git a/Code/Tools/AssetProcessor/native/unittests/RCcontrollerUnitTests.cpp b/Code/Tools/AssetProcessor/native/unittests/RCcontrollerUnitTests.cpp index 8d423a68cd..0e771f7fd1 100644 --- a/Code/Tools/AssetProcessor/native/unittests/RCcontrollerUnitTests.cpp +++ b/Code/Tools/AssetProcessor/native/unittests/RCcontrollerUnitTests.cpp @@ -520,7 +520,7 @@ void RCcontrollerUnitTests::RunRCControllerTests() AZ::Uuid uuidOfSource = AZ::Uuid("{D013122E-CF2C-4534-A87D-F82570FBC2CD}"); MockRCJob rcJob; - ScanFolderInfo scanFolderInfo("samplepath", "sampledisplayname", "samplekey", "", false, false); + ScanFolderInfo scanFolderInfo("samplepath", "sampledisplayname", "samplekey", false, false); AssetProcessor::JobDetails jobDetailsToInitWith; jobDetailsToInitWith.m_jobEntry.m_watchFolderPath = tempPath.absoluteFilePath("subfolder4"); jobDetailsToInitWith.m_jobEntry.m_databaseSourceName = jobDetailsToInitWith.m_jobEntry.m_pathRelativeToWatchFolder = "needsLock.tiff"; diff --git a/Code/Tools/AssetProcessor/native/utilities/ApplicationManager.cpp b/Code/Tools/AssetProcessor/native/utilities/ApplicationManager.cpp index 2c3d0739c6..c85801a074 100644 --- a/Code/Tools/AssetProcessor/native/utilities/ApplicationManager.cpp +++ b/Code/Tools/AssetProcessor/native/utilities/ApplicationManager.cpp @@ -470,7 +470,7 @@ void ApplicationManager::PopulateApplicationDependencies() QDir assetRoot; AssetUtilities::ComputeAssetRoot(assetRoot); - QString globalConfigPath = assetRoot.filePath("AssetProcessorPlatformConfig.setreg"); + QString globalConfigPath = assetRoot.filePath("Registry/AssetProcessorPlatformConfig.setreg"); m_filesOfInterest.push_back(globalConfigPath); QString gamePlatformConfigPath = QDir(AssetUtilities::ComputeProjectPath()).filePath("AssetProcessorGamePlatformConfig.setreg"); diff --git a/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.cpp b/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.cpp index 615e465b21..7db5804b14 100644 --- a/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.cpp +++ b/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.cpp @@ -216,10 +216,6 @@ namespace AssetProcessor { scanFolderEntry.m_watchPath = value; } - else if (valueName == "output") - { - scanFolderEntry.m_outputPrefix = value; - } else if (valueName == "display" && !value.empty()) { scanFolderEntry.m_scanFolderDisplayName = value; @@ -784,7 +780,6 @@ namespace AssetProcessor scanFolder, AZStd::string::format("ScanFolderParam %zu", idx).c_str(), AZStd::string::format("SF%zu", idx).c_str(), - "", false, true, platforms, @@ -1079,10 +1074,6 @@ namespace AssetProcessor AZStd::vector platforms; PopulatePlatformsForScanFolder(platforms, includeIdentifiers, excludeIdentifiers); - - // Normalize the OutputPrefix to use PosixPathSeparators - scanFolderEntry.m_outputPrefix = AZ::IO::PathView(scanFolderEntry.m_outputPrefix, AZ::IO::PosixPathSeparator).LexicallyNormal().String(); - const bool isEngineRoot = scanFolderEntry.m_watchPath == engineRoot; // If the scan folder happens to be the engine root, it is not recursive scanFolderEntry.m_isRecursive = scanFolderEntry.m_isRecursive && !isEngineRoot; @@ -1093,7 +1084,6 @@ namespace AssetProcessor QString::fromUtf8(scanFolderEntry.m_watchPath.c_str(), aznumeric_cast(scanFolderEntry.m_watchPath.Native().size())), QString::fromUtf8(scanFolderEntry.m_scanFolderDisplayName.c_str(), aznumeric_cast(scanFolderEntry.m_scanFolderDisplayName.size())), QString::fromUtf8(scanFolderEntry.m_scanFolderIdentifier.c_str(), aznumeric_cast(scanFolderEntry.m_scanFolderIdentifier.size())), - QString::fromUtf8(scanFolderEntry.m_outputPrefix.c_str(), aznumeric_cast(scanFolderEntry.m_outputPrefix.size())), isEngineRoot, scanFolderEntry.m_isRecursive, platforms, @@ -1318,7 +1308,7 @@ namespace AssetProcessor } } - bool PlatformConfiguration::ConvertToRelativePath(QString fullFileName, QString& databaseSourceName, QString& scanFolderName, bool includeOutputPrefix) const + bool PlatformConfiguration::ConvertToRelativePath(QString fullFileName, QString& databaseSourceName, QString& scanFolderName) const { const ScanFolderInfo* info = GetScanFolderForFile(fullFileName); @@ -1327,13 +1317,13 @@ namespace AssetProcessor scanFolderName = info->ScanPath(); scanFolderName.replace(AZ_WRONG_DATABASE_SEPARATOR, AZ_CORRECT_DATABASE_SEPARATOR); - return ConvertToRelativePath(fullFileName, info, databaseSourceName, includeOutputPrefix); + return ConvertToRelativePath(fullFileName, info, databaseSourceName); } // did not find it. return false; } - bool PlatformConfiguration::ConvertToRelativePath(const QString& fullFileName, const ScanFolderInfo* scanFolderInfo, QString& databaseSourceName, bool includeOutputPrefix) + bool PlatformConfiguration::ConvertToRelativePath(const QString& fullFileName, const ScanFolderInfo* scanFolderInfo, QString& databaseSourceName) { if(!scanFolderInfo) { @@ -1346,20 +1336,7 @@ namespace AssetProcessor relPath = fullFileName.right(fullFileName.length() - scanFolderInfo->ScanPath().length() - 1); // also eat the slash, hence -1 } - if ((scanFolderInfo->GetOutputPrefix().isEmpty()) || (!includeOutputPrefix)) - { - databaseSourceName = relPath; - } - else - { - databaseSourceName = scanFolderInfo->GetOutputPrefix(); - - if (!relPath.isEmpty()) - { - databaseSourceName += '/'; - databaseSourceName += relPath; - } - } + databaseSourceName = relPath; databaseSourceName.replace(AZ_WRONG_DATABASE_SEPARATOR, AZ_CORRECT_DATABASE_SEPARATOR); @@ -1380,11 +1357,6 @@ namespace AssetProcessor return QString(); } QString tempRelativeName(relativeName); - //if relative path starts with the output prefix than remove it first - if (!scanFolderInfo.GetOutputPrefix().isEmpty() && tempRelativeName.startsWith(scanFolderInfo.GetOutputPrefix(), Qt::CaseInsensitive)) - { - tempRelativeName = tempRelativeName.right(tempRelativeName.length() - scanFolderInfo.GetOutputPrefix().length() - 1); // also eat the slash, hence -1 - } if ((!scanFolderInfo.RecurseSubFolders()) && (tempRelativeName.contains('/'))) { @@ -1418,11 +1390,6 @@ namespace AssetProcessor QString tempRelativeName(relativeName); - //if relative path starts with the output prefix than remove it first - if (!scanFolderInfo.GetOutputPrefix().isEmpty() && tempRelativeName.startsWith(scanFolderInfo.GetOutputPrefix(), Qt::CaseInsensitive)) - { - tempRelativeName = tempRelativeName.right(tempRelativeName.length() - scanFolderInfo.GetOutputPrefix().length() - 1); // also eat the slash, hence -1 - } if ((!scanFolderInfo.RecurseSubFolders()) && (tempRelativeName.contains('/'))) { // the name is a deeper relative path, but we don't recurse this scan folder, so it can't win @@ -1566,7 +1533,6 @@ namespace AssetProcessor // Watched folder: (absolute path to the gem /Assets/ folder) MUST BE CORRECT CASE // Display name: "Gems/GemName/Assets" // uppercase, for human eyes // portable Key: "gemassets-(UUID Of Gem)" - // Output Prefix: "" // empty string - this means put it in @assets@ as per default // Is Root: False // Recursive: True QString gemFolder = gemDir.absoluteFilePath(AzFramework::GemInfo::GetGemAssetFolder()); @@ -1576,7 +1542,6 @@ namespace AssetProcessor QString assetBrowserDisplayName = AzFramework::GemInfo::GetGemAssetFolder(); // Gems always use assets folder as their displayname... QString portableKey = QString("gemassets-%1").arg(gemNameAsUuid); - QString outputPrefix; // empty intentionally here bool isRoot = false; bool isRecursive = true; gemOrder++; @@ -1586,7 +1551,6 @@ namespace AssetProcessor gemFolder, assetBrowserDisplayName, portableKey, - outputPrefix, isRoot, isRecursive, platforms, diff --git a/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.h b/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.h index f10493ea42..bae8e4b716 100644 --- a/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.h +++ b/Code/Tools/AssetProcessor/native/utilities/PlatformConfiguration.h @@ -128,7 +128,6 @@ namespace AssetProcessor AZ::IO::Path m_watchPath{ AZ::IO::PosixPathSeparator }; AZStd::vector m_includeIdentifiers; AZStd::vector m_excludeIdentifiers; - AZStd::string m_outputPrefix; int m_scanOrder{}; bool m_isRecursive{}; }; @@ -290,10 +289,9 @@ namespace AssetProcessor //! ----> [textures/texture1.tga] found under [c:/dev/mygame] //! c:/dev/engine/models/box01.mdl //! ----> [models/box01.mdl] found under[c:/dev/engine] - //! note that this does return a database source path by default, which includes the output prefix of the scan folder if present - //! You can override this by setting includeOutputPrefix = false; - bool ConvertToRelativePath(QString fullFileName, QString& databaseSourceName, QString& scanFolderName, bool includeOutputPrefix = true) const; - static bool ConvertToRelativePath(const QString& fullFileName, const ScanFolderInfo* scanFolderInfo, QString& databaseSourceName, bool includeOutputPrefix = true); + //! note that this does return a database source path by default + bool ConvertToRelativePath(QString fullFileName, QString& databaseSourceName, QString& scanFolderName) const; + static bool ConvertToRelativePath(const QString& fullFileName, const ScanFolderInfo* scanFolderInfo, QString& databaseSourceName); //! given a full file name (assumed already fed through the normalization funciton), return the first matching scan folder const AssetProcessor::ScanFolderInfo* GetScanFolderForFile(const QString& fullFileName) const; diff --git a/Code/Tools/AssetProcessor/native/utilities/assetUtils.cpp b/Code/Tools/AssetProcessor/native/utilities/assetUtils.cpp index b615e8854a..86e00bfd41 100644 --- a/Code/Tools/AssetProcessor/native/utilities/assetUtils.cpp +++ b/Code/Tools/AssetProcessor/native/utilities/assetUtils.cpp @@ -562,8 +562,8 @@ namespace AssetUtilities } else { - AZ_Warning(AssetProcessor::ConsoleChannel, false, "Invalid server address, please check the AssetProcessorPlatformConfig.setreg file \ -to ensure that the address is correct. Asset Processor won't be running in server mode."); + AZ_Warning(AssetProcessor::ConsoleChannel, false, "Invalid server address, please check the AssetProcessorPlatformConfig.setreg file" + " to ensure that the address is correct. Asset Processor won't be running in server mode."); } break; @@ -804,7 +804,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve { QThread::msleep(AssetUtilsInternal::g_RetryWaitInterval); } - + } while (!timer.hasExpired(waitTimeinSeconds * 1000)); AZ_TracePrintf(AssetProcessor::ConsoleChannel, "Failed to create output directory: %s after %d retries.\n", dir.absolutePath().toUtf8().data(), retries); @@ -1075,7 +1075,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve { // it is assumed that m_fingerprintFilesList contains the original file and all dependencies, and is in a stable order without duplicates // CRC32 is not an effective hash for this purpose, so we will build a string and then use SHA1 on it. - + // to avoid resizing and copying repeatedly we will keep track of the largest reserved capacity ever needed for this function, and reserve that much data static size_t s_largestFingerprintCapacitySoFar = 1; AZStd::string fingerprintString; @@ -1207,7 +1207,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve // the navigation system can still be writing to this file when hashing begins, causing the EoF marker to change. AZ::IO::SizeType remainingToRead = AZStd::min(readStream.GetLength() - readStream.GetCurPos(), aznumeric_cast(AZ_ARRAY_SIZE(buffer))); bytesRead = readStream.Read(remainingToRead, buffer); - + if(bytesReadOut) { *bytesReadOut += bytesRead; @@ -1234,7 +1234,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve } std::uint64_t AdjustTimestamp(QDateTime timestamp) - { + { timestamp = timestamp.toUTC(); auto timeMilliseconds = timestamp.toMSecsSinceEpoch(); @@ -1250,7 +1250,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve { bool fileFound = false; AssetProcessor::FileStateInfo fileStateInfo; - + auto* fileStateInterface = AZ::Interface::Get(); if (fileStateInterface) { @@ -1277,7 +1277,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve { fileIdentifier = AdjustTimestamp(lastModifiedTime); } - + // its possible that the dependency has moved to a different file with the same modtime/hash // so we add the size of it too. // its also possible that it moved to a different file with the same modtime/hash AND size, @@ -1324,7 +1324,7 @@ to ensure that the address is correct. Asset Processor won't be running in serve } QDir tempRoot; - + if (!CreateTempRootFolder(startFolder, tempRoot)) { result.clear(); diff --git a/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.ini deleted file mode 100644 index 0416ea7f85..0000000000 --- a/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.ini +++ /dev/null @@ -1,19 +0,0 @@ -; this is an override config that should "add" the provo platform -; and "remove" the server platform. - -[Platform provo] -tags=console, renderer - -[Platforms] -server=disabled -provo=enabled - -; this ONLY overrides the "provo" value -; becuase this is being loaded on top of the defaults, this should LEAVE the others -; as they are. -[RC i_caf] -provo=copy - -; this will remove "mov" from the default configuration -[RC mov] -ignore=true diff --git a/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.setreg new file mode 100644 index 0000000000..c9556f0494 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/DummyProject/AssetProcessorGamePlatformConfig.setreg @@ -0,0 +1,21 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform provo": { + "tags": "console, renderer" + }, + "Platforms": { + "server": "disabled", + "provo": "enabled" + }, + "RC i_caf": { + "provo": "copy" + }, + "RC mov": { + "ignore": true + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.ini deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Code/Tools/AssetProcessor/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.setreg new file mode 100644 index 0000000000..17d9887fe8 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/EmptyDummyProject/AssetProcessorGamePlatformConfig.setreg @@ -0,0 +1,7 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": {} + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 874625bf1b..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,22 +0,0 @@ -; Used by unit tests. This is a broken configuration file. - -[Platform pc] -tags=tools,renderer - -[Platform osx_gl] -tags=tools,renderer - -[Platforms] -es3=enabled ; note - bad platform - its not one of the above ones! - -; without a scan folder, it is an invalid file. -[ScanFolder Game] -watch=@PROJECTROOT@ -recursive=1 -order=0 - -; without at least one recognizer, its not an invalid file. (this is not what this unit test is checking) -[RC i_caf] -glob=*.i_caf -params=copy -priority=5 diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..468ab68f5d --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_broken_badplatform/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,27 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform pc": { + "tags": "tools,renderer" + }, + "Platform osx_gl": { + "tags": "tools,renderer" + }, + "Platforms": { + "es3": "enabled" + }, + "ScanFolder Game": { + "watch": "@PROJECTROOT@", + "recursive": 1, + "order": 0 + }, + "RC i_caf": { + "glob": "*.i_caf", + "params": "copy", + "priority": 5 + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 5b776865a6..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,13 +0,0 @@ -; Used by unit tests. This is a broken configuration file. - -; without a scan folder, it is an invalid file. -[ScanFolder Game] -watch=@PROJECTROOT@ -recursive=1 -order=0 - -; without at least one recognizer, its an invalid file. -[RC i_caf] -glob=*.i_caf -params=copy -priority=5 diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..581cef06e9 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_broken_noplatform/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,18 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "ScanFolder Game": { + "watch": "@PROJECTROOT@", + "recursive": 1, + "order": 0 + }, + "RC i_caf": { + "glob": "*.i_caf", + "params": "copy", + "priority": 5 + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 21f722adcd..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,15 +0,0 @@ -; Used by unit tests. This is a broken configuration file. - -[Platform pc] -tags=tools,renderer - -[Platform osx_gl] -tags=tools,renderer - -; without a scan folder, it is an invalid file. - -; without at least one recognizer, its not an invalid file. (this is not what this unit test is checking) -[RC i_caf] -glob=*.i_caf -params=copy -priority=5 diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..507fe4afb1 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_broken_noscans/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,19 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform pc": { + "tags": "tools,renderer" + }, + "Platform osx_gl": { + "tags": "tools,renderer" + }, + "RC i_caf": { + "glob": "*.i_caf", + "params": "copy", + "priority": 5 + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 14d95cff5f..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,16 +0,0 @@ -; Used by unit tests. This is a broken configuration file. - -[Platform pc] -tags=tools,renderer - -[Platform osx_gl] -tags=tools,renderer - -; without a scan folder, it is an invalid file. -[ScanFolder Game] -watch=@PROJECTROOT@ -recursive=1 -order=0 - -; without at least one recognizer, its an invalid file. - diff --git a/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..0e687062b2 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_broken_recognizers/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,19 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform pc": { + "tags": "tools,renderer" + }, + "Platform osx_gl": { + "tags": "tools,renderer" + }, + "ScanFolder Game": { + "watch": "@PROJECTROOT@", + "recursive": 1, + "order": 0 + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.ini deleted file mode 100644 index 77750779cb..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,109 +0,0 @@ -; this is a regular config file that ought to load successfully. - -[Platform pc] -tags=tools,renderer - -[Platform es3] -tags=android,mobile,renderer - -[Platform osx_gl] -tags=tools,renderer - -[Platform server] -tags=server - -; for the purposes of this test, we enable only server and es3, but we make sure the CURRENT_PLATFORM is auto enabled. - -[Platforms] -;pc=enabled -es3=enabled -;ios=enabled -;osx_gl=enabled -;provo=enabled -server=enabled - -; ---- The number of worker jobs, 0 means use the number of Logical Cores -[Jobs] -minJobs=1 -maxJobs=0 - -[MetaDataTypes] -exportsettings= -animsettings=i_caf -Animations/SkeletonList.xml=i_caf -cbc=abc -fbx.assetinfo=fbx - -[ScanFolder Game] -watch=@PROJECTROOT@ -; use a special display name here to make sure macros work -display=@PROJECTROOT@ Scan Folder -recursive=1 -order=0 - -; this test makes sure that those macros make sense and are present as well as that order is preserved. -; it also makes sure that the friendly name ("FeatureTests") is used, if no display is present and does not lose its case. -[ScanFolder FeatureTests] -watch=@PROJECTROOT@FeatureTests -output=featuretestsoutputfolder -recursive=0 -order=5000 - -; this test makes sure that the scan folders system uses the portable key of the scan Folder to find duplicates. -; (which is constructed from its name in the square brackets) -; instead of other attributes such as the watch folder, or output prefix. -[ScanFolder FeatureTests2] -watch=@PROJECTROOT@FeatureTests -output=featuretestsoutputfolder -recursive=0 -order=6000 - -[Exclude HoldFiles] -pattern=.*\\/Levels\\/.*_hold\\/.* - -[Exclude TempFiles] -pattern=.*\\/\\$tmp[0-9]*_.* - -[RC i_caf] -glob=*.i_caf -params=defaultparams -; server should not appear -server=skip -; es3 should have this overridden -es3=mobile -; host should have defaultparams -; make sure priority is used. -priority=5 -checkServer=true - -[RC caf] -glob=*.caf -params=copy -; all platforms with 'renderer' tag should have these params applied. (so host platform and es3 but not server) -renderer=rendererparams - -[RC mov] -glob=*.mov -params=copy -; this one proves that platforms override more broader tags (es3 has both the es3 platform and the renderer tag) -es3=platformspecificoverride -; hosts should use this -renderer=rendererparams - -; this tests to make sure that even if "params" is missing, it is assumed to be default operation -; this is because if you wanted to skip a platform, we have a specific verb for that ('skip') and simply omitting the defaults means -; that you just want the default behavior. only the platforms indicated have a role -[RC rend] -glob=*.rend -renderer=rendererparams - -; this tests to make sure that even if you have no params at all, it is assumed to be default operation -[RC alldefault] -glob=*.alldefault - -; this tests to make sure if you set default to skip you can still specify one platform to compile on -[RC skipallbutone] -glob=*.files -params=skip -server=copy - diff --git a/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..1c5c487a46 --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_regular/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,89 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform pc": { + "tags": "tools,renderer" + }, + "Platform es3": { + "tags": "android,mobile,renderer" + }, + "Platform osx_gl": { + "tags": "tools,renderer" + }, + "Platform server": { + "tags": "server" + }, + "Platforms": { + "es3": "enabled", + "server": "enabled" + }, + "Jobs": { + "minJobs": 1, + "maxJobs": 0 + }, + "MetaDataTypes": { + "animsettings": "i_caf", + "Animations/SkeletonList.xml": "i_caf", + "cbc": "abc", + "fbx.assetinfo": "fbx" + }, + "ScanFolder Game": { + "watch": "@PROJECTROOT@", + "display": "@PROJECTROOT@ Scan Folder", + "recursive": 1, + "order": 0 + }, + "ScanFolder FeatureTests": { + "watch": "@PROJECTROOT@FeatureTests", + "output": "featuretestsoutputfolder", + "recursive": 0, + "order": 5000 + }, + "ScanFolder FeatureTests2": { + "watch": "@PROJECTROOT@FeatureTests", + "output": "featuretestsoutputfolder", + "recursive": 0, + "order": 6000 + }, + "Exclude HoldFiles": { + "pattern": ".*\\\\/Levels\\\\/.*_hold\\\\/.*" + }, + "Exclude TempFiles": { + "pattern": ".*\\\\/\\\\$tmp[0-9]*_.*" + }, + "RC i_caf": { + "glob": "*.i_caf", + "params": "defaultparams", + "server": "skip", + "es3": "mobile", + "priority": 5, + "checkServer": true + }, + "RC caf": { + "glob": "*.caf", + "params": "copy", + "renderer": "rendererparams" + }, + "RC mov": { + "glob": "*.mov", + "params": "copy", + "es3": "platformspecificoverride", + "renderer": "rendererparams" + }, + "RC rend": { + "glob": "*.rend", + "renderer": "rendererparams" + }, + "RC alldefault": { + "glob": "*.alldefault" + }, + "RC skipallbutone": { + "glob": "*.files", + "params": "skip", + "server": "copy" + } + } + } + } +} diff --git a/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.ini b/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.ini deleted file mode 100644 index c210c23d0d..0000000000 --- a/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.ini +++ /dev/null @@ -1,129 +0,0 @@ -; this is a regular config file that ought to load successfully. - -[Platform pc] -tags=tools,renderer - -[Platform es3] -tags=android,mobile,renderer - -[Platform ios] -tags=mobile,renderer - -[Platform osx_gl] -tags=tools,renderer - -[Platform server] -tags=server - -; we define an test platform in order to make sure that it does NOT show up anywhere -[Platform test] -tags=console,renderer - -; for the purposes of this test, we enable only server and es3, but we make sure the CURRENT_PLATFORM is auto enabled. - -[Platforms] -;pc=enabled -es3=enabled -ios=enabled -;osx_gl=enabled -;test=enabled -server=enabled - -; ---- The number of worker jobs, 0 means use the number of Logical Cores -[Jobs] -minJobs=1 -maxJobs=0 - -[MetaDataTypes] -exportsettings= -animsettings=i_caf -Animations/SkeletonList.xml=i_caf -cbc=abc -fbx.assetinfo=fbx - -[ScanFolder Game] -watch=@PROJECTROOT@ -display=gameoutput -recursive=1 -order=0 - -[ScanFolder Editor] -watch=@ENGINEROOT@/Editor -display=editoroutput -recursive=1 -order=30000 -include=tools,renderer -exclude=ios - -[ScanFolder Folder1] -watch=@ENGINEROOT@/Folder1 -display=folder1output -recursive=1 -order=50000 -include=es3 - -[ScanFolder Folder2] -watch=@ENGINEROOT@/Folder2 -display=folder2output -recursive=1 -order=60000 -exclude=es3 - -[ScanFolder Folder3] -watch=@ENGINEROOT@/Folder3 -display=folder3output -recursive=1 -order=70000 -include=test - - - -[Exclude HoldFiles] -pattern=.*\\/Levels\\/.*_hold\\/.* - -[Exclude TempFiles] -pattern=.*\\/\\$tmp[0-9]*_.* - -[RC i_caf] -glob=*.i_caf -params=defaultparams -; server should not appear -server=skip -; es3 should have this overridden -es3=mobile -test=copy -; host should have defaultparams -; make sure priority is used. -priority=5 - -[RC caf] -glob=*.caf -params=copy -; all platforms with 'renderer' tag should have these params applied. (so host platform and es3 but not server) -renderer=rendererparams - -[RC mov] -glob=*.mov -params=copy -; this one proves that platforms override more broader tags (es3 has both the es3 platform and the renderer tag) -es3=platformspecificoverride -; hosts should use this -renderer=rendererparams - -; this tests to make sure that even if "params" is missing, it is assumed to be default operation -; this is because if you wanted to skip a platform, we have a specific verb for that ('skip') and simply omitting the defaults means -; that you just want the default behavior. only the platforms indicated have a role -[RC rend] -glob=*.rend -renderer=rendererparams - -; this tests to make sure that even if you have no params at all, it is assumed to be default operation -[RC alldefault] -glob=*.alldefault - -; this tests to make sure if you set default to skip you can still specify one platform to compile on -[RC skipallbutone] -glob=*.files -params=skip -server=copy - diff --git a/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.setreg b/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.setreg new file mode 100644 index 0000000000..e1c2d6e8cc --- /dev/null +++ b/Code/Tools/AssetProcessor/testdata/config_regular_platform_scanfolder/AssetProcessorPlatformConfig.setreg @@ -0,0 +1,113 @@ +{ + "Amazon": { + "AssetProcessor": { + "Settings": { + "Platform pc": { + "tags": "tools,renderer" + }, + "Platform es3": { + "tags": "android,mobile,renderer" + }, + "Platform ios": { + "tags": "mobile,renderer" + }, + "Platform osx_gl": { + "tags": "tools,renderer" + }, + "Platform server": { + "tags": "server" + }, + "Platform test": { + "tags": "console,renderer" + }, + "Platforms": { + "es3": "enabled", + "ios": "enabled", + "server": "enabled" + }, + "Jobs": { + "minJobs": 1, + "maxJobs": 0 + }, + "MetaDataTypes": { + "animsettings": "i_caf", + "Animations/SkeletonList.xml": "i_caf", + "cbc": "abc", + "fbx.assetinfo": "fbx" + }, + "ScanFolder Game": { + "watch": "@PROJECTROOT@", + "display": "gameoutput", + "recursive": 1, + "order": 0 + }, + "ScanFolder Editor": { + "watch": "@ENGINEROOT@/Editor", + "display": "editoroutput", + "recursive": 1, + "order": 30000, + "include": "tools,renderer", + "exclude": "ios" + }, + "ScanFolder Folder1": { + "watch": "@ENGINEROOT@/Folder1", + "display": "folder1output", + "recursive": 1, + "order": 50000, + "include": "es3" + }, + "ScanFolder Folder2": { + "watch": "@ENGINEROOT@/Folder2", + "display": "folder2output", + "recursive": 1, + "order": 60000, + "exclude": "es3" + }, + "ScanFolder Folder3": { + "watch": "@ENGINEROOT@/Folder3", + "display": "folder3output", + "recursive": 1, + "order": 70000, + "include": "test" + }, + "Exclude HoldFiles": { + "pattern": ".*\\\\/Levels\\\\/.*_hold\\\\/.*" + }, + "Exclude TempFiles": { + "pattern": ".*\\\\/\\\\$tmp[0-9]*_.*" + }, + "RC i_caf": { + "glob": "*.i_caf", + "params": "defaultparams", + "server": "skip", + "es3": "mobile", + "test": "copy", + "priority": 5 + }, + "RC caf": { + "glob": "*.caf", + "params": "copy", + "renderer": "rendererparams" + }, + "RC mov": { + "glob": "*.mov", + "params": "copy", + "es3": "platformspecificoverride", + "renderer": "rendererparams" + }, + "RC rend": { + "glob": "*.rend", + "renderer": "rendererparams" + }, + "RC alldefault": { + "glob": "*.alldefault" + }, + "RC skipallbutone": { + "glob": "*.files", + "params": "skip", + "server": "copy" + } + } + } + } +} \ No newline at end of file diff --git a/Code/Tools/SceneAPI/SceneUI/SceneUI.qrc b/Code/Tools/SceneAPI/SceneUI/SceneUI.qrc index 9b4ad04628..023f881ad7 100644 --- a/Code/Tools/SceneAPI/SceneUI/SceneUI.qrc +++ b/Code/Tools/SceneAPI/SceneUI/SceneUI.qrc @@ -1,21 +1,21 @@ - ../../../../Editor/Icons/AssetImporter/mesh_on.png - ../../../../Editor/Icons/AssetImporter/animation_on.png - ../../../../Editor/Icons/AssetImporter/skeleton_on.png + ../../../../Assets/Editor/Icons/AssetImporter/mesh_on.png + ../../../../Assets/Editor/Icons/AssetImporter/animation_on.png + ../../../../Assets/Editor/Icons/AssetImporter/skeleton_on.png - ../../../../Editor/Icons/AssetImporter/tree.png - ../../../../Editor/Icons/AssetImporter/mesh.png - ../../../../Editor/Icons/AssetImporter/animation.png - ../../../../Editor/Icons/AssetImporter/skeleton.png - ../../../../Editor/Icons/AssetImporter/skin.png + ../../../../Assets/Editor/Icons/AssetImporter/tree.png + ../../../../Assets/Editor/Icons/AssetImporter/mesh.png + ../../../../Assets/Editor/Icons/AssetImporter/animation.png + ../../../../Assets/Editor/Icons/AssetImporter/skeleton.png + ../../../../Assets/Editor/Icons/AssetImporter/skin.png - ../../../../Editor/Styles/StyleSheetImages/info_icon.png - ../../../../Editor/Styles/StyleSheetImages/error_icon.png - ../../../../Editor/Icons/Assets/Lua.png - ../../../../Editor/Icons/PropertyEditor/group_closed.png - ../../../../Editor/Icons/PropertyEditor/group_open.png + ../../../../Assets/Editor/Styles/StyleSheetImages/info_icon.png + ../../../../Assets/Editor/Styles/StyleSheetImages/error_icon.png + ../../../../Assets/Editor/Icons/Assets/Lua.png + ../../../../Assets/Editor/Icons/PropertyEditor/group_closed.png + ../../../../Assets/Editor/Icons/PropertyEditor/group_open.png diff --git a/Code/Tools/Standalone/Source/ThumbnailerNullComponent.cpp b/Code/Tools/Standalone/Source/ThumbnailerNullComponent.cpp index 0818291a33..e33cb8aa51 100644 --- a/Code/Tools/Standalone/Source/ThumbnailerNullComponent.cpp +++ b/Code/Tools/Standalone/Source/ThumbnailerNullComponent.cpp @@ -20,10 +20,8 @@ namespace LUAEditor { namespace Thumbnailer { - const int DEFAULT_THUMBNAIL_SIZE = 100; - ThumbnailerNullComponent::ThumbnailerNullComponent() : - m_nullThumbnail(new AzToolsFramework::Thumbnailer::MissingThumbnail(DEFAULT_THUMBNAIL_SIZE)) + m_nullThumbnail(new AzToolsFramework::Thumbnailer::MissingThumbnail()) { } @@ -53,7 +51,7 @@ namespace LUAEditor services.push_back(AZ_CRC("ThumbnailerService", 0x65422b97)); } - void ThumbnailerNullComponent::RegisterContext(const char* /*contextName*/, int /*thumbnailSize*/) + void ThumbnailerNullComponent::RegisterContext(const char* /*contextName*/) { } diff --git a/Code/Tools/Standalone/Source/ThumbnailerNullComponent.h b/Code/Tools/Standalone/Source/ThumbnailerNullComponent.h index bb56a27e8f..9d0c638305 100644 --- a/Code/Tools/Standalone/Source/ThumbnailerNullComponent.h +++ b/Code/Tools/Standalone/Source/ThumbnailerNullComponent.h @@ -42,7 +42,7 @@ namespace LUAEditor ////////////////////////////////////////////////////////////////////////// // ThumbnailerRequests ////////////////////////////////////////////////////////////////////////// - void RegisterContext(const char* contextName, int thumbnailSize) override; + void RegisterContext(const char* contextName) override; void UnregisterContext(const char* contextName) override; bool HasContext(const char* contextName) const override; void RegisterThumbnailProvider(AzToolsFramework::Thumbnailer::SharedThumbnailProvider provider, const char* contextName) override; diff --git a/Editor/Editor.env b/Editor/Editor.env deleted file mode 100644 index 1596bbd595..0000000000 --- a/Editor/Editor.env +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Editor/cryassetdb_mysql.sql b/Editor/cryassetdb_mysql.sql deleted file mode 100644 index 475b9c48ed..0000000000 --- a/Editor/cryassetdb_mysql.sql +++ /dev/null @@ -1,47 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `CryAssetDB`; - -USE `CryAssetDB`; - -CREATE TABLE `categories` ( - `category_id` int(10) NOT NULL auto_increment, - `category` varchar(255) UNIQUE NOT NULL, - `order_id` int(10) NOT NULL, - PRIMARY KEY (`category_id`) -); - -CREATE TABLE IF NOT EXISTS `tags` ( - `id` int(10) unsigned NOT NULL auto_increment, - `tag` varchar(64) NOT NULL, - `category_id` int(10) default NULL, - PRIMARY KEY (`id`), - KEY `FK_tags_to_category_id` (`category_id`), - UNIQUE KEY `tag` (`tag`), - CONSTRAINT `FK_tags_to_category_id` FOREIGN KEY (`category_id`) REFERENCES `categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS `projects` ( - `id` int(10) unsigned NOT NULL auto_increment, - `name` varchar(32) NOT NULL COMMENT 'Convenient project name for easy filtering', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -); - -CREATE TABLE IF NOT EXISTS `asset_inventory` ( - `id` bigint(20) unsigned NOT NULL auto_increment, - `project_id` int(10) unsigned NOT NULL, - `relpath` varchar(255) NOT NULL COMMENT 'relpath to the asset', - `description` varchar(255) default NULL, - PRIMARY KEY (`id`), - KEY `FK_asset_inventory_to_project_id` (`project_id`), - CONSTRAINT `FK_asset_inventory_to_project_id` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS `asset_tags` ( - `asset_id` bigint(20) unsigned NOT NULL, - `tag_id` int(10) unsigned NOT NULL, - PRIMARY KEY (`asset_id`,`tag_id`), - KEY `FK_asset_tags_to_asset_id` (`asset_id`), - KEY `FK_asset_tags_to_tag_id` (`tag_id`), - CONSTRAINT `FK_asset_tags_to_asset_id` FOREIGN KEY (`asset_id`) REFERENCES `asset_inventory` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_asset_tags_to_tag_id` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) diff --git a/Editor/cryassetdb_sqlite.sql b/Editor/cryassetdb_sqlite.sql deleted file mode 100644 index 7d517999f4..0000000000 --- a/Editor/cryassetdb_sqlite.sql +++ /dev/null @@ -1,35 +0,0 @@ -CREATE TABLE `categories` ( - `category_id` INTEGER PRIMARY KEY, - `category` varchar(255) UNIQUE NOT NULL, - `order_id` int(10) NOT NULL, - PRIMARY KEY (`category_id`) -); - -CREATE TABLE IF NOT EXISTS `tags` ( - `id` INTEGER PRIMARY KEY, - `tag` varchar(64) NOT NULL, - `category_id` INTEGER NOT NULL, - FOREIGN KEY (`category_id`) REFERENCES `categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS `projects` ( - `id` INTEGER PRIMARY KEY, - `name` varchar(32) UNIQUE NOT NULL -); - - -CREATE TABLE IF NOT EXISTS `asset_inventory` ( - `id` INTEGER PRIMARY KEY, - `project_id` INTEGER NOT NULL, - `relpath` varchar(255) NOT NULL, - `description` varchar(255), - FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -); - -CREATE TABLE IF NOT EXISTS `asset_tags` ( - `asset_id` INTEGER NOT NULL, - `tag_id` INTEGER NOT NULL, - PRIMARY KEY (`asset_id`,`tag_id`), - FOREIGN KEY (`asset_id`) REFERENCES `asset_inventory` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, - FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -); diff --git a/Engine/EngineAssets/Textures/rotrandom.dds b/Engine/EngineAssets/Textures/rotrandom.dds deleted file mode 100644 index bc1be0f4aa..0000000000 --- a/Engine/EngineAssets/Textures/rotrandom.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19b28d4c7f7ce3aca08d902a56338f956e008892f2693e01d6341a29656f5706 -size 21972 diff --git a/Engine/Libs/FlowNodes/FlownodeBlacklist.xml b/Engine/Libs/FlowNodes/FlownodeBlacklist.xml deleted file mode 100644 index 36c95af5cb..0000000000 --- a/Engine/Libs/FlowNodes/FlownodeBlacklist.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/Engine/Libs/FlowNodes/Substitutions.xml b/Engine/Libs/FlowNodes/Substitutions.xml deleted file mode 100644 index 8ff1f7e4e4..0000000000 --- a/Engine/Libs/FlowNodes/Substitutions.xml +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Gems/AWSCore/Code/CMakeLists.txt b/Gems/AWSCore/Code/CMakeLists.txt index cfb646710e..468530be31 100644 --- a/Gems/AWSCore/Code/CMakeLists.txt +++ b/Gems/AWSCore/Code/CMakeLists.txt @@ -70,7 +70,6 @@ if (PAL_TRAIT_BUILD_HOST_TOOLS) ly_add_target( NAME AWSCore.Editor MODULE NAMESPACE Gem - OUTPUT_SUBDIRECTORY AWSCoreEditorPlugins FILES_CMAKE awscore_editor_shared_files.cmake INCLUDE_DIRECTORIES @@ -85,6 +84,25 @@ if (PAL_TRAIT_BUILD_HOST_TOOLS) Gem::AWSCore.Static Gem::AWSCore.Editor.Static ) + + ly_add_target( + NAME AWSCore.ResourceMappintTool MODULE + NAMESPACE Gem + OUTPUT_SUBDIRECTORY AWSCoreEditorQtBin + FILES_CMAKE + awscore_resourcemappingtool_files.cmake + INCLUDE_DIRECTORIES + PRIVATE + Include/Private + PUBLIC + Include/Public + BUILD_DEPENDENCIES + PRIVATE + 3rdParty::Qt::Core + 3rdParty::Qt::Widgets + AZ::AzToolsFramework + ) + ly_add_dependencies(AWSCore.Editor AWSCore.ResourceMappintTool) endif() ################################################################################ diff --git a/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreEditorMenu.h b/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreEditorMenu.h index 3994379df9..19f241e368 100644 --- a/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreEditorMenu.h +++ b/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreEditorMenu.h @@ -18,6 +18,11 @@ #include +namespace AzFramework +{ + class ProcessWatcher; +} + namespace AWSCore { class AWSCoreEditorMenu @@ -25,7 +30,11 @@ namespace AWSCore , AWSCoreEditorRequestBus::Handler { public: - static constexpr const char ResourceMappingToolPath[] = "Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.cmd"; + static constexpr const char AWSResourceMappingToolReadMeWarningText[] = + "Failed to launch Resource Mapping Tool, please follow README to setup tool before using it."; + static constexpr const char AWSResourceMappingToolIsRunningText[] = "Resource Mapping Tool is running..."; + static constexpr const char AWSResourceMappingToolLogWarningText[] = + "Failed to launch Resource Mapping Tool, please check logs for details."; static constexpr const char AWSResourceMappingToolActionText[] = "AWS Resource Mapping Tool..."; static constexpr const char CredentialConfigurationActionText[] = "Credential Configuration"; static constexpr const char CredentialConfigurationUrl[] = "https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html"; @@ -40,23 +49,17 @@ namespace AWSCore ~AWSCoreEditorMenu(); private: - void InitializeEngineRootFolder(); void InitializeResourceMappingToolAction(); void InitializeAWSDocActions(); void InitializeAWSFeatureGemActions(); - void StartResourceMappingProcess(); - // AWSCoreEditorRequestBus interface implementation void SetAWSClientAuthEnabled() override; void SetAWSMetricsEnabled() override; void SetAWSFeatureActionsEnabled(const AZStd::string actionText); - AZStd::string m_engineRootFolder; - - AZStd::mutex m_resourceMappingToolMutex; - bool m_resourceMappintToolIsRunning; - AZStd::thread m_resourceMappingToolThread; + // To improve experience, use process watcher to keep track of ongoing tool process + AZStd::unique_ptr m_resourceMappingToolWatcher; }; } // namespace AWSCore diff --git a/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h b/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h new file mode 100644 index 0000000000..c7391fcfc9 --- /dev/null +++ b/Gems/AWSCore/Code/Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h @@ -0,0 +1,42 @@ +/* + * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or + * its licensors. + * + * For complete copyright and license terms please see the LICENSE at the root of this + * distribution (the "License"). All use of this software is governed by the License, + * or, if provided, by the license below or the license accompanying this file. Do not + * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + */ +#pragma once + +#include + +#include + +namespace AWSCore +{ + class AWSCoreResourceMappingToolAction + : public QAction + { + public: + static constexpr const char ResourceMappingToolDirectoryPath[] = "Gems/AWSCore/Code/Tools/ResourceMappingTool"; + static constexpr const char EngineWindowsPythonEntryScriptPath[] = "python/python.cmd"; + + AWSCoreResourceMappingToolAction(const QString& text); + + AZStd::string GetToolLaunchCommand() const; + AZStd::string GetToolLogPath() const; + AZStd::string GetToolReadMePath() const; + + private: + bool m_isDebug; + AZStd::string m_enginePythonEntryPath; + AZStd::string m_toolScriptPath; + AZStd::string m_toolQtBinDirectoryPath; + + AZStd::string m_toolLogPath; + AZStd::string m_toolReadMePath; + }; +} // namespace AWSCore diff --git a/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp index 62ead9ba4a..754cc32751 100644 --- a/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp +++ b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp @@ -13,17 +13,20 @@ #include #include #include +#include #include #include #include +#include #include +#include #include #include #include +#include #include -#include #include #include @@ -31,15 +34,9 @@ namespace AWSCore { AWSCoreEditorMenu::AWSCoreEditorMenu(const QString& text) : QMenu(text) - , m_engineRootFolder("") - , m_resourceMappintToolIsRunning(false) + , m_resourceMappingToolWatcher(nullptr) { - InitializeEngineRootFolder(); - -#ifdef AWSCORE_EDITOR_RESOURCE_MAPPING_TOOL_ENABLED InitializeResourceMappingToolAction(); - this->addSeparator(); -#endif InitializeAWSDocActions(); this->addSeparator(); InitializeAWSFeatureGemActions(); @@ -50,46 +47,58 @@ namespace AWSCore AWSCoreEditorMenu::~AWSCoreEditorMenu() { AWSCoreEditorRequestBus::Handler::BusDisconnect(); - - if (m_resourceMappingToolThread.joinable()) + if (m_resourceMappingToolWatcher) { - m_resourceMappingToolThread.join(); - } - } - - void AWSCoreEditorMenu::InitializeEngineRootFolder() - { - auto engineRootFolder = AZ::IO::FileIOBase::GetInstance()->GetAlias("@engroot@"); - if (!engineRootFolder) - { - AZ_Error("AWSCoreEditorMenu", false, "Failed to initialize engine root folder path."); - } - else - { - m_engineRootFolder = engineRootFolder; + if (m_resourceMappingToolWatcher->IsProcessRunning()) + { + m_resourceMappingToolWatcher->TerminateProcess(AZ::u32(-1)); + } + m_resourceMappingToolWatcher.reset(); } + this->clear(); } void AWSCoreEditorMenu::InitializeResourceMappingToolAction() { - QAction* resourceMappingAction = new QAction(QObject::tr(AWSResourceMappingToolActionText)); - QObject::connect(resourceMappingAction, &QAction::triggered, this, [this]() { - AZStd::lock_guard lockGuard{m_resourceMappingToolMutex}; - if (!m_resourceMappintToolIsRunning) - { - m_resourceMappintToolIsRunning = true; - if (m_resourceMappingToolThread.joinable()) +#ifdef AWSCORE_EDITOR_RESOURCE_MAPPING_TOOL_ENABLED + AWSCoreResourceMappingToolAction* resourceMappingTool = + new AWSCoreResourceMappingToolAction(QObject::tr(AWSResourceMappingToolActionText)); + QObject::connect(resourceMappingTool, &QAction::triggered, this, + [resourceMappingTool, this]() { + AZStd::string launchCommand = resourceMappingTool->GetToolLaunchCommand(); + if (launchCommand.empty()) { - m_resourceMappingToolThread.join(); + AZStd::string resourceMappingToolReadMePath = resourceMappingTool->GetToolReadMePath(); + AZStd::string message = AZStd::string::format(AWSResourceMappingToolReadMeWarningText, resourceMappingToolReadMePath.c_str()); + QMessageBox::warning(QApplication::activeWindow(), "Warning", message.c_str(), QMessageBox::Ok); + return; + } + if (m_resourceMappingToolWatcher && m_resourceMappingToolWatcher->IsProcessRunning()) + { + QMessageBox::information(QApplication::activeWindow(), "Info", AWSResourceMappingToolIsRunningText, QMessageBox::Ok); + return; + } + if (m_resourceMappingToolWatcher) + { + m_resourceMappingToolWatcher.reset(); + } + + AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo; + processLaunchInfo.m_commandlineParameters = launchCommand; + processLaunchInfo.m_showWindow = false; + m_resourceMappingToolWatcher = AZStd::unique_ptr( + AzFramework::ProcessWatcher::LaunchProcess(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_NONE)); + + if (!m_resourceMappingToolWatcher || !m_resourceMappingToolWatcher->IsProcessRunning()) + { + AZStd::string resourceMappingToolLogPath = resourceMappingTool->GetToolLogPath(); + AZStd::string message = AZStd::string::format(AWSResourceMappingToolLogWarningText, resourceMappingToolLogPath.c_str()); + QMessageBox::warning(QApplication::activeWindow(), "Warning", message.c_str(), QMessageBox::Ok); } - m_resourceMappingToolThread = AZStd::thread(AZStd::bind(&AWSCoreEditorMenu::StartResourceMappingProcess, this)); - } - else - { - AZ_Warning("AWSCoreEditorMenu", false, "Resource Mapping Tool is already running..."); - } }); - this->addAction(resourceMappingAction); + this->addAction(resourceMappingTool); + this->addSeparator(); +#endif } void AWSCoreEditorMenu::InitializeAWSDocActions() @@ -124,31 +133,6 @@ namespace AWSCore this->addAction(metrics); } - void AWSCoreEditorMenu::StartResourceMappingProcess() - { - AZStd::string toolScriptPath = AZStd::string::format("%s/%s", m_engineRootFolder.c_str(), ResourceMappingToolPath); - AzFramework::StringFunc::Path::Normalize(toolScriptPath); - QProcess resourceMappingToolProcess; - resourceMappingToolProcess.setProgram("cmd.exe"); - resourceMappingToolProcess.setArguments({"/C", toolScriptPath.c_str()}); - - resourceMappingToolProcess.start(); - while (!resourceMappingToolProcess.waitForFinished()) - { - if (resourceMappingToolProcess.state() != QProcess::Running) - { - break; - } - } - if (resourceMappingToolProcess.exitCode() != 0) - { - AZ_Error("AWSCoreEditorMenu", false, - "Failed to launch Resource Mapping Tool, please follow README to setup tool before using it."); - } - AZStd::lock_guard lockGuard{m_resourceMappingToolMutex}; - m_resourceMappintToolIsRunning = false; - } - void AWSCoreEditorMenu::SetAWSClientAuthEnabled() { SetAWSFeatureActionsEnabled(AWSClientAuthActionText); diff --git a/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp new file mode 100644 index 0000000000..fb46a8a700 --- /dev/null +++ b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp @@ -0,0 +1,134 @@ +/* + * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or + * its licensors. + * + * For complete copyright and license terms please see the LICENSE at the root of this + * distribution (the "License"). All use of this software is governed by the License, + * or, if provided, by the license below or the license accompanying this file. Do not + * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + */ + +#include +#include +#include + +#include + +namespace AWSCore +{ + AWSCoreResourceMappingToolAction::AWSCoreResourceMappingToolAction(const QString& text) + : QAction(text) + , m_isDebug(false) + , m_enginePythonEntryPath("") + , m_toolScriptPath("") + , m_toolQtBinDirectoryPath("") + , m_toolLogPath("") + , m_toolReadMePath("") + { + auto engineRootPath = AZ::IO::FileIOBase::GetInstance()->GetAlias("@engroot@"); + if (!engineRootPath) + { + AZ_Error("AWSCoreEditor", false, "Failed to determine engine root path."); + } + else + { + m_enginePythonEntryPath = AZStd::string::format("%s/%s", engineRootPath, EngineWindowsPythonEntryScriptPath); + AzFramework::StringFunc::Path::Normalize(m_enginePythonEntryPath); + if (!AZ::IO::SystemFile::Exists(m_enginePythonEntryPath.c_str())) + { + AZ_Error("AWSCoreEditor", false, "Failed to find engine python entry at %s.", m_enginePythonEntryPath.c_str()); + m_enginePythonEntryPath.clear(); + } + + m_toolScriptPath = AZStd::string::format("%s/%s/resource_mapping_tool.py", engineRootPath, ResourceMappingToolDirectoryPath); + AzFramework::StringFunc::Path::Normalize(m_toolScriptPath); + if (!AZ::IO::SystemFile::Exists(m_toolScriptPath.c_str())) + { + AZ_Error("AWSCoreEditor", false, "Failed to find ResourceMappingTool python script at %s.", m_toolScriptPath.c_str()); + m_toolScriptPath.clear(); + } + + m_toolLogPath = AZStd::string::format("%s/%s/resource_mapping_tool.log", engineRootPath, ResourceMappingToolDirectoryPath); + AzFramework::StringFunc::Path::Normalize(m_toolLogPath); + if (!AZ::IO::SystemFile::Exists(m_toolLogPath.c_str())) + { + AZ_Error("AWSCoreEditor", false, "Failed to find ResourceMappingTool log file at %s.", m_toolLogPath.c_str()); + m_toolLogPath.clear(); + } + + m_toolReadMePath = AZStd::string::format("%s/%s/README.md", engineRootPath, ResourceMappingToolDirectoryPath); + AzFramework::StringFunc::Path::Normalize(m_toolReadMePath); + if (!AZ::IO::SystemFile::Exists(m_toolReadMePath.c_str())) + { + AZ_Error("AWSCoreEditor", false, "Failed to find ResourceMappingTool README file at %s.", m_toolReadMePath.c_str()); + m_toolReadMePath.clear(); + } + + char executablePath[AZ_MAX_PATH_LEN]; + auto result = AZ::Utils::GetExecutablePath(executablePath, AZ_MAX_PATH_LEN); + if (result.m_pathStored != AZ::Utils::ExecutablePathResult::Success) + { + AZ_Error("AWSCoreEditor", false, "Failed to find engine executable path."); + } + else + { + if (result.m_pathIncludesFilename) + { + // Remove the file name if it exists, and keep the parent folder only + char* lastSeparatorAddress = strrchr(executablePath, AZ_CORRECT_FILESYSTEM_SEPARATOR); + if (lastSeparatorAddress) + { + *lastSeparatorAddress = '\0'; + } + } + } + + AZStd::string binDirectoryPath(executablePath); + auto lastSeparator = binDirectoryPath.find_last_of(AZ_CORRECT_FILESYSTEM_SEPARATOR); + if (lastSeparator != AZStd::string::npos) + { + m_isDebug = binDirectoryPath.substr(lastSeparator).contains("debug"); + } + + m_toolQtBinDirectoryPath = AZStd::string::format("%s/%s", binDirectoryPath.c_str(), "AWSCoreEditorQtBin"); + AzFramework::StringFunc::Path::Normalize(m_toolQtBinDirectoryPath); + if (!AZ::IO::SystemFile::Exists(m_toolQtBinDirectoryPath.c_str())) + { + AZ_Error("AWSCoreEditor", false, "Failed to find ResourceMappingTool Qt binaries at %s.", m_toolQtBinDirectoryPath.c_str()); + m_toolQtBinDirectoryPath.clear(); + } + } + } + + AZStd::string AWSCoreResourceMappingToolAction::GetToolLaunchCommand() const + { + if (m_enginePythonEntryPath.empty() || m_toolScriptPath.empty() || m_toolQtBinDirectoryPath.empty()) + { + return ""; + } + if (m_isDebug) + { + return AZStd::string::format( + "%s debug %s --binaries_path %s --debug", + m_enginePythonEntryPath.c_str(), m_toolScriptPath.c_str(), m_toolQtBinDirectoryPath.c_str()); + } + else + { + return AZStd::string::format( + "%s %s --binaries_path %s", + m_enginePythonEntryPath.c_str(), m_toolScriptPath.c_str(), m_toolQtBinDirectoryPath.c_str()); + } + } + + AZStd::string AWSCoreResourceMappingToolAction::GetToolLogPath() const + { + return m_toolLogPath; + } + + AZStd::string AWSCoreResourceMappingToolAction::GetToolReadMePath() const + { + return m_toolReadMePath; + } +} // namespace AWSCore diff --git a/Gems/AWSCore/Code/Tests/AWSCoreEditorSystemComponentTest.cpp b/Gems/AWSCore/Code/Tests/AWSCoreEditorSystemComponentTest.cpp index 6d0484c11a..e9c249f1c8 100644 --- a/Gems/AWSCore/Code/Tests/AWSCoreEditorSystemComponentTest.cpp +++ b/Gems/AWSCore/Code/Tests/AWSCoreEditorSystemComponentTest.cpp @@ -36,7 +36,6 @@ class AWSCoreEditorSystemComponentTest AWSCoreEditorUIFixture::SetUp(); AWSCoreFixture::SetUp(); - m_localFileIO->SetAlias("@engroot@", "dummy engine root"); m_serializeContext = AZStd::make_unique(); m_serializeContext->CreateEditContext(); m_behaviorContext = AZStd::make_unique(); @@ -46,7 +45,9 @@ class AWSCoreEditorSystemComponentTest m_entity = aznew AZ::Entity(); m_coreEditorSystemsComponent.reset(m_entity->CreateComponent()); + AZ_TEST_START_TRACE_SUPPRESSION; m_entity->Init(); + AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error m_entity->Activate(); } diff --git a/Gems/AWSCore/Code/Tests/Editor/AWSCoreEditorManagerTest.cpp b/Gems/AWSCore/Code/Tests/Editor/AWSCoreEditorManagerTest.cpp index 007fef46df..84efabc0f6 100644 --- a/Gems/AWSCore/Code/Tests/Editor/AWSCoreEditorManagerTest.cpp +++ b/Gems/AWSCore/Code/Tests/Editor/AWSCoreEditorManagerTest.cpp @@ -27,8 +27,6 @@ class AWSCoreEditorManagerTest { AWSCoreEditorUIFixture::SetUp(); AWSCoreFixture::SetUp(); - - m_localFileIO->SetAlias("@engroot@", "dummy engine root"); } void TearDown() override @@ -40,6 +38,8 @@ class AWSCoreEditorManagerTest TEST_F(AWSCoreEditorManagerTest, AWSCoreEditorManager_Constructor_HaveExpectedUIResourcesCreated) { + AZ_TEST_START_TRACE_SUPPRESSION; AWSCoreEditorManager testManager; + AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error EXPECT_TRUE(testManager.GetAWSCoreEditorMenu()); } diff --git a/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreEditorMenuTest.cpp b/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreEditorMenuTest.cpp index 01622a5a92..7a578d2bbe 100644 --- a/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreEditorMenuTest.cpp +++ b/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreEditorMenuTest.cpp @@ -35,8 +35,6 @@ class AWSCoreEditorMenuTest { AWSCoreEditorUIFixture::SetUp(); AWSCoreFixture::SetUp(); - - m_localFileIO->SetAlias("@engroot@", "dummy engine root"); } void TearDown() override @@ -48,7 +46,6 @@ class AWSCoreEditorMenuTest TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_NoEngineRootFolder_ExpectOneError) { - m_localFileIO->ClearAlias("@engroot@"); AZ_TEST_START_TRACE_SUPPRESSION; AWSCoreEditorMenu testMenu("dummy title"); AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error @@ -56,7 +53,9 @@ TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_NoEngineRootFolder_ExpectOneErro TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_GetAllActions_GetExpectedNumberOfActions) { + AZ_TEST_START_TRACE_SUPPRESSION; AWSCoreEditorMenu testMenu("dummy title"); + AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error QList actualActions = testMenu.actions(); #ifdef AWSCORE_EDITOR_RESOURCE_MAPPING_TOOL_ENABLED @@ -68,7 +67,9 @@ TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_GetAllActions_GetExpectedNumberO TEST_F(AWSCoreEditorMenuTest, AWSCoreEditorMenu_BroadcastFeatureGemsAreEnabled_CorrespondingActionsAreEnabled) { + AZ_TEST_START_TRACE_SUPPRESSION; AWSCoreEditorMenu testMenu("dummy title"); + AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error AWSCoreEditorRequestBus::Broadcast(&AWSCoreEditorRequests::SetAWSClientAuthEnabled); AWSCoreEditorRequestBus::Broadcast(&AWSCoreEditorRequests::SetAWSMetricsEnabled); diff --git a/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreResourceMappingToolActionTest.cpp b/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreResourceMappingToolActionTest.cpp new file mode 100644 index 0000000000..7efe77bc01 --- /dev/null +++ b/Gems/AWSCore/Code/Tests/Editor/UI/AWSCoreResourceMappingToolActionTest.cpp @@ -0,0 +1,57 @@ +/* + * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or + * its licensors. + * + * For complete copyright and license terms please see the LICENSE at the root of this + * distribution (the "License"). All use of this software is governed by the License, + * or, if provided, by the license below or the license accompanying this file. Do not + * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + */ + +#include + +#include +#include +#include + +#include + +using namespace AWSCore; + +class AWSCoreResourceMappingToolActionTest + : public AWSCoreFixture + , public AWSCoreEditorUIFixture +{ + void SetUp() override + { + AWSCoreEditorUIFixture::SetUp(); + AWSCoreFixture::SetUp(); + m_localFileIO->SetAlias("@engroot@", "dummy engine root"); + } + + void TearDown() override + { + AWSCoreFixture::TearDown(); + AWSCoreEditorUIFixture::TearDown(); + } +}; + +TEST_F(AWSCoreResourceMappingToolActionTest, AWSCoreResourceMappingToolAction_NoEngineRootFolder_ExpectOneError) +{ + m_localFileIO->ClearAlias("@engroot@"); + AZ_TEST_START_TRACE_SUPPRESSION; + AWSCoreResourceMappingToolAction testAction("dummy title"); + AZ_TEST_STOP_TRACE_SUPPRESSION(1); // expect the above have thrown an AZ_Error +} + +TEST_F(AWSCoreResourceMappingToolActionTest, AWSCoreResourceMappingToolAction_UnableToFindExpectedFileOrFolder_ExpectFiveErrorsAndEmptyResult) +{ + AZ_TEST_START_TRACE_SUPPRESSION; + AWSCoreResourceMappingToolAction testAction("dummy title"); + AZ_TEST_STOP_TRACE_SUPPRESSION_NO_COUNT; + EXPECT_TRUE(testAction.GetToolLaunchCommand() == ""); + EXPECT_TRUE(testAction.GetToolLogPath() == ""); + EXPECT_TRUE(testAction.GetToolReadMePath() == ""); +} diff --git a/Gems/AWSCore/Code/Tools/ResourceMappingTool/README.md b/Gems/AWSCore/Code/Tools/ResourceMappingTool/README.md index d90f78465b..78a8856288 100644 --- a/Gems/AWSCore/Code/Tools/ResourceMappingTool/README.md +++ b/Gems/AWSCore/Code/Tools/ResourceMappingTool/README.md @@ -3,45 +3,44 @@ ## Setup aws config and credential Resource mapping tool is using boto3 to interact with aws services: - * Follow boto3 + * Read boto3 [Configuration](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html) to setup default aws region. - * Follow boto3 + * Read boto3 [Credentials](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) to setup default profile or credential keys. Or follow **AWS CLI** configuration which can be reused by boto3 lib: * Follow [Quick configuration with aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) -**In Progress** - Override default aws profile in resource mapping tool - ## Python Environment Setup Options -### 1. Engine python environment -In order to use engine python environment, it requires to link Qt binaries for this tool. +### 1. Engine python environment (Including Editor) +1. In order to use engine python environment, it requires to link Qt binaries for this tool. Follow cmake instructions to configure your project, for example: + ``` + $ cmake -B -S . -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH= -DLY_PROJECTS= + ``` -``` -$ cmake -B -S . -G "Visual Studio 16 2019" -DLY_3RDPARTY_PATH= -DLY_PROJECTS= -``` +2. At this point, double check engine python environment gets setup under */python/runtime* directory -Build project with **AWSCore.Editor** target to generate required Qt binaries. -(Or use **Editor** target) +3. Build project with **AWSCore.Editor** (or **AWSCore.ResourceMappintTool**, or **Editor**) target to generate required Qt binaries. + ``` + $ cmake --build --target AWSCore.Editor --config -j + ``` -``` -$ cmake --build --target AWSCore.Editor --config -j -``` - -Launch resource mapping tool under engine root folder: - -#### Windows -##### release mode -``` -$ python\python.cmd Gems\AWSCore\Code\Tools\ResourceMappingTool\resource_mapping_tool.py --binaries_path \bin\profile\AWSCoreEditorPlugins -``` -##### debug mode -``` -$ python\python.cmd debug Gems\AWSCore\Code\Tools\ResourceMappingTool\resource_mapping_tool.py --binaries_path \bin\debug\AWSCoreEditorPlugins -``` +4. At this point, double check Qt binaries gets generated under */bin//AWSCoreEditorQtBin* directory +5. Launch resource mapping tool under engine root folder: + * Windows + * release mode + ``` + $ python\python.cmd Gems\AWSCore\Code\Tools\ResourceMappingTool\resource_mapping_tool.py --binaries_path \bin\profile\AWSCoreEditorQtBin + ``` + * debug mode + ``` + $ python\python.cmd debug Gems\AWSCore\Code\Tools\ResourceMappingTool\resource_mapping_tool.py --binaries_path \bin\debug\AWSCoreEditorQtBin + ``` +* Note - Editor is integrated with the same engine python environment to launch Resource Mapping Tool. If it is failed to launch the tool +in Editor, please follow above steps to make sure expected scripts/binaries are present. ### 2. Python virtual environment This project is set up like a standard Python project. The initialization @@ -51,47 +50,42 @@ directory. To create the virtualenv it assumes that there is a `python3` package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually. -To manually create a virtualenv on MacOS and Linux: +1. To manually create a virtualenv: + * Windows + ``` + $ python -m venv .env + ``` + * Mac or Linux + ``` + $ python3 -m venv .env + ``` -``` -$ python -m venv .env -``` +2. Once the virtualenv is created, you can use the following step to activate your virtualenv: + * Windows + ``` + % .env\Scripts\activate.bat + ``` + * Mac or Linux + ``` + $ source .env/bin/activate + ``` -Once the virtualenv is created, you can use the following step to activate your virtualenv. +3. Once the virtualenv is activated, you can install the required dependencies: + * Windows + ``` + $ pip install -r requirements.txt + ``` + * Mac or Linux + ``` + $ pip3 install -r requirements.txt + ``` -``` -$ source .env/bin/activate -``` - -If you are a Windows platform, you would activate the virtualenv like this: - -``` -% .env\Scripts\activate.bat -``` - -Once the virtualenv is activated, you can install the required dependencies. - -``` -$ pip install -r requirements.txt -``` - -#### 2.1 Launch Options -##### 2.1.1 Launch Resource Mapping Tool from python directly -At this point you can launch tool like other standard python project. - -``` -$ python resource_mapping_tool.py -``` - -##### 2.1.2 Launch Resource Mapping Tool from batch script/Editor -Update `resource_mapping_tool.cmd` with your virtualenv full path. - - * **VIRTUALENV_PATH**: Fill this variable with your virtualenv full path. - -Then you can launch the resource mapping tool by running the batch script directly. - -``` -$ resource_mapping_tool.cmd -``` - -Or you can launch the resource mapping tool from menu action Cloud services/AWS Resource Mapping Tool... +4. At this point you can launch tool like other standard python project. + * Windows + ``` + $ python resource_mapping_tool.py + ``` + * Mac or Linux + ``` + $ python3 resource_mapping_tool.py + ``` diff --git a/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.cmd b/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.cmd deleted file mode 100644 index be2f308de7..0000000000 --- a/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.cmd +++ /dev/null @@ -1,24 +0,0 @@ -@ECHO OFF -REM -REM All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -REM its licensors. -REM -REM For complete copyright and license terms please see the LICENSE at the root of this -REM distribution (the "License"). All use of this software is governed by the License, -REM or, if provided, by the license below or the license accompanying this file. Do not -REM remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -REM -REM Original file Copyright Crytek GMBH or its affiliates, used under license. -REM - -SETLOCAL -SET CMD_DIR=%~dp0 -SET CMD_DIR=%CMD_DIR:~0,-1% - -SET VIRTUALENV_PATH= -SET RESOURCE_MAPPING_DIR=%CMD_DIR% -SET LOCAL_PYTHONPATH=%VIRTUALENV_PATH%\Scripts\python.exe - -%LOCAL_PYTHONPATH% %RESOURCE_MAPPING_DIR%\resource_mapping_tool.py %* && exit 0 -exit 1 diff --git a/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.py b/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.py index b067105ce3..90e702b997 100755 --- a/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.py +++ b/Gems/AWSCore/Code/Tools/ResourceMappingTool/resource_mapping_tool.py @@ -19,7 +19,7 @@ from utils import file_utils # arguments setup argument_parser: ArgumentParser = ArgumentParser() argument_parser.add_argument('--binaries_path', help='Path to QT Binaries necessary for PySide.') -argument_parser.add_argument('--debug', action='store_true', help='Execute on debug mode.') +argument_parser.add_argument('--debug', action='store_true', help='Execute on debug mode to enable DEBUG logging level') arguments: Namespace = argument_parser.parse_args() # logging setup diff --git a/Gems/AWSCore/Code/awscore_editor_files.cmake b/Gems/AWSCore/Code/awscore_editor_files.cmake index b8b9fbbc11..652f0455e1 100644 --- a/Gems/AWSCore/Code/awscore_editor_files.cmake +++ b/Gems/AWSCore/Code/awscore_editor_files.cmake @@ -13,7 +13,9 @@ set(FILES Include/Private/AWSCoreEditorSystemComponent.h Include/Private/Editor/AWSCoreEditorManager.h Include/Private/Editor/UI/AWSCoreEditorMenu.h + Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h Source/AWSCoreEditorSystemComponent.cpp Source/Editor/AWSCoreEditorManager.cpp Source/Editor/UI/AWSCoreEditorMenu.cpp + Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp ) diff --git a/Gems/AWSCore/Code/awscore_editor_tests_files.cmake b/Gems/AWSCore/Code/awscore_editor_tests_files.cmake index 60852746fb..ff89b6b5bd 100644 --- a/Gems/AWSCore/Code/awscore_editor_tests_files.cmake +++ b/Gems/AWSCore/Code/awscore_editor_tests_files.cmake @@ -13,6 +13,7 @@ set(FILES Tests/AWSCoreEditorSystemComponentTest.cpp Tests/Editor/UI/AWSCoreEditorMenuTest.cpp Tests/Editor/UI/AWSCoreEditorUIFixture.h + Tests/Editor/UI/AWSCoreResourceMappingToolActionTest.cpp Tests/Editor/AWSCoreEditorManagerTest.cpp Tests/Editor/AWSCoreEditorTest.cpp ) diff --git a/Gems/ScriptCanvasDiagnosticLibrary/Code/scriptcanvasdiagnosticlibrary_shared_files.cmake b/Gems/AWSCore/Code/awscore_resourcemappingtool_files.cmake similarity index 81% rename from Gems/ScriptCanvasDiagnosticLibrary/Code/scriptcanvasdiagnosticlibrary_shared_files.cmake rename to Gems/AWSCore/Code/awscore_resourcemappingtool_files.cmake index 9f251cd671..b67c50e955 100644 --- a/Gems/ScriptCanvasDiagnosticLibrary/Code/scriptcanvasdiagnosticlibrary_shared_files.cmake +++ b/Gems/AWSCore/Code/awscore_resourcemappingtool_files.cmake @@ -10,5 +10,6 @@ # set(FILES - Source/ScriptCanvasDiagnosticLibraryGem.cpp + Include/Private/Editor/UI/AWSCoreResourceMappingToolAction.h + Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp ) diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageBuilderComponent.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageBuilderComponent.cpp index 5d5fd21b44..ccba00f15f 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageBuilderComponent.cpp +++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageBuilderComponent.cpp @@ -188,26 +188,6 @@ namespace ImageProcessingAtom // the request will contain the CreateJobResponse you constructed earlier, including any keys and values you placed into the hash table void ImageBuilderWorker::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) { - // Exclude the "Engine/EngineAssets/Textures/rotrandom.dds" which is not a legit dds file but required by Cry3dEngine. - // [GFX TODO] Remove this block of code when removing Cry3dEngine and its engine assets entirely. - AZStd::string assetFileName; - AzFramework::StringFunc::Path::GetFullFileName(request.m_sourceFile.data(), assetFileName); - if (azstricmp(assetFileName.data(), "rotrandom.dds") == 0) - { - AZStd::string assetPath = request.m_fullPath; - AzFramework::ApplicationRequests::Bus::Broadcast(&AzFramework::ApplicationRequests::MakePathRootRelative, assetPath); - // The MakePathRootRelative only normalize but not convert the path to lower case, we need to call NormalizePath to convert it to lower case - AzFramework::ApplicationRequests::Bus::Broadcast(&AzFramework::ApplicationRequests::NormalizePath, assetPath); - AZStd::string excludePath = "Engine/EngineAssets/Textures/rotrandom.dds"; - AzFramework::ApplicationRequests::Bus::Broadcast(&AzFramework::ApplicationRequests::NormalizePath, excludePath); - - if (assetPath == excludePath) - { - response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success; - return; - } - } - // Before we begin, let's make sure we are not meant to abort. AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId); diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp index a586de9724..dda4587588 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp +++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp @@ -22,13 +22,13 @@ namespace ImageProcessingAtom { namespace Thumbnails { - const int ImageThumbnailSize = 200; + static constexpr const int ImageThumbnailSize = 256; ////////////////////////////////////////////////////////////////////////// // ImageThumbnail ////////////////////////////////////////////////////////////////////////// - ImageThumbnail::ImageThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + ImageThumbnail::ImageThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key) + : Thumbnail(key) { auto sourceKey = azrtti_cast(key.data()); if (sourceKey) @@ -66,7 +66,7 @@ namespace ImageProcessingAtom AzToolsFramework::Thumbnailer::ThumbnailerRendererRequestBus::QueueEvent( AZ::RPI::StreamingImageAsset::RTTI_Type(), &AzToolsFramework::Thumbnailer::ThumbnailerRendererRequests::RenderThumbnail, m_key, - m_thumbnailSize); + ImageThumbnailSize); // wait for response from thumbnail renderer m_renderWait.acquire(); } diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.h b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.h index 85ce9d59e6..a73a742b83 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.h +++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.h @@ -34,7 +34,7 @@ namespace ImageProcessingAtom { Q_OBJECT public: - ImageThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize); + ImageThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key); ~ImageThumbnail() override; //! AzToolsFramework::ThumbnailerRendererNotificationBus::Handler overrides... diff --git a/Gems/Atom/Asset/Shader/Code/AZSL/Platform/Android/Vulkan/AzslcHeader.azsli b/Gems/Atom/Asset/Shader/Code/AZSL/Platform/Android/Vulkan/AzslcHeader.azsli index 12fd787150..8f0d4dd392 100644 --- a/Gems/Atom/Asset/Shader/Code/AZSL/Platform/Android/Vulkan/AzslcHeader.azsli +++ b/Gems/Atom/Asset/Shader/Code/AZSL/Platform/Android/Vulkan/AzslcHeader.azsli @@ -19,3 +19,7 @@ #define AZ_TRAIT_ASTC_COMPRESSION 1 static const float4 s_AzslDebugColor = float4(165.0 / 255.0, 30.0 / 255.0, 36.0 / 255.0, 1); + +// Uniform limitation need to be taken into consideration for mobile devices +// [ATOM-14949] +#define AZ_TRAIT_CONSTANT_BUFFER_LIMITATIONS 1 \ No newline at end of file diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/CommonFiles/Preprocessor.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/CommonFiles/Preprocessor.cpp index 80449a3eb7..84a95b2c54 100644 --- a/Gems/Atom/Asset/Shader/Code/Source/Editor/CommonFiles/Preprocessor.cpp +++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/CommonFiles/Preprocessor.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -299,6 +300,9 @@ namespace AZ // we transfer to a set, to order the folders, uniquify them, and ensure deterministic build behavior AZStd::set scanFoldersSet; + // Add the project path to list of include paths + AZ::IO::FixedMaxPathString projectPath = AZ::Utils::GetProjectPath(); + scanFoldersSet.emplace(projectPath.c_str(), projectPath.size()); // but while we transfer to the set, we're going to keep only folders where +/ShaderLib exists for (AZStd::string folder : scanFoldersVector) { @@ -310,14 +314,12 @@ namespace AZ } // the folders constructed this fashion constitute the base of automatic include search paths // get the engine root: - AZStd::string engineRoot; - AzFramework::ApplicationRequests::Bus::BroadcastResult(engineRoot, &AzFramework::ApplicationRequests::GetEngineRoot); - AzFramework::StringFunc::Path::Normalize(engineRoot); + AZ::IO::FixedMaxPath engineRoot = AZ::Utils::GetEnginePath(); // add optional additional options for (AZStd::string& path : options.m_projectIncludePaths) { - AzFramework::StringFunc::Path::Join(engineRoot.c_str(), path.c_str(), path); + path = (engineRoot / path).String(); DeleteFromSet(path, scanFoldersSet); // no need to add a path two times. } // back-insert the default paths (after the config-read paths we just read) diff --git a/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceBlurMobile.pass b/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceBlurMobile.pass new file mode 100644 index 0000000000..e11bcac78d --- /dev/null +++ b/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceBlurMobile.pass @@ -0,0 +1,43 @@ +{ + "Type": "JsonSerialization", + "Version": 1, + "ClassName": "PassAsset", + "ClassData": { + "PassTemplate": { + "Name": "ReflectionScreenSpaceBlurMobilePassTemplate", + "PassClass": "ReflectionScreenSpaceBlurPass", + "Slots": [ + { + "Name": "PreviousFrameInputOutput", + "SlotType": "InputOutput", + "ScopeAttachmentUsage": "Shader" + } + ], + "ImageAttachments": [ + { + "Name": "PreviousFrameImage", + "SizeSource": { + "Source": { + "Pass": "Parent", + "Attachment": "SpecularInput" + } + }, + "ImageDescriptor": { + "Format": "R8G8B8A8_SINT", + "MipLevels": "8", + "SharedQueueMask": "Graphics" + } + } + ], + "Connections": [ + { + "LocalSlot": "PreviousFrameInputOutput", + "AttachmentRef": { + "Pass": "This", + "Attachment": "PreviousFrameImage" + } + } + ] + } + } +} diff --git a/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceMobile.pass b/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceMobile.pass new file mode 100644 index 0000000000..648d643496 --- /dev/null +++ b/Gems/Atom/Feature/Common/Assets/Passes/ReflectionScreenSpaceMobile.pass @@ -0,0 +1,137 @@ +{ + "Type": "JsonSerialization", + "Version": 1, + "ClassName": "PassAsset", + "ClassData": { + "PassTemplate": { + "Name": "ReflectionScreenSpaceMobilePassTemplate", + "PassClass": "ParentPass", + "Slots": [ + { + "Name": "NormalInput", + "SlotType": "Input", + "ScopeAttachmentUsage": "Shader" + }, + { + "Name": "SpecularF0Input", + "SlotType": "Input", + "ScopeAttachmentUsage": "Shader" + }, + { + "Name": "SpecularInput", + "SlotType": "Input", + "ScopeAttachmentUsage": "Shader" + }, + { + "Name": "DepthStencilInput", + "SlotType": "Input", + "ScopeAttachmentUsage": "DepthStencil" + }, + { + "Name": "ReflectionInputOutput", + "SlotType": "InputOutput", + "ScopeAttachmentUsage": "RenderTarget" + } + ], + "PassRequests": [ + { + "Name": "ReflectionScreenSpaceBlurMobilePass", + "TemplateName": "ReflectionScreenSpaceBlurMobilePassTemplate" + }, + { + "Name": "ReflectionScreenSpaceTracePass", + "TemplateName": "ReflectionScreenSpaceTracePassTemplate", + "Connections": [ + { + "LocalSlot": "DepthStencilTextureInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "DepthStencilInput" + } + }, + { + "LocalSlot": "NormalInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "NormalInput" + } + }, + { + "LocalSlot": "DepthStencilInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "DepthStencilInput" + + } + }, + { + "LocalSlot": "SpecularF0Input", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "SpecularF0Input" + } + } + ] + }, + { + "Name": "ReflectionScreenSpaceCompositePass", + "TemplateName": "ReflectionScreenSpaceCompositePassTemplate", + "ExecuteAfter": [ + "ReflectionScreenSpaceBlurPass" + ], + "Connections": [ + { + "LocalSlot": "TraceInput", + "AttachmentRef": { + "Pass": "ReflectionScreenSpaceTracePass", + "Attachment": "Output" + } + }, + { + "LocalSlot": "PreviousFrameBufferInput", + "AttachmentRef": { + "Pass": "ReflectionScreenSpaceBlurPass", + "Attachment": "PreviousFrameInputOutput" + } + }, + { + "LocalSlot": "NormalInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "NormalInput" + } + }, + { + "LocalSlot": "SpecularF0Input", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "SpecularF0Input" + } + }, + { + "LocalSlot": "DepthStencilTextureInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "DepthStencilInput" + } + }, + { + "LocalSlot": "DepthStencilInput", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "DepthStencilInput" + } + }, + { + "LocalSlot": "Output", + "AttachmentRef": { + "Pass": "Parent", + "Attachment": "ReflectionInputOutput" + } + } + ] + } + ] + } + } +} diff --git a/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass b/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass index 5e69ded5ac..a35352b9f0 100644 --- a/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass +++ b/Gems/Atom/Feature/Common/Assets/Passes/Reflections_nomsaa.pass @@ -247,8 +247,10 @@ } }, { - "Name": "ReflectionScreenSpacePass", - "TemplateName": "ReflectionScreenSpacePassTemplate", + // Using cut-down version of screen space reflection for handling the attachment format compatibility issues. + // This is used for mobile devices with limited capabilities. + "Name": "ReflectionScreenSpaceMobilePass", + "TemplateName": "ReflectionScreenSpaceMobilePassTemplate", "Enabled": false, "Connections": [ { diff --git a/Gems/Atom/RHI/Vulkan/Code/Source/RHI/GraphicsPipeline.cpp b/Gems/Atom/RHI/Vulkan/Code/Source/RHI/GraphicsPipeline.cpp index 7b39e56274..96b9f171c8 100644 --- a/Gems/Atom/RHI/Vulkan/Code/Source/RHI/GraphicsPipeline.cpp +++ b/Gems/Atom/RHI/Vulkan/Code/Source/RHI/GraphicsPipeline.cpp @@ -285,11 +285,6 @@ namespace AZ // This is not 100% correct, but in most cases it will give us the correct result. info.depthClampEnable = rasterState.m_depthClipEnable ? VK_FALSE : VK_TRUE; } - else if (!rasterState.m_depthClipEnable) - { - AZ_Error("Vulkan", false, "Depth clipping is being used but it's not supported on this device"); - return RHI::ResultCode::InvalidArgument; - } switch (rasterState.m_fillMode) { diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp index e1e87086e7..b5d3f815fe 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp @@ -33,6 +33,7 @@ namespace AZ nativeWindow, &AzFramework::WindowRequestBus::Events::GetClientAreaSize); AzFramework::WindowNotificationBus::Handler::BusConnect(nativeWindow); + AzFramework::ViewportRequestBus::Handler::BusConnect(id); m_onProjectionMatrixChangedHandler = ViewportContext::MatrixChangedEvent::Handler([this](const AZ::Matrix4x4& matrix) { @@ -48,6 +49,9 @@ namespace AZ ViewportContext::~ViewportContext() { + AzFramework::WindowNotificationBus::Handler::BusDisconnect(); + AzFramework::ViewportRequestBus::Handler::BusDisconnect(); + if (m_currentPipeline) { m_currentPipeline->RemoveFromRenderTick(); diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h index 5fd2862c65..b17a25a675 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h @@ -63,6 +63,7 @@ namespace AtomToolsFramework AZStd::vector m_vectorLabels; bool m_visible = true; bool m_readOnly = false; + bool m_showThumbnail = false; }; //! Wraps an AZStd::any value and configuration so that it can be displayed and edited in a ReflectedPropertyEditor. diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp index 754c35f0c2..5784355498 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp @@ -141,6 +141,7 @@ namespace AtomToolsFramework AddEditDataAttributeMemberFunction(AZ::Edit::Attributes::EnumValues, &DynamicProperty::GetEnumValues); AddEditDataAttributeMemberFunction(AZ::Edit::Attributes::ChangeNotify, &DynamicProperty::OnDataChanged); AddEditDataAttribute(AZ::Edit::Attributes::ShowProductAssetFileName, false); + AddEditDataAttribute(AZ_CRC_CE("Thumbnail"), m_config.m_showThumbnail); switch (m_config.m_dataType) { diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp index 6bdee9a319..3919684864 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp @@ -771,6 +771,7 @@ namespace MaterialEditor if (propertyIndexInBounds) { AtomToolsFramework::ConvertToPropertyConfig(propertyConfig, propertyDefinition); + propertyConfig.m_showThumbnail = true; propertyConfig.m_originalValue = AtomToolsFramework::ConvertToEditableType(m_materialAsset->GetPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_parentValue = AtomToolsFramework::ConvertToEditableType(parentPropertyValues[propertyIndex.GetIndex()]); propertyConfig.m_groupName = m_materialTypeSourceData.FindGroup(groupNameId)->m_displayName; @@ -810,6 +811,7 @@ namespace MaterialEditor propertyConfig.m_originalValue = propertyConfig.m_defaultValue; propertyConfig.m_parentValue = propertyConfig.m_defaultValue; propertyConfig.m_readOnly = true; + propertyConfig.m_showThumbnail = true; m_properties[propertyConfig.m_id] = AtomToolsFramework::DynamicProperty(propertyConfig); diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialBrowserWidget.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialBrowserWidget.cpp index 0dec1c6d23..3c4134b7e0 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialBrowserWidget.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialBrowserWidget.cpp @@ -110,30 +110,19 @@ namespace MaterialEditor { using namespace AzToolsFramework::AssetBrowser; - // Material Browser uses the following filters: - // 1. [All source files (no products) that contain products matching the assetType specified by searchWidget (default is materials and textures)] - // 2. [All folders (including empty folders)] - // 3. [All Sources and folders matching the search text typed in search widget] - // Final filter = ((1 OR 2) AND 3) - QSharedPointer sourceFilter(new EntryTypeFilter); sourceFilter->SetEntryType(AssetBrowserEntry::AssetEntryType::Source); - QSharedPointer assetTypeFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::AND)); - assetTypeFilter->AddFilter(sourceFilter); - assetTypeFilter->AddFilter(m_ui->m_searchWidget->GetTypesFilter()); - QSharedPointer folderFilter(new EntryTypeFilter); folderFilter->SetEntryType(AssetBrowserEntry::AssetEntryType::Folder); QSharedPointer sourceOrFolderFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::OR)); - sourceOrFolderFilter->AddFilter(assetTypeFilter); + sourceOrFolderFilter->AddFilter(sourceFilter); sourceOrFolderFilter->AddFilter(folderFilter); QSharedPointer finalFilter(new CompositeFilter(CompositeFilter::LogicOperatorType::AND)); finalFilter->AddFilter(sourceOrFolderFilter); - finalFilter->AddFilter(m_ui->m_searchWidget->GetStringFilter()); - finalFilter->SetFilterPropagation(AssetBrowserEntryFilter::PropagateDirection::Down); + finalFilter->AddFilter(m_ui->m_searchWidget->GetFilter()); return finalFilter; } diff --git a/Gems/Atom/Tools/MaterialEditor/Code/tool_dependencies.cmake b/Gems/Atom/Tools/MaterialEditor/Code/tool_dependencies.cmake index 36fe22de7c..587f01cc7c 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/tool_dependencies.cmake +++ b/Gems/Atom/Tools/MaterialEditor/Code/tool_dependencies.cmake @@ -10,6 +10,7 @@ # set(GEM_DEPENDENCIES + Gem::Atom_RHI_Null.Private Gem::Atom_RHI_DX12.Private Gem::Atom_RHI_Vulkan.Private Gem::Atom_RHI.Private diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleBrowserInteractions.cpp b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleBrowserInteractions.cpp index ace0aba506..33ca66b048 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleBrowserInteractions.cpp +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleBrowserInteractions.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -81,7 +82,14 @@ namespace ShaderManagementConsole { menu->addAction("Open", [entry]() { - QDesktopServices::openUrl(QUrl::fromLocalFile(entry->GetFullPath().c_str())); + if (AzFramework::StringFunc::Path::IsExtension(entry->GetFullPath().c_str(), AZ::RPI::ShaderVariantListSourceData::Extension)) + { + ShaderManagementConsoleDocumentSystemRequestBus::Broadcast(&ShaderManagementConsoleDocumentSystemRequestBus::Events::OpenDocument, entry->GetFullPath().c_str()); + } + else + { + QDesktopServices::openUrl(QUrl::fromLocalFile(entry->GetFullPath().c_str())); + } }); menu->addAction("Duplicate...", [entry, caller]() @@ -100,20 +108,27 @@ namespace ShaderManagementConsole } }); - menu->addAction("Run Python on Asset...", [entry]() - { - const QString script = QFileDialog::getOpenFileName(nullptr, "Run Script", QString(), QString("*.py")); - if (!script.isEmpty()) - { - AZStd::vector pythonArgs { entry->GetFullPath() }; - AzToolsFramework::EditorPythonRunnerRequestBus::Broadcast(&AzToolsFramework::EditorPythonRunnerRequestBus::Events::ExecuteByFilenameWithArgs, script.toUtf8().constData(), pythonArgs); - } - }); - menu->addAction(AzQtComponents::fileBrowserActionName(), [entry]() + { + AzQtComponents::ShowFileOnDesktop(entry->GetFullPath().c_str()); + }); + + menu->addSeparator(); + menu->addAction("Generate Shader Variant List", [entry]() { + const QString script = "@engroot@/Gems/Atom/Tools/ShaderManagementConsole/Scripts/GenerateShaderVariantListForMaterials.py"; + AZStd::vector pythonArgs{ entry->GetFullPath() }; + AzToolsFramework::EditorPythonRunnerRequestBus::Broadcast(&AzToolsFramework::EditorPythonRunnerRequestBus::Events::ExecuteByFilenameWithArgs, script.toUtf8().constData(), pythonArgs); + }); + + menu->addAction("Run Python on Asset...", [entry]() + { + const QString script = QFileDialog::getOpenFileName(nullptr, "Run Script", QString(), QString("*.py")); + if (!script.isEmpty()) { - AzQtComponents::ShowFileOnDesktop(entry->GetFullPath().c_str()); - }); + AZStd::vector pythonArgs { entry->GetFullPath() }; + AzToolsFramework::EditorPythonRunnerRequestBus::Broadcast(&AzToolsFramework::EditorPythonRunnerRequestBus::Events::ExecuteByFilenameWithArgs, script.toUtf8().constData(), pythonArgs); + } + }); AddPerforceMenuActions(caller, menu, entry); } diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp index 01a11e7835..6ab297bfc5 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp @@ -368,6 +368,7 @@ namespace ShaderManagementConsole // The document tab contains a table view. auto tableView = new QTableView(m_centralWidget); tableView->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + tableView->setSelectionBehavior(QAbstractItemView::SelectRows); auto model = new QStandardItemModel(); tableView->setModel(model); diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/shadermanagementconsole_files.cmake b/Gems/Atom/Tools/ShaderManagementConsole/Code/shadermanagementconsole_files.cmake index 58088536f9..46a5902f70 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/shadermanagementconsole_files.cmake +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/shadermanagementconsole_files.cmake @@ -15,4 +15,5 @@ set(FILES Source/ShaderManagementConsoleApplication.h Include/Atom/Document/ShaderManagementConsoleDocumentModule.h Source/Document/ShaderManagementConsoleDocumentModule.cpp + ../Scripts/GenerateShaderVariantListForMaterials.py ) diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/tool_dependencies.cmake b/Gems/Atom/Tools/ShaderManagementConsole/Code/tool_dependencies.cmake index 36fe22de7c..587f01cc7c 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/tool_dependencies.cmake +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/tool_dependencies.cmake @@ -10,6 +10,7 @@ # set(GEM_DEPENDENCIES + Gem::Atom_RHI_Null.Private Gem::Atom_RHI_DX12.Private Gem::Atom_RHI_Vulkan.Private Gem::Atom_RHI.Private diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Scripts/GenerateShaderVariantListForMaterials.py b/Gems/Atom/Tools/ShaderManagementConsole/Scripts/GenerateShaderVariantListForMaterials.py index 0576789145..9faee7bf84 100755 --- a/Gems/Atom/Tools/ShaderManagementConsole/Scripts/GenerateShaderVariantListForMaterials.py +++ b/Gems/Atom/Tools/ShaderManagementConsole/Scripts/GenerateShaderVariantListForMaterials.py @@ -24,15 +24,6 @@ from PySide2 import QtWidgets PROJECT_SHADER_VARIANTS_FOLDER = "ShaderVariants" -def prompt_message_box(text, informativeText = None, qButtons = QtWidgets.QMessageBox.Yes|QtWidgets.QMessageBox.No|QtWidgets.QMessageBox.Cancel): - msgBox = QtWidgets.QMessageBox() - msgBox.setText(text) - if informativeText: - msgBox.setInformativeText(informativeText) - msgBox.setStandardButtons(qButtons) - - return msgBox.exec() - def clean_existing_shadervariantlist_files(filePaths): for file in filePaths: if os.path.exists(file): @@ -66,21 +57,32 @@ def main(): shaderAssetInfo.relativePath ) - response = prompt_message_box( - "Generating .shadervariantlist File", - "This process may take a while. Would you like to save the generated .shadervariantlist file in the project folder? " \ - "Otherwise, it will be saved in the same location as the .shader file." + msgBox = QtWidgets.QMessageBox( + QtWidgets.QMessageBox.Question, + "Choose Save Location for .shadervariantlist File", + "Save .shadervariantlist file in Project folder or in the same folder as shader file?" ) + projectButton = msgBox.addButton("Project Folder", QtWidgets.QMessageBox.AcceptRole) + msgBox.addButton("Same Folder as Shader", QtWidgets.QMessageBox.AcceptRole) + cancelButton = msgBox.addButton("Cancel", QtWidgets.QMessageBox.RejectRole) + msgBox.exec() + is_save_in_project_folder = False - if response == QtWidgets.QMessageBox.Yes: + if msgBox.clickedButton() == projectButton: is_save_in_project_folder = True - elif response == QtWidgets.QMessageBox.Cancel: + elif msgBox.clickedButton() == cancelButton: return # This loop collects all uniquely-identified shader items used by the materials based on its shader variant id. + shader_file = os.path.basename(filename) shaderVariantIds = [] shaderVariantListShaderOptionGroups = [] - for materialAssetId in materialAssetIds: + progressDialog = QtWidgets.QProgressDialog(f"Generating .shadervariantlist file for:\n{shader_file}", "Cancel", 0, len(materialAssetIds)) + progressDialog.setMaximumWidth(400) + progressDialog.setMaximumHeight(100) + progressDialog.setModal(True) + progressDialog.setWindowTitle("Generating Shader Variant List") + for i, materialAssetId in enumerate(materialAssetIds): materialInstanceShaderItems = azlmbr.shadermanagementconsole.ShaderManagementConsoleRequestBus(azlmbr.bus.Broadcast, 'GetMaterialInstanceShaderItems', materialAssetId) for shaderItem in materialInstanceShaderItems: @@ -102,8 +104,14 @@ def main(): shaderVariantIds.append(shaderVariantId) shaderVariantListShaderOptionGroups.append(shaderItem.GetShaderOptionGroup()) + progressDialog.setValue(i) + if progressDialog.wasCanceled(): + return + + progressDialog.close() + # Generate the shader variant list data by collecting shader option name-value pairs.s - shaderVariantList = azlmbr.shader.ShaderVariantListSourceData () + shaderVariantList = azlmbr.shader.ShaderVariantListSourceData() shaderVariantList.shaderFilePath = shaderAssetInfo.relativePath shaderVariants = [] stableId = 1 @@ -144,17 +152,26 @@ def main(): shaderVariantListFilePath = projectShaderVariantListFilePath else: shaderVariantListFilePath = defaultShaderVariantListFilePath - - print(f"Saving .shadervariantlist file into: {shaderVariantListFilePath}") + + shaderVariantListFilePath = shaderVariantListFilePath.replace("\\", "/") azlmbr.shader.SaveShaderVariantListSourceData(shaderVariantListFilePath, shaderVariantList) # Open the document in shader management console - azlmbr.shadermanagementconsole.ShaderManagementConsoleDocumentSystemRequestBus( + result = azlmbr.shadermanagementconsole.ShaderManagementConsoleDocumentSystemRequestBus( azlmbr.bus.Broadcast, 'OpenDocument', shaderVariantListFilePath ) + if not result.IsNull(): + msgBox = QtWidgets.QMessageBox( + QtWidgets.QMessageBox.Information, + "Shader Variant List File Successfully Generated", + f".shadervariantlist file was saved in:\n{shaderVariantListFilePath}", + QtWidgets.QMessageBox.Ok + ) + msgBox.exec() + print("==== End shader variant script ============================================================") if __name__ == "__main__": diff --git a/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp b/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp index c8382210d3..0f73828186 100644 --- a/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp +++ b/Gems/AtomLyIntegration/AtomBridge/Code/Source/Editor/AssetCollectionAsyncLoaderTestComponent.cpp @@ -48,8 +48,8 @@ namespace AZ "AssetCollectionAsyncLoaderTest", "The AssetCollectionAsyncLoaderTest component allows you to test the API provided by AssetCollectionAsyncLoader") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Test") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Comment.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Comment.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Comment.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Comment.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZStd::vector({ AZ_CRC("Level", 0x9aeacc13), AZ_CRC("Game", 0x232b318c), AZ_CRC("Layer", 0xe4db211a) })) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(AZ::Edit::UIHandlers::LineEdit, &AssetCollectionAsyncLoaderTestComponent::m_pathToAssetListJson, "", "Path To Asset List") diff --git a/Gems/AtomLyIntegration/AtomBridge/Code/Source/FlyCameraInputComponent.cpp b/Gems/AtomLyIntegration/AtomBridge/Code/Source/FlyCameraInputComponent.cpp index 41f74a9670..54e3a6ce59 100644 --- a/Gems/AtomLyIntegration/AtomBridge/Code/Source/FlyCameraInputComponent.cpp +++ b/Gems/AtomLyIntegration/AtomBridge/Code/Source/FlyCameraInputComponent.cpp @@ -99,8 +99,8 @@ void FlyCameraInputComponent::Reflect(AZ::ReflectContext* reflection) editContext->Class("Fly Camera Input", "The Fly Camera Input allows you to control the camera") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute("Category", "Gameplay") - ->Attribute("Icon", "Editor/Icons/Components/CameraRig.svg") - ->Attribute("ViewportIcon", "Editor/Icons/Components/Viewport/CameraRig.png") + ->Attribute("Icon", "Icons/Components/CameraRig.svg") + ->Attribute("ViewportIcon", "Icons/Components/Viewport/CameraRig.png") ->Attribute("AutoExpand", true) ->Attribute("AppearsInAddComponentMenu", AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &FlyCameraInputComponent::m_moveSpeed, "Move Speed", "Speed at which the camera moves") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorAreaLightComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorAreaLightComponent.cpp index 6a07a8a737..8c5f6d6836 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorAreaLightComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorAreaLightComponent.cpp @@ -49,8 +49,8 @@ namespace AZ "Light", "A light which emits from a point or goemetric shape.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-light.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorDirectionalLightComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorDirectionalLightComponent.cpp index c484db5e1e..35c5522c4e 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorDirectionalLightComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/CoreLights/EditorDirectionalLightComponent.cpp @@ -44,8 +44,8 @@ namespace AZ "Directional Light", "A directional light to cast a shadow of meshes onto meshes.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO][ATOM-1998] create icons. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO][ATOM-1998] create icons. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO][ATOM-1998] create icons. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO][ATOM-1998] create icons. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [GFX TODO][ATOM-1998] create page diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Decals/EditorDecalComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Decals/EditorDecalComponent.cpp index 9badeaac86..73190377ca 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Decals/EditorDecalComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Decals/EditorDecalComponent.cpp @@ -39,8 +39,8 @@ namespace AZ "Decal (Atom)", "The Decal component allows an entity to project a texture or material onto a mesh") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("Game")) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-decal.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseProbeGrid/EditorDiffuseProbeGridComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseProbeGrid/EditorDiffuseProbeGridComponent.cpp index 7400809daa..ae22ec06c9 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseProbeGrid/EditorDiffuseProbeGridComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseProbeGrid/EditorDiffuseProbeGridComponent.cpp @@ -43,8 +43,8 @@ namespace AZ "Diffuse Probe Grid", "The DiffuseProbeGrid component generates a grid of diffuse light probes for global illumination") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid()) diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Grid/EditorGridComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Grid/EditorGridComponent.cpp index 6934995600..f500bdd6e2 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Grid/EditorGridComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Grid/EditorGridComponent.cpp @@ -34,8 +34,8 @@ namespace AZ "Grid", "Adds grid to the scene") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-grid.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ImageBasedLights/EditorImageBasedLightComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ImageBasedLights/EditorImageBasedLightComponent.cpp index 0be8f7050e..ec69964236 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ImageBasedLights/EditorImageBasedLightComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ImageBasedLights/EditorImageBasedLightComponent.cpp @@ -34,8 +34,8 @@ namespace AZ "Global Skylight (IBL)", "Adds image based illumination to the scene") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-imagebasedlight.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponent.cpp index b6ae2dedba..e307bfcd07 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponent.cpp @@ -137,8 +137,8 @@ namespace AZ "Material", "The material component specifies the material to use for this entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-material.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp index 2885978e1e..f7915bbff4 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp @@ -250,6 +250,7 @@ namespace AZ propertyConfig.m_id = AZ::RPI::MaterialPropertyId(groupNameId, propertyDefinition.m_nameId).GetFullName(); propertyConfig.m_groupName = groupDisplayName; const auto& propertyIndex = m_editData.m_materialAsset->GetMaterialPropertiesLayout()->FindPropertyIndex(propertyConfig.m_id); + propertyConfig.m_showThumbnail = true; propertyConfig.m_defaultValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialTypeAsset->GetDefaultPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_parentValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialTypeAsset->GetDefaultPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_originalValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialAsset->GetPropertyValues()[propertyIndex.GetIndex()]); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.cpp index 21f592db4a..b0b9a39780 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.cpp @@ -21,13 +21,13 @@ namespace AZ { namespace Thumbnails { - const int MaterialThumbnailSize = 200; + static constexpr const int MaterialThumbnailSize = 512; // 512 is the default size in render to texture pass ////////////////////////////////////////////////////////////////////////// // MaterialThumbnail ////////////////////////////////////////////////////////////////////////// - MaterialThumbnail::MaterialThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + MaterialThumbnail::MaterialThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key) + : Thumbnail(key) { m_assetId = GetAssetId(key, RPI::MaterialAsset::RTTI_Type()); if (!m_assetId.IsValid()) @@ -47,7 +47,7 @@ namespace AZ RPI::MaterialAsset::RTTI_Type(), &AzToolsFramework::Thumbnailer::ThumbnailerRendererRequests::RenderThumbnail, m_key, - m_thumbnailSize); + MaterialThumbnailSize); // wait for response from thumbnail renderer m_renderWait.acquire(); } diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.h index 249426dfe8..612e44fb98 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialThumbnail.h @@ -36,7 +36,7 @@ namespace AZ { Q_OBJECT public: - MaterialThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize); + MaterialThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key); ~MaterialThumbnail() override; //! AzToolsFramework::ThumbnailerRendererNotificationBus::Handler overrides... diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/EditorMeshComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/EditorMeshComponent.cpp index c9aa3a6d5e..f2ad9a13e6 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/EditorMeshComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/EditorMeshComponent.cpp @@ -44,8 +44,8 @@ namespace AZ "Mesh", "The mesh component is the primary method of adding visual geometry to entities") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-mesh.html") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.cpp index 315eb2a892..fed46f4608 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.cpp @@ -22,13 +22,13 @@ namespace AZ { namespace Thumbnails { - const int MeshThumbnailSize = 200; + static constexpr const int MeshThumbnailSize = 512; // 512 is the default size in render to texture pass ////////////////////////////////////////////////////////////////////////// // MeshThumbnail ////////////////////////////////////////////////////////////////////////// - MeshThumbnail::MeshThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize) - : Thumbnail(key, thumbnailSize) + MeshThumbnail::MeshThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key) + : Thumbnail(key) { m_assetId = GetAssetId(key, RPI::ModelAsset::RTTI_Type()); if (!m_assetId.IsValid()) @@ -48,7 +48,7 @@ namespace AZ RPI::ModelAsset::RTTI_Type(), &AzToolsFramework::Thumbnailer::ThumbnailerRendererRequests::RenderThumbnail, m_key, - m_thumbnailSize); + MeshThumbnailSize); // wait for response from thumbnail renderer m_renderWait.acquire(); } diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.h index 68c7825aaa..75b6c8cf68 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Mesh/MeshThumbnail.h @@ -35,7 +35,7 @@ namespace AZ { Q_OBJECT public: - MeshThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key, int thumbnailSize); + MeshThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey key); ~MeshThumbnail() override; //! AzToolsFramework::ThumbnailerRendererNotificationBus::Handler overrides... diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Bloom/EditorBloomComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Bloom/EditorBloomComponent.cpp index a7b9f56f89..2e57b8ff7a 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Bloom/EditorBloomComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Bloom/EditorBloomComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Bloom", "Controls the Bloom") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [TODO ATOM-2672][PostFX] need create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DepthOfField/EditorDepthOfFieldComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DepthOfField/EditorDepthOfFieldComponent.cpp index e1d4edc7c0..ae70a8394a 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DepthOfField/EditorDepthOfFieldComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DepthOfField/EditorDepthOfFieldComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "DepthOfField", "Controls the Depth of Field.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing.y + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing.y ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [GFX TODO][ATOM-2672][PostFX] need create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DisplayMapper/EditorDisplayMapperComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DisplayMapper/EditorDisplayMapperComponent.cpp index 585ff0bd00..80aad79218 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DisplayMapper/EditorDisplayMapperComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/DisplayMapper/EditorDisplayMapperComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Display Mapper", "The display mapper applying on the look modification process.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO][ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO][ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO][ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO][ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZStd::vector({ AZ_CRC("Level", 0x9aeacc13), AZ_CRC("Game", 0x232b318c) })) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [GFX TODO][ATOM-2672][PostFX] need to create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/EditorPostFxLayerComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/EditorPostFxLayerComponent.cpp index a26ea597ec..e3370db194 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/EditorPostFxLayerComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/EditorPostFxLayerComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "PostFX Layer", "This component enables the entity to specify post process settings") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ExposureControl/EditorExposureControlComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ExposureControl/EditorExposureControlComponent.cpp index a1135ff0ad..b38f51e7ba 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ExposureControl/EditorExposureControlComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ExposureControl/EditorExposureControlComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Exposure Control", "Exposure component control exposure value for rendered scene.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [TODO ATOM-2672][PostFX] need create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/GradientWeightModifier/EditorGradientWeightModifierComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/GradientWeightModifier/EditorGradientWeightModifierComponent.cpp index 2089dfb01b..876a696df1 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/GradientWeightModifier/EditorGradientWeightModifierComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/GradientWeightModifier/EditorGradientWeightModifierComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "PostFX Gradient Weight Modifier", "Modifies PostFX override factor based on a gradient signal sampled from an entity") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/LookModification/EditorLookModificationComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/LookModification/EditorLookModificationComponent.cpp index b80ffbab6f..5f6336b0d8 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/LookModification/EditorLookModificationComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/LookModification/EditorLookModificationComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Look Modification", "The look modification process.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [TODO ATOM-2672][PostFX] need to create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/RadiusWeightModifier/EditorRadiusWeightModifierComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/RadiusWeightModifier/EditorRadiusWeightModifierComponent.cpp index 6541feb042..fc364e9cc0 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/RadiusWeightModifier/EditorRadiusWeightModifierComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/RadiusWeightModifier/EditorRadiusWeightModifierComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Radius Weight Modifier", "Modifies PostFX override factor based on proximity of an influencer against this entity's bounding sphere") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ShapeWeightModifier/EditorShapeWeightModifierComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ShapeWeightModifier/EditorShapeWeightModifierComponent.cpp index 0b704e8687..c5f888a9e7 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ShapeWeightModifier/EditorShapeWeightModifierComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/ShapeWeightModifier/EditorShapeWeightModifierComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "PostFX Shape Weight Modifier", "Modifies PostFX override factor based on proximity of an influencer against this entity's bounding sphere") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Ssao/EditorSsaoComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Ssao/EditorSsaoComponent.cpp index 88657c342a..e89bde0732 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Ssao/EditorSsaoComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/PostProcess/Ssao/EditorSsaoComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "SSAO", "Controls SSAO.") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("Game")) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [GFX TODO][ATOM-2672][PostFX] need create page for PostProcessing. diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/EditorReflectionProbeComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/EditorReflectionProbeComponent.cpp index 976b8f4267..efefcc3dc6 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/EditorReflectionProbeComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/EditorReflectionProbeComponent.cpp @@ -49,8 +49,8 @@ namespace AZ "Reflection Probe", "The ReflectionProbe component captures an IBL specular reflection at a specific position in the level") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ScreenSpace/EditorDeferredFogComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ScreenSpace/EditorDeferredFogComponent.cpp index bbc1f790d4..92c2cfe700 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ScreenSpace/EditorDeferredFogComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ScreenSpace/EditorDeferredFogComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Deferred Fog", "Controls the Deferred Fog") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") // [GFX TODO ATOM-2672][PostFX] need to create icons for PostProcessing. ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "https://") // [TODO][ATOM-13427] Create Wiki for Deferred Fog diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Scripting/EditorEntityReferenceComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Scripting/EditorEntityReferenceComponent.cpp index ea4c38ddc8..cdb3c80986 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Scripting/EditorEntityReferenceComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Scripting/EditorEntityReferenceComponent.cpp @@ -31,8 +31,8 @@ namespace AZ "Entity Reference", "Contains a reference list to other entities") ->ClassElement(Edit::ClassElements::EditorData, "") ->Attribute(Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(Edit::Attributes::AutoExpand, true) ->Attribute(Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorHDRiSkyboxComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorHDRiSkyboxComponent.cpp index 9cd026ffcf..0c1b605c3a 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorHDRiSkyboxComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorHDRiSkyboxComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "HDRi Skybox", "SkyBox component render the background of your scene with cubemap") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorPhysicalSkyComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorPhysicalSkyComponent.cpp index 07ba738522..8f9b98c15c 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorPhysicalSkyComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SkyBox/EditorPhysicalSkyComponent.cpp @@ -32,8 +32,8 @@ namespace AZ "Physical Sky", "Physical Sky render the background of your scene with physical simulation") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Atom") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Component_Placeholder.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "editor/icons/components/viewport/component_placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Component_Placeholder.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "") diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/CommonThumbnailRenderer.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/CommonThumbnailRenderer.cpp index 6dff92c170..06d54a20b3 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/CommonThumbnailRenderer.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/CommonThumbnailRenderer.cpp @@ -82,8 +82,9 @@ namespace AZ return m_data; } - void CommonThumbnailRenderer::RenderThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, [[maybe_unused]] int thumbnailSize) + void CommonThumbnailRenderer::RenderThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize) { + m_data->m_thumbnailSize = thumbnailSize; m_data->m_thumbnailQueue.push(thumbnailKey); if (m_currentStep == Step::None) { diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererData.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererData.h index 8a7bace6aa..28e98082d0 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererData.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererData.h @@ -52,6 +52,7 @@ namespace AZ double m_simulateTime = 0.0f; float m_deltaTime = 0.0f; + int m_thumbnailSize = 512; //! Incoming thumbnail requests are appended to this queue and processed one at a time in OnTick function. AZStd::queue m_thumbnailQueue; diff --git a/Gems/AudioEngineWwise/Tools/WwiseATLGen/generate_atl_data.wcmdline b/Gems/AudioEngineWwise/Tools/WwiseATLGen/generate_atl_data.wcmdline index b4444e5d98..9e4f33ad7a 100644 --- a/Gems/AudioEngineWwise/Tools/WwiseATLGen/generate_atl_data.wcmdline +++ b/Gems/AudioEngineWwise/Tools/WwiseATLGen/generate_atl_data.wcmdline @@ -1,2 +1,2 @@ -"$(WwiseProjectPath)\..\..\..\Tools\Python\python3.cmd" "$(WwiseProjectPath)\..\..\..\Gems\AudioEngineWwise\Tools\WwiseATLGen\wwise_atl_gen_tool.py" --autoLoad --atlName generated_controls.xml --atlPath "$(WwiseProjectPath)\..\..\libs\gameaudio\wwise" --bankPath "$(WwiseProjectPath)\..\wwise" +"$(WwiseProjectPath)\..\..\..\python\python.cmd" "$(WwiseProjectPath)\..\..\..\Gems\AudioEngineWwise\Tools\WwiseATLGen\wwise_atl_gen_tool.py" --autoLoad --atlName generated_controls.xml --atlPath "$(WwiseProjectPath)\..\..\libs\gameaudio\wwise" --bankPath "$(WwiseProjectPath)\..\wwise" diff --git a/Gems/AudioEngineWwise/Tools/WwiseAuthoringScripts/ly_copy_output_and_generate_metadata.wcmdline b/Gems/AudioEngineWwise/Tools/WwiseAuthoringScripts/ly_copy_output_and_generate_metadata.wcmdline index afbc73b00c..5d2394fae2 100644 --- a/Gems/AudioEngineWwise/Tools/WwiseAuthoringScripts/ly_copy_output_and_generate_metadata.wcmdline +++ b/Gems/AudioEngineWwise/Tools/WwiseAuthoringScripts/ly_copy_output_and_generate_metadata.wcmdline @@ -1,3 +1,3 @@ "$(WwiseExePath)\CopyStreamedFiles.exe" -info "$(InfoFilePath)" -outputpath "$(SoundBankPath)" -banks "$(SoundBankListAsTextFile)" -languages "$(LanguageList)" -"$(WwiseProjectPath)\..\..\..\Tools\Python\python3.cmd" "$(WwiseProjectPath)\..\..\..\Gems\AudioEngineWwise\Tools\WwiseAuthoringScripts\bank_info_parser.py" "$(InfoFilePath)" "$(SoundBankPath)" +"$(WwiseProjectPath)\..\..\..\python.cmd" "$(WwiseProjectPath)\..\..\..\Gems\AudioEngineWwise\Tools\WwiseAuthoringScripts\bank_info_parser.py" "$(InfoFilePath)" "$(SoundBankPath)" diff --git a/Gems/AudioSystem/Code/Source/Editor/ATLControlsPanel.cpp b/Gems/AudioSystem/Code/Source/Editor/ATLControlsPanel.cpp index ce74e71d48..d2a0b78ac3 100644 --- a/Gems/AudioSystem/Code/Source/Editor/ATLControlsPanel.cpp +++ b/Gems/AudioSystem/Code/Source/Editor/ATLControlsPanel.cpp @@ -147,7 +147,7 @@ namespace AudioControls QWidgetAction* pWidgetAction = new QWidgetAction(this); - m_unassignedFilterButton = new QFilterButton(QIcon(":/Editor/Icons/Unassigned.svg"), "", this); + m_unassignedFilterButton = new QFilterButton(QIcon(":/Icons/Unassigned.svg"), "", this); m_unassignedFilterButton->SetText("Unassigned"); m_unassignedFilterButton->SetChecked(m_showUnassignedControls); pWidgetAction->setDefaultWidget(m_unassignedFilterButton); diff --git a/Gems/AudioSystem/Code/Source/Editor/AudioControlsEditorUI.qrc b/Gems/AudioSystem/Code/Source/Editor/AudioControlsEditorUI.qrc index 5c5bc8927a..ad3bbec034 100644 --- a/Gems/AudioSystem/Code/Source/Editor/AudioControlsEditorUI.qrc +++ b/Gems/AudioSystem/Code/Source/Editor/AudioControlsEditorUI.qrc @@ -1,5 +1,5 @@ - + Icons/Bank_Icon.png Icons/Config_Blue_Icon.png Icons/Config_Green_Icon.png diff --git a/Gems/AudioSystem/Code/Source/Editor/QAudioControlEditorIcons.h b/Gems/AudioSystem/Code/Source/Editor/QAudioControlEditorIcons.h index 3afaa445da..700370b8d3 100644 --- a/Gems/AudioSystem/Code/Source/Editor/QAudioControlEditorIcons.h +++ b/Gems/AudioSystem/Code/Source/Editor/QAudioControlEditorIcons.h @@ -26,26 +26,26 @@ namespace AudioControls switch (type) { case AudioControls::eACET_TRIGGER: - iconFile = ":/Editor/Icons/Trigger_Icon.svg"; + iconFile = ":/Icons/Trigger_Icon.svg"; break; case AudioControls::eACET_RTPC: - iconFile = ":/Editor/Icons/RTPC_Icon.svg"; + iconFile = ":/Icons/RTPC_Icon.svg"; break; case AudioControls::eACET_SWITCH: - iconFile = ":/Editor/Icons/Switch_Icon.svg"; + iconFile = ":/Icons/Switch_Icon.svg"; break; case AudioControls::eACET_SWITCH_STATE: - iconFile = ":/Editor/Icons/Property_Icon.svg"; + iconFile = ":/Icons/Property_Icon.svg"; break; case AudioControls::eACET_ENVIRONMENT: - iconFile = ":/Editor/Icons/Environment_Icon.svg"; + iconFile = ":/Icons/Environment_Icon.svg"; break; case AudioControls::eACET_PRELOAD: - iconFile = ":/Editor/Icons/Preload_Icon.svg"; + iconFile = ":/Icons/Preload_Icon.svg"; break; default: // should make a "default"/empty icon... - iconFile = ":/Editor/Icons/RTPC_Icon.svg"; + iconFile = ":/Icons/RTPC_Icon.svg"; } QIcon icon(iconFile); @@ -56,16 +56,16 @@ namespace AudioControls //-------------------------------------------------------------------------------------------// inline QIcon GetFolderIcon() { - QIcon icon = QIcon(":/Editor/Icons/Folder_Icon.svg"); - icon.addFile(":/Editor/Icons/Folder_Icon_Selected.svg", QSize(), QIcon::Selected); + QIcon icon = QIcon(":/Icons/Folder_Icon.svg"); + icon.addFile(":/Icons/Folder_Icon_Selected.svg", QSize(), QIcon::Selected); return icon; } //-------------------------------------------------------------------------------------------// inline QIcon GetSoundBankIcon() { - QIcon icon = QIcon(":/Editor/Icons/Preload_Icon.svg"); - icon.addFile(":/Editor/Icons/Preload_Icon.svg", QSize(), QIcon::Selected); + QIcon icon = QIcon(":/Icons/Preload_Icon.svg"); + icon.addFile(":/Icons/Preload_Icon.svg", QSize(), QIcon::Selected); return icon; } @@ -78,22 +78,22 @@ namespace AudioControls switch (group) { case 0: - path = ":/Editor/Icons/folder purple.svg"; + path = ":/Icons/folder purple.svg"; break; case 1: - path = ":/Editor/Icons/folder blue.svg"; + path = ":/Icons/folder blue.svg"; break; case 2: - path = ":/Editor/Icons/folder green.svg"; + path = ":/Icons/folder green.svg"; break; case 3: - path = ":/Editor/Icons/folder red.svg"; + path = ":/Icons/folder red.svg"; break; case 4: - path = ":/Editor/Icons/folder yellow.svg"; + path = ":/Icons/folder yellow.svg"; break; default: - path = "Editor/Icons/folder red.svg"; + path = "Icons/folder red.svg"; break; } diff --git a/Gems/Blast/Code/Source/Asset/BlastAssetHandler.cpp b/Gems/Blast/Code/Source/Asset/BlastAssetHandler.cpp index 9e0aacbfda..f1d41efb52 100644 --- a/Gems/Blast/Code/Source/Asset/BlastAssetHandler.cpp +++ b/Gems/Blast/Code/Source/Asset/BlastAssetHandler.cpp @@ -104,7 +104,7 @@ namespace Blast const char* BlastAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/Box.png"; + return "Icons/Components/Box.png"; } void BlastAssetHandler::GetAssetTypeExtensions(AZStd::vector& extensions) diff --git a/Gems/Blast/Code/Source/Editor/EditorBlastFamilyComponent.cpp b/Gems/Blast/Code/Source/Editor/EditorBlastFamilyComponent.cpp index 9da8aa6463..fc6967b96e 100644 --- a/Gems/Blast/Code/Source/Editor/EditorBlastFamilyComponent.cpp +++ b/Gems/Blast/Code/Source/Editor/EditorBlastFamilyComponent.cpp @@ -39,8 +39,8 @@ namespace Blast "Blast Family", "Used to add a Blast family for destruction that will spawn Blast actors") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Destruction") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Box.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Box.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Box.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Box.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute( AZ::Edit::Attributes::HelpPageURL, diff --git a/Gems/Blast/Code/Source/Editor/EditorBlastMeshDataComponent.cpp b/Gems/Blast/Code/Source/Editor/EditorBlastMeshDataComponent.cpp index 51789f68da..f8fd97dc52 100644 --- a/Gems/Blast/Code/Source/Editor/EditorBlastMeshDataComponent.cpp +++ b/Gems/Blast/Code/Source/Editor/EditorBlastMeshDataComponent.cpp @@ -61,8 +61,8 @@ namespace Blast "Blast Family Mesh Data", "Used to keep track of mesh assets for a Blast family") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Destruction") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Box.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Box.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Box.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Box.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute( AZ::Edit::Attributes::HelpPageURL, diff --git a/Gems/Blast/Code/Source/Editor/EditorBlastSliceAssetHandler.cpp b/Gems/Blast/Code/Source/Editor/EditorBlastSliceAssetHandler.cpp index 1b12d7554b..8fdaa49046 100644 --- a/Gems/Blast/Code/Source/Editor/EditorBlastSliceAssetHandler.cpp +++ b/Gems/Blast/Code/Source/Editor/EditorBlastSliceAssetHandler.cpp @@ -55,8 +55,8 @@ namespace Blast "Blast Slice Storage Component", "Used process blast slice data") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Physics") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Box.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Box.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Box.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Box.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("Game")) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AddableByUser, false) @@ -339,7 +339,7 @@ namespace Blast const char* EditorBlastSliceAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/Box.png"; + return "Icons/Components/Box.png"; } void EditorBlastSliceAssetHandler::GetAssetTypeExtensions(AZStd::vector& extensions) diff --git a/Gems/CMakeLists.txt b/Gems/CMakeLists.txt index 782ecda744..b6bda8c16e 100644 --- a/Gems/CMakeLists.txt +++ b/Gems/CMakeLists.txt @@ -52,7 +52,6 @@ add_subdirectory(ScriptCanvas) add_subdirectory(ScriptedEntityTweener) add_subdirectory(StartingPointMovement) add_subdirectory(StartingPointInput) -add_subdirectory(ScriptCanvasDiagnosticLibrary) add_subdirectory(ScriptCanvasPhysics) add_subdirectory(StartingPointCamera) add_subdirectory(Presence) diff --git a/Gems/DebugDraw/Code/Source/EditorDebugDrawLineComponent.cpp b/Gems/DebugDraw/Code/Source/EditorDebugDrawLineComponent.cpp index 1f41b85b61..2330f54bbc 100644 --- a/Gems/DebugDraw/Code/Source/EditorDebugDrawLineComponent.cpp +++ b/Gems/DebugDraw/Code/Source/EditorDebugDrawLineComponent.cpp @@ -37,7 +37,7 @@ namespace DebugDraw "DebugDraw Line", "Draws debug line on the screen from this entity's location to specified end entity's location.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Debugging") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/DebugDrawLine.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/DebugDrawLine.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &EditorDebugDrawLineComponent::m_element, "Line element settings", "Settings for the line element.") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &EditorDebugDrawLineComponent::OnPropertyUpdate) diff --git a/Gems/DebugDraw/Code/Source/EditorDebugDrawObbComponent.cpp b/Gems/DebugDraw/Code/Source/EditorDebugDrawObbComponent.cpp index b1ef7daf51..18b0d491a3 100644 --- a/Gems/DebugDraw/Code/Source/EditorDebugDrawObbComponent.cpp +++ b/Gems/DebugDraw/Code/Source/EditorDebugDrawObbComponent.cpp @@ -37,7 +37,7 @@ namespace DebugDraw "DebugDraw Obb", "Draws debug obb on the screen from this entity's location to specified end entity's location.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Debugging") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/DebugDrawObb.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/DebugDrawObb.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &EditorDebugDrawObbComponent::m_element, "Obb element settings", "Settings for the obb element.") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &EditorDebugDrawObbComponent::OnPropertyUpdate) diff --git a/Gems/DebugDraw/Code/Source/EditorDebugDrawRayComponent.cpp b/Gems/DebugDraw/Code/Source/EditorDebugDrawRayComponent.cpp index d819c6b5d0..db29e03837 100644 --- a/Gems/DebugDraw/Code/Source/EditorDebugDrawRayComponent.cpp +++ b/Gems/DebugDraw/Code/Source/EditorDebugDrawRayComponent.cpp @@ -37,7 +37,7 @@ namespace DebugDraw "DebugDraw Ray", "Draws debug ray on the screen from this entity's location to specified end entity's location.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Debugging") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/DebugDrawRay.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/DebugDrawRay.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &EditorDebugDrawRayComponent::m_element, "Ray element settings", "Settings for the ray element.") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &EditorDebugDrawRayComponent::OnPropertyUpdate) diff --git a/Gems/DebugDraw/Code/Source/EditorDebugDrawSphereComponent.cpp b/Gems/DebugDraw/Code/Source/EditorDebugDrawSphereComponent.cpp index 753f6e2e72..5b741e85a8 100644 --- a/Gems/DebugDraw/Code/Source/EditorDebugDrawSphereComponent.cpp +++ b/Gems/DebugDraw/Code/Source/EditorDebugDrawSphereComponent.cpp @@ -37,7 +37,7 @@ namespace DebugDraw "DebugDraw Sphere", "Draws debug ray on the screen from this entity's location to specified end entity's location.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Debugging") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/DebugDrawSphere.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/DebugDrawSphere.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &EditorDebugDrawSphereComponent::m_element, "Sphere element settings", "Settings for the sphere element.") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &EditorDebugDrawSphereComponent::OnPropertyUpdate) diff --git a/Gems/DebugDraw/Code/Source/EditorDebugDrawTextComponent.cpp b/Gems/DebugDraw/Code/Source/EditorDebugDrawTextComponent.cpp index a3d842f52b..d340317a24 100644 --- a/Gems/DebugDraw/Code/Source/EditorDebugDrawTextComponent.cpp +++ b/Gems/DebugDraw/Code/Source/EditorDebugDrawTextComponent.cpp @@ -37,7 +37,7 @@ namespace DebugDraw "DebugDraw Text", "Draws debug text on the screen at this entity's location.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Debugging") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/DebugDrawText.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/DebugDrawText.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(0, &EditorDebugDrawTextComponent::m_element, "Text element settings", "Settings for the text element.") ->Attribute(AZ::Edit::Attributes::ChangeNotify, &EditorDebugDrawTextComponent::OnPropertyUpdate) diff --git a/Gems/EMotionFX/Code/EMotionFX/Source/MotionData/MotionData.cpp b/Gems/EMotionFX/Code/EMotionFX/Source/MotionData/MotionData.cpp index 834f4f6ef4..8c5083e8e9 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Source/MotionData/MotionData.cpp +++ b/Gems/EMotionFX/Code/EMotionFX/Source/MotionData/MotionData.cpp @@ -461,16 +461,17 @@ namespace EMotionFX { AZ_Assert(motionLinkData, "Expecting valid motionLinkData pointer."); + const Pose* bindPose = actorInstance->GetTransformData()->GetBindPose(); + const AZStd::vector& jointLinks = motionLinkData->GetJointDataLinks(); + // Special case handling on translation of root nodes. // Scale the translation amount based on the height difference between the bind pose height of the // retarget root node and the bind pose of that node stored in the motion. // All other nodes get their translation data displaced based on the position difference between the // parent relative space positions in the actor instance's bind pose and the motion bind pose. - const Pose* bindPose = actorInstance->GetTransformData()->GetBindPose(); const Actor* actor = actorInstance->GetActor(); const AZ::u32 retargetRootIndex = actor->GetRetargetRootNodeIndex(); const Node* joint = actor->GetSkeleton()->GetNode(jointIndex); - const AZStd::vector& jointLinks = motionLinkData->GetJointDataLinks(); bool needsDisplacement = true; if ((retargetRootIndex == jointIndex || joint->GetIsRootNode()) && retargetRootIndex != InvalidIndex32) { @@ -487,20 +488,23 @@ namespace EMotionFX } } - const Transform& bindPoseTransform = bindPose->GetLocalSpaceTransform(jointIndex); const AZ::u16 jointDataIndex = jointLinks[jointIndex]; - const Transform& motionBindPose = m_staticJointData[jointDataIndex].m_bindTransform; - if (needsDisplacement) + if (jointDataIndex != InvalidIndex16) { - const AZ::Vector3 displacement = bindPoseTransform.mPosition - motionBindPose.mPosition; - inOutTransform.mPosition += displacement; - } + const Transform& bindPoseTransform = bindPose->GetLocalSpaceTransform(jointIndex); + const Transform& motionBindPose = m_staticJointData[jointDataIndex].m_bindTransform; + if (needsDisplacement) + { + const AZ::Vector3 displacement = bindPoseTransform.mPosition - motionBindPose.mPosition; + inOutTransform.mPosition += displacement; + } - EMFX_SCALECODE - ( - const AZ::Vector3 scaleOffset = bindPoseTransform.mScale - motionBindPose.mScale; - inOutTransform.mScale += scaleOffset; - ) + EMFX_SCALECODE + ( + const AZ::Vector3 scaleOffset = bindPoseTransform.mScale - motionBindPose.mScale; + inOutTransform.mScale += scaleOffset; + ) + } } // Based on a given time value, find the two keyframes to interpolate between, and calculate the t value, which is the interpolation weight between 0 and 1. diff --git a/Gems/EMotionFX/Code/Source/Integration/Components/AnimGraphNetSyncComponent.cpp b/Gems/EMotionFX/Code/Source/Integration/Components/AnimGraphNetSyncComponent.cpp index 49f6ab0a08..904f500018 100644 --- a/Gems/EMotionFX/Code/Source/Integration/Components/AnimGraphNetSyncComponent.cpp +++ b/Gems/EMotionFX/Code/Source/Integration/Components/AnimGraphNetSyncComponent.cpp @@ -125,7 +125,7 @@ namespace EMotionFX ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::Category, "Networking") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AnimGraphNetSync.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AnimGraphNetSync.svg") ->DataElement( AZ::Edit::UIHandlers::Default, &AnimGraphNetSyncComponent::m_syncParameters, "Sync parameters", "Synchronize parameters of the anim graph on the entity" ) ->DataElement( AZ::Edit::UIHandlers::Default, &AnimGraphNetSyncComponent::m_syncActiveNodes, "Sync active nodes", diff --git a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorAnimAudioComponent.cpp b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorAnimAudioComponent.cpp index 82073a16cc..bb8e93d29c 100644 --- a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorAnimAudioComponent.cpp +++ b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorAnimAudioComponent.cpp @@ -51,7 +51,7 @@ namespace EMotionFX editContext->Class("Audio Animation", "Adds ability to execute audio triggers when animation events occur.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioAnimation.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioAnimation.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(AZ::Edit::UIHandlers::Default, &EditorAnimAudioComponent::m_editorTriggerEvents, "Trigger Map", "Maps the animation events to executable audio triggers."); diff --git a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleLODComponent.cpp b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleLODComponent.cpp index 0c370c9f6e..a5f95f65f4 100644 --- a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleLODComponent.cpp +++ b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleLODComponent.cpp @@ -47,8 +47,8 @@ namespace EMotionFX "Simple LOD Distance", "The Simple LOD distance component alters the actor skeleton LOD level based on camera distance.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Animation") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/SimpleLODDistance.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Mannequin.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/SimpleLODDistance.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Mannequin.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(0, &EditorSimpleLODComponent::m_configuration, "LOD Configuration", ""); diff --git a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleMotionComponent.cpp b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleMotionComponent.cpp index 1d09b3e255..4b463958af 100644 --- a/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleMotionComponent.cpp +++ b/Gems/EMotionFX/Code/Source/Integration/Editor/Components/EditorSimpleMotionComponent.cpp @@ -47,9 +47,9 @@ namespace EMotionFX "Simple Motion", "The Simple Motion component assigns a single motion to the associated Actor in lieu of an Anim Graph component") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Animation") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/SimpleMotion.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/SimpleMotion.svg") ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, azrtti_typeid()) - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Mannequin.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Mannequin.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(0, &EditorSimpleMotionComponent::m_previewInEditor, "Preview In Editor", "Plays motion in Editor") diff --git a/Gems/EditorPythonBindings/Code/Source/PythonSystemComponent.cpp b/Gems/EditorPythonBindings/Code/Source/PythonSystemComponent.cpp index 53f5be5bc4..4e1a3dc06e 100644 --- a/Gems/EditorPythonBindings/Code/Source/PythonSystemComponent.cpp +++ b/Gems/EditorPythonBindings/Code/Source/PythonSystemComponent.cpp @@ -154,7 +154,7 @@ namespace RedirectOutput RedirectOutputType.tp_new = PyType_GenericNew; if (PyType_Ready(&RedirectOutputType) < 0) - { + { return 0; } @@ -189,7 +189,7 @@ namespace RedirectOutput void ResetRedirection(const char* funcname, PyObject*& saved, PyObject*& current) { if (current) - { + { PySys_SetObject(funcname, saved); } Py_XDECREF(current); @@ -204,7 +204,7 @@ namespace RedirectOutput s_RedirectModule = module; - SetRedirection("stdout", g_redirect_stdout_saved, g_redirect_stdout, [](const char* msg) + SetRedirection("stdout", g_redirect_stdout_saved, g_redirect_stdout, [](const char* msg) { EditorPythonConsoleNotificationBus::Broadcast(&EditorPythonConsoleNotificationBus::Events::OnTraceMessage, msg); }); @@ -363,8 +363,7 @@ namespace EditorPythonBindings auto resolveScriptPath = [&pythonPathStack](AZStd::string_view path) { - AZ::IO::Path editorScriptsPath(path); - editorScriptsPath /= "Editor/Scripts"; + auto editorScriptsPath = AZ::IO::Path(path) / "Editor" / "Scripts"; if (AZ::IO::SystemFile::Exists(editorScriptsPath.c_str())) { pythonPathStack.emplace_back(AZStd::move(editorScriptsPath.LexicallyNormal().Native())); @@ -372,7 +371,7 @@ namespace EditorPythonBindings }; // The discovery order will be: - // 1 - engine + // 1 - engine-root/EngineAsets // 2 - gems // 3 - project // 4 - user(dev) @@ -381,7 +380,7 @@ namespace EditorPythonBindings AZ::IO::FixedMaxPath engineRoot; if (settingsRegistry->Get(engineRoot.Native(), AZ::SettingsRegistryMergeUtils::FilePathKey_EngineRootFolder); !engineRoot.empty()) { - resolveScriptPath(engineRoot.Native()); + resolveScriptPath((engineRoot / "Assets").Native()); } // 2 - gems @@ -470,7 +469,7 @@ namespace EditorPythonBindings } } - + bool PythonSystemComponent::StartPythonInterpreter(const PythonPathStack& pythonPathStack) { @@ -502,7 +501,7 @@ namespace EditorPythonBindings // ignore system location for sites site-packages Py_IsolatedFlag = 1; // -I - Also sets Py_NoUserSiteDirectory. If removed PyNoUserSiteDirectory should be set. Py_IgnoreEnvironmentFlag = 1; // -E - + const bool initializeSignalHandlers = true; pybind11::initialize_interpreter(initializeSignalHandlers); @@ -555,7 +554,7 @@ namespace EditorPythonBindings } return false; } - + bool PythonSystemComponent::StopPythonInterpreter() { if (Py_IsInitialized()) @@ -704,7 +703,7 @@ namespace EditorPythonBindings // Acquire GIL before calling Python code AZStd::lock_guard lock(m_lock); pybind11::gil_scoped_acquire acquire; - + // Create standard "argc" / "argv" command-line parameters to pass in to the Python script via sys.argv. // argc = number of parameters. This will always be at least 1, since the first parameter is the script name. // argv = the list of parameters, in wchar format. diff --git a/Gems/GraphCanvas/Code/Source/Translation/TranslationAsset.cpp b/Gems/GraphCanvas/Code/Source/Translation/TranslationAsset.cpp index ac49d7da7a..8b8960fb45 100644 --- a/Gems/GraphCanvas/Code/Source/Translation/TranslationAsset.cpp +++ b/Gems/GraphCanvas/Code/Source/Translation/TranslationAsset.cpp @@ -128,7 +128,7 @@ namespace GraphCanvas const char* TranslationAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/Names.svg"; + return "Icons/Components/Names.svg"; } AZ::Uuid TranslationAssetHandler::GetComponentTypeId() const diff --git a/Gems/ImageProcessing/Code/Tests/ImageProcessing_Test.cpp b/Gems/ImageProcessing/Code/Tests/ImageProcessing_Test.cpp index 1bef8e2fa3..0eaa4df4c6 100644 --- a/Gems/ImageProcessing/Code/Tests/ImageProcessing_Test.cpp +++ b/Gems/ImageProcessing/Code/Tests/ImageProcessing_Test.cpp @@ -47,11 +47,11 @@ #include #include -//Enable generate image files for result of some tests. +//Enable generate image files for result of some tests. //This is slow and only useful for debugging. This should be disabled for unit test //#define DEBUG_OUTPUT_IMAGES -//There are some test functions in this test which are DISABLED. They were mainly for programming tests. +//There are some test functions in this test which are DISABLED. They were mainly for programming tests. //It's only recommended to enable them for programming test purpose. #include @@ -72,7 +72,7 @@ protected: AZStd::unique_ptr m_coreApplication; // required by engine root and IsExtensionSupported AZStd::unique_ptr m_context; AZStd::string m_engineRoot; - + void SetUp() override { BuilderSettingManager::CreateInstance(); @@ -81,13 +81,13 @@ protected: m_context = AZStd::make_unique(); BuilderPluginComponent::Reflect(m_context.get()); AZ::DataPatch::Reflect(m_context.get()); - + // Startup default local FileIO (hits OSAllocator) if not already setup. if (AZ::IO::FileIOBase::GetInstance() == nullptr) { AZ::IO::FileIOBase::SetInstance(aznew AZ::IO::LocalFileIO()); } - + // Adding this handler to allow utility functions access the serialize context AZ::ComponentApplicationBus::Handler::BusConnect(); AZ::Interface::Register(this); @@ -142,7 +142,7 @@ protected: { return m_context.get(); } - + //enum names for Images with specific identification enum ImageFeature { @@ -199,7 +199,7 @@ public: //create the directory if it's not exist const AZStd::string outputDir = AZ::Test::GetEngineRootPath() + "/Gems/ImageProcessing/Code/Tests/TestAssets/Output/"; QDir dir(outputDir.c_str()); - if (!dir.exists()) + if (!dir.exists()) { dir.mkpath("."); } @@ -213,7 +213,7 @@ public: IImageObjectPtr finalImage = imageToProcess.Get(); - //for each mipmap + //for each mipmap for (uint32 mip = 0; mip < finalImage->GetMipCount() && mip < maxMipCnt; mip++) { uint8* imageBuf; @@ -237,7 +237,7 @@ public: { bool isImageLoaded = true; bool isDifferent = false; - + if (image1 == nullptr) { isImageLoaded = false; @@ -254,7 +254,7 @@ public: { return (!image1 && !image2) ? false: true; } - + // Mip int mip1 = image1->GetMipCount(); int mip2 = image2->GetMipCount(); @@ -271,7 +271,7 @@ public: // Flag AZ::u32 flag1 = image1->GetImageFlags(); AZ::u32 flag2 = image2->GetImageFlags(); - + isDifferent |= (flag1 != flag2); // Size @@ -284,9 +284,9 @@ public: // Error float error = GetErrorBetweenImages(image1, image2); - static float EPSILON = 0.000001f; + static float EPSILON = 0.000001f; isDifferent |= abs(error) >= EPSILON; - + output += QString(",%1/%2,%3,%4/%5,%6/%7,").arg(QString::number(mip1,'f',1), QString::number(mip2,'f',1), QString::number(mipDiff), QString(ImageProcessingEditor::EditorHelper::s_PixelFormatString[format1]), QString(ImageProcessingEditor::EditorHelper::s_PixelFormatString[format2]), @@ -305,8 +305,8 @@ public: static bool CompareDDSImage(const QString& imagePath1, const QString& imagePath2, QString& output) { IImageObjectPtr image1, alphaImage1, image2, alphaImage2; - - + + image1 = IImageObjectPtr(LoadImageFromDdsFile(imagePath1.toUtf8().constData())); if (image1 && image1->HasImageFlags(EIF_AttachedAlpha)) { @@ -339,7 +339,7 @@ public: return false; } bool isDifferent = false; - + isDifferent = GetComparisonResult(image1, image2, output); @@ -384,7 +384,7 @@ TEST_F(ImageProcessingTest, TestPixelFormats) ASSERT_TRUE(pixelFormats.FindPixelFormatByLegacyName("G16R16") == ePixelFormat_R16G16); ASSERT_TRUE(pixelFormats.FindPixelFormatByLegacyName("G16R16F") == ePixelFormat_R16G16F); - //some legacy format need to be mapping to new format. + //some legacy format need to be mapping to new format. ASSERT_TRUE(pixelFormats.FindPixelFormatByLegacyName("DXT1") == ePixelFormat_BC1); ASSERT_TRUE(pixelFormats.FindPixelFormatByLegacyName("DXT5") == ePixelFormat_BC3); @@ -559,7 +559,7 @@ TEST_F(ImageProcessingTest, PresetSettingEqualityOperatorOverload_WithDifferingD //this test is to test image data won't be lost between uncompressed formats (for low to high precision or same precision) TEST_F(ImageProcessingTest, TestConvertFormatUncompressed) -{ +{ //source image IImageObjectPtr srcImage(LoadImageFromFile(m_imagFileNameMap[Image_200X200_RGB8_Jpg])); ImageToProcess imageToProcess(srcImage); @@ -571,7 +571,7 @@ TEST_F(ImageProcessingTest, TestConvertFormatUncompressed) //we will convert to target format then convert back to RGBX8 so they can compare to easy other imageToProcess.ConvertFormatUncompressed(ePixelFormat_R8G8B8A8); dstImage1 = imageToProcess.Get(); - + imageToProcess.Set(srcImage); imageToProcess.ConvertFormatUncompressed(ePixelFormat_R16G16B16A16); ASSERT_FALSE(srcImage->CompareImage(imageToProcess.Get())); //this is different than source image @@ -654,9 +654,9 @@ TEST_F(ImageProcessingTest, DISABLED_TestConvertPVRTC) //load builder presets AZStd::string buiderSetting = m_engineRoot + "/Gems/ImageProcessing/Code/Source/ImageBuilderDefaultPresets.settings"; auto outcome = BuilderSettingManager::Instance()->LoadBuilderSettings(buiderSetting, m_context.get()); - + AZStd::vector outPaths; - AZStd::string inputFile = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/normalSmoothness_ddna.tif"; + AZStd::string inputFile = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/normalSmoothness_ddna.tif"; const AZStd::string outputFolder = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/temp/"; ImageConvertProcess* process = CreateImageConvertProcess(inputFile, outputFolder, "ios", m_context.get()); if (process != nullptr) @@ -680,7 +680,7 @@ TEST_F(ImageProcessingTest, DISABLED_TestConvertPVRTC) } //ASSERT_TRUE(ConvertImageFile(inputFile, outputFolder, outPaths, "ios", m_context.get())); - + } TEST_F(ImageProcessingTest, DISABLED_TestConvertFormat) @@ -691,10 +691,10 @@ TEST_F(ImageProcessingTest, DISABLED_TestConvertFormat) //images to be tested static const int imageCount = 5; ImageFeature images[imageCount] = { - Image_20X16_RGBA8_Png, - Image_32X32_16bit_F_Tif, - Image_32X32_32bit_F_Tif , - Image_512x512_Normal_Tga , + Image_20X16_RGBA8_Png, + Image_32X32_16bit_F_Tif, + Image_32X32_32bit_F_Tif , + Image_512x512_Normal_Tga , Image_128x128_Transparent_Tga }; for (int imageIdx = 0; imageIdx < imageCount; imageIdx++) @@ -764,12 +764,12 @@ TEST_F(ImageProcessingTest, DISABLED_TestImageFilter) //create dst image with same size and mipmaps dstImage = IImageObjectPtr( - IImageObject::CreateImage(srcImage->GetWidth(0), srcImage->GetHeight(0), 3, + IImageObject::CreateImage(srcImage->GetWidth(0), srcImage->GetHeight(0), 3, ePixelFormat_R32G32B32A32F)); //for each filters const std::array, 7> allFilters = - { + { { {MipGenType::point, "point"}, {MipGenType::box, "box" }, @@ -777,7 +777,7 @@ TEST_F(ImageProcessingTest, DISABLED_TestImageFilter) { MipGenType::quadratic, "Quadratic" }, { MipGenType::blackmanHarris, "blackmanHarris" }, { MipGenType::kaiserSinc, "kaiserSinc" } - } + } }; for (std::pair filter : allFilters) @@ -799,7 +799,7 @@ TEST_F(ImageProcessingTest, TestColorSpaceConversion) imageToProcess.GammaToLinearRGBA32F(true); SaveImageToFile(imageToProcess.Get(), "GammaTolinear_DeGamma", 1); imageToProcess.LinearToGamma(); - SaveImageToFile(imageToProcess.Get(), "LinearToGamma_DeGamma", 1); + SaveImageToFile(imageToProcess.Get(), "LinearToGamma_DeGamma", 1); } //This function can be used to modify some value in the builder setting and keep all presets uuid then save back to setting file @@ -827,7 +827,7 @@ TEST_F(ImageProcessingTest, VerifyRestrictedPlatform) } TEST_F(ImageProcessingTest, DISABLED_TestCubemap) -{ +{ //load builder presets AZStd::string buiderSetting = m_engineRoot + "/Gems/ImageProcessing/Code/Source/ImageBuilderDefaultPresets.settings"; auto outcome = BuilderSettingManager::Instance()->LoadBuilderSettings(buiderSetting, m_context.get()); @@ -836,7 +836,7 @@ TEST_F(ImageProcessingTest, DISABLED_TestCubemap) AZStd::string inputFile; AZStd::vector outPaths; - inputFile = m_engineRoot + "/Engine/EngineAssets/Shading/defaultProbe_cm.tif"; + inputFile = m_engineRoot + "/Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif"; IImageObjectPtr srcImage(LoadImageFromFile(inputFile)); ImageToProcess imageToProcess(srcImage); @@ -877,7 +877,7 @@ TEST_F(ImageProcessingTest, DISABLED_TestCubemap) //test image conversion for builder TEST_F(ImageProcessingTest, DISABLED_TestBuilderImageConvertor) -{ +{ AZStd::string oldCacheFolder = "E:/Javelin_old_tex_cache/textures"; AZStd::string srcFolder = "E:/Javelin_NWLYDev/dev/Assets/Textures"; @@ -888,12 +888,12 @@ TEST_F(ImageProcessingTest, DISABLED_TestBuilderImageConvertor) const AZStd::string outputFolder = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/temp/"; AZStd::string inputFile; AZStd::vector outPaths; - + inputFile = srcFolder + "/terrain/cry/detail/grass_with_stones_displ.tif"; inputFile = m_imagFileNameMap[Image_128x128_Transparent_Tga]; AZStd::string oldFile = oldCacheFolder + "/terrain/cry/detail/grass_with_stones_displ.dds"; ImageConvertProcess* process = CreateImageConvertProcess(inputFile, outputFolder, "pc", m_context.get()); - + if (process != nullptr) { //the process can be stopped if the job is cancelled or the worker is shutting down @@ -911,7 +911,7 @@ TEST_F(ImageProcessingTest, DISABLED_TestBuilderImageConvertor) SaveImageToFile(process->GetOutputAlphaImage(), "alpha", 10); process->GetAppendOutputFilePaths(outPaths); - + QString output; //CompareDDSImage(outPaths[0].c_str(), oldFile.c_str(), output); delete process; @@ -952,9 +952,9 @@ TEST_F(ImageProcessingTest, DISABLED_TestLoadDdsImage) IImageObjectPtr originImage, alphaImage; AZStd::string inputFolder = m_engineRoot + "/Cache/AutomatedTesting/pc/automatedtesting/engineassets/texturemsg/"; AZStd::string inputFile; - + inputFile = "E:/Javelin_NWLYDev/dev/Cache/Assets/pc/assets/textures/blend_maps/moss/jav_moss_ddn.dds"; - + IImageObjectPtr newImage = IImageObjectPtr(LoadImageFromDdsFile(inputFile)); if (newImage->HasImageFlags(EIF_AttachedAlpha)) { @@ -1026,7 +1026,7 @@ TEST_F(ImageProcessingTest, EditorTextureSettingTest) { AZStd::string buiderSetting = m_engineRoot + "/Gems/ImageProcessing/Code/Source/ImageBuilderDefaultPresets.settings"; auto outcome = BuilderSettingManager::Instance()->LoadBuilderSettings(buiderSetting, m_context.get()); - + auto TestFunc = [](const AZStd::string& textureFilepath, bool isCubemap) { ImageProcessingEditor::EditorTextureSetting setting(textureFilepath); @@ -1109,7 +1109,7 @@ TEST_F(ImageProcessingTest, EditorTextureSettingTest) ASSERT_TRUE(resolutions.size() >= reducedResolutions.size()); } }; - + // For cubemap texture AZStd::string textureFilePath = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/noon_cm.tif"; TestFunc(textureFilePath, true); @@ -1231,7 +1231,7 @@ TEST_F(ImageProcessingSerializationTest, TextureSettingReflect_SerializingLegacy // Load legacy texture settings TextureSettings legacyTextureSetting; AZStd::string textureFilepath = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/1024x1024_24bit.tif"; - auto legacyLoadOutcome = TextureSettings::LoadLegacyTextureSettingFromFile(textureFilepath, + auto legacyLoadOutcome = TextureSettings::LoadLegacyTextureSettingFromFile(textureFilepath, textureFilepath + TextureSettings::legacyExtensionName, legacyTextureSetting, m_context.get()); // Ensure we loaded and parsed the texture settings correctly. @@ -1258,7 +1258,7 @@ TEST_F(ImageProcessingSerializationTest, TextureSettingReflect_SerializingModern // Load legacy texture settings TextureSettings legacyTextureSetting; AZStd::string textureFilepath = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/1024x1024_24bit.tif"; - auto legacyLoadOutcome = TextureSettings::LoadLegacyTextureSettingFromFile(textureFilepath, + auto legacyLoadOutcome = TextureSettings::LoadLegacyTextureSettingFromFile(textureFilepath, textureFilepath+TextureSettings::legacyExtensionName, legacyTextureSetting, m_context.get()); // Let's make modifications to the loaded texture setting @@ -1277,7 +1277,7 @@ TEST_F(ImageProcessingSerializationTest, TextureSettingReflect_SerializingModern // Load the modified settings back to memory, using AZ::Serialization TextureSettings modernTextureSetting; auto modernLoadOutcome = TextureSettings::LoadTextureSetting(modernMetafilePath, modernTextureSetting, m_context.get()); - + // Ensure what we just serialized-in is identical to what we serialized-out. // The comparison operator also compares overrides. EXPECT_TRUE(modernLoadOutcome.IsSuccess()); @@ -1291,7 +1291,7 @@ TEST_F(ImageProcessingSerializationTest, TextureSettingReflect_SerializingModern { AZStd::string filepath = "test.xml"; - // Fill-in structure with test data + // Fill-in structure with test data TextureSettings fakeTextureSettings; fakeTextureSettings.m_preset = AZ::Uuid::CreateRandom(); fakeTextureSettings.m_sizeReduceLevel = 0; @@ -1317,10 +1317,10 @@ TEST_F(ImageProcessingSerializationTest, TextureSettingReflect_SerializingModern } TEST_F(ImageProcessingSerializationTest, DISABLED_BuilderSettingsReflect_SerializingDataInAndOut_WritesAndParsesFileAccurately) -{ +{ AZStd::string buildSettingsFilepath = m_engineRoot + "/Gems/ImageProcessing/Code/Tests/TestAssets/tempPresets.settings"; AZStd::string rcFilePath = m_engineRoot + "/Code/Tools/RC/Config/rc/rc.ini"; - + auto loadOutcome = BuilderSettingManager::Instance()->LoadBuilderSettingsFromRC(rcFilePath); ASSERT_TRUE(loadOutcome.IsSuccess()); @@ -1332,7 +1332,7 @@ TEST_F(ImageProcessingSerializationTest, DISABLED_BuilderSettingsReflect_Seriali auto writeOutcome = BuilderSettingManager::Instance()->WriteBuilderSettings(buildSettingsFilepath, m_context.get()); ASSERT_TRUE(writeOutcome.IsSuccess()); - //Re-load Builder Settings + //Re-load Builder Settings auto reloadOutcome = BuilderSettingManager::Instance()->LoadBuilderSettings(buildSettingsFilepath, m_context.get()); ASSERT_TRUE(reloadOutcome.IsSuccess()); diff --git a/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationAreaComponent.cpp b/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationAreaComponent.cpp index 99101bb1c7..e80e2f6a9d 100644 --- a/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationAreaComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationAreaComponent.cpp @@ -53,8 +53,8 @@ namespace LmbrCentral editContext->Class("Navigation Area", "Navigation Area configuration") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "AI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/NavigationArea.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/NavigationArea.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/NavigationArea.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/NavigationArea.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-nav-area.html") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationSeedComponent.cpp b/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationSeedComponent.cpp index 344315371d..6ac5d85d49 100644 --- a/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationSeedComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Ai/EditorNavigationSeedComponent.cpp @@ -38,8 +38,8 @@ namespace LmbrCentral ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::Category, "AI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/NavigationSeed.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/NavigationSeed.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/NavigationSeed.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/NavigationSeed.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-nav-seed.html") ->DataElement(AZ::Edit::UIHandlers::ComboBox, &EditorNavigationSeedComponent::m_agentType, "Agent Type", "Describes the type of the Entity for navigation purposes.") diff --git a/Gems/LmbrCentral/Code/Source/Ai/NavigationComponent.cpp b/Gems/LmbrCentral/Code/Source/Ai/NavigationComponent.cpp index 9c52242052..64fa9fc7e7 100644 --- a/Gems/LmbrCentral/Code/Source/Ai/NavigationComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Ai/NavigationComponent.cpp @@ -127,8 +127,8 @@ namespace LmbrCentral "Navigation", "The Navigation component provides basic pathfinding and pathfollowing services to an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "AI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Navigation.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Navigation.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Navigation.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Navigation.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-navigation.html") diff --git a/Gems/LmbrCentral/Code/Source/Animation/EditorAttachmentComponent.cpp b/Gems/LmbrCentral/Code/Source/Animation/EditorAttachmentComponent.cpp index 337da51159..265f4ad864 100644 --- a/Gems/LmbrCentral/Code/Source/Animation/EditorAttachmentComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Animation/EditorAttachmentComponent.cpp @@ -42,8 +42,8 @@ namespace LmbrCentral "Attachment", "The Attachment component lets an entity attach to a bone on the skeleton of another entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Animation") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Attachment.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Attachment.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Attachment.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Attachment.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-attachment.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/AudioProxyComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/AudioProxyComponent.cpp index 5d5f970c43..33887d6d78 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/AudioProxyComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/AudioProxyComponent.cpp @@ -40,7 +40,7 @@ namespace LmbrCentral editContext->Class("Audio Proxy", "The Audio Proxy component is a required dependency when you add other audio components to an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioProxy.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioProxy.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AddableByUser, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-proxy.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioAreaEnvironmentComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioAreaEnvironmentComponent.cpp index 15c48e08e3..9a014c0bdf 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioAreaEnvironmentComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioAreaEnvironmentComponent.cpp @@ -41,8 +41,8 @@ namespace LmbrCentral editContext->Class("Audio Area Environment", "The Audio Area Environment component enables entities that are moving around and throughout a shape to have environment effects applied to any sounds that they trigger") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioAreaEnvironment.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioAreaEnvironment.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioAreaEnvironment.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioAreaEnvironment.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-area-environment.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioEnvironmentComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioEnvironmentComponent.cpp index d098be9aa5..effad46cdc 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioEnvironmentComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioEnvironmentComponent.cpp @@ -34,8 +34,8 @@ namespace LmbrCentral editContext->Class("Audio Environment", "The Audio Environment component provides access to features of the Audio Translation Layer (ATL) environments to apply environmental effects such as reverb or echo") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioEnvironment.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioEnvironment.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioEnvironment.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioEnvironment.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-environment.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioListenerComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioListenerComponent.cpp index 3020f8feac..79f20295e1 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioListenerComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioListenerComponent.cpp @@ -37,8 +37,8 @@ namespace LmbrCentral editContext->Class("Audio Listener", "The Audio Listener component allows a virtual microphone to be placed in the environment") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioListener.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioListener.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioListener.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioListener.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-listener.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioMultiPositionComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioMultiPositionComponent.cpp index 057c2ae80b..bdf92e0d2c 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioMultiPositionComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioMultiPositionComponent.cpp @@ -39,8 +39,8 @@ namespace LmbrCentral editContext->Class("Multi-Position Audio", "The Multi-Position Audio component provides the ability to broadcast sounds through multiple positions") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioMultiPosition.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioMultiPosition.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioMultiPosition.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioMultiPosition.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) // Followup: Need Help URL diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioPreloadComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioPreloadComponent.cpp index b4d241cd05..4953bd6cc2 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioPreloadComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioPreloadComponent.cpp @@ -40,12 +40,12 @@ namespace LmbrCentral editContext->Class("Audio Preload", "The Audio Preload component is used to load and unload soundbanks contained in Audio Translation Layer (ATL) preloads") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioPreload.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioPreload.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) // Icon todo: - //->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioPreload.png") + //->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioPreload.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-preload.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioRtpcComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioRtpcComponent.cpp index fed6c18489..c29c9c2089 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioRtpcComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioRtpcComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral editContext->Class("Audio Rtpc", "The Audio Rtpc component provides basic Real-Time Parameter Control (RTPC) functionality allowing you to tweak sounds in real time") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioRtpc.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioRtpc.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioRtpc.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioRtpc.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-rtpc.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioSwitchComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioSwitchComponent.cpp index 6be3eb9a4a..fd88e24865 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioSwitchComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioSwitchComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral editContext->Class("Audio Switch", "The Audio Switch component provides basic Audio Translation Layer (ATL) switch functionality to specify the state of an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioSwitch.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioSwitch.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioSwitch.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioSwitch.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-switch.html") diff --git a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioTriggerComponent.cpp b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioTriggerComponent.cpp index c619e6e988..ec1f076420 100644 --- a/Gems/LmbrCentral/Code/Source/Audio/EditorAudioTriggerComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Audio/EditorAudioTriggerComponent.cpp @@ -44,8 +44,8 @@ namespace LmbrCentral editContext->Class("Audio Trigger", "The Audio Trigger component provides Audio Translation Layer (ATL) triggers for play/stop functionality and on-demand execution") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Audio") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AudioTrigger.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AudioTrigger.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AudioTrigger.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AudioTrigger.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-audio-trigger.html") diff --git a/Gems/LmbrCentral/Code/Source/Editor/EditorCommentComponent.cpp b/Gems/LmbrCentral/Code/Source/Editor/EditorCommentComponent.cpp index 068294ac56..dc4fb90b48 100644 --- a/Gems/LmbrCentral/Code/Source/Editor/EditorCommentComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Editor/EditorCommentComponent.cpp @@ -34,8 +34,8 @@ namespace LmbrCentral "Comment", "The Comment component allows you to add long-form text comments for component entities") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Editor") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Comment.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Comment.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Comment.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Comment.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZStd::vector({ AZ_CRC("Level", 0x9aeacc13), AZ_CRC("Game", 0x232b318c), AZ_CRC("Layer", 0xe4db211a) })) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-comment.html") diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorAreaLightComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorAreaLightComponent.cpp index 41d8b58194..00c314400e 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorAreaLightComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorAreaLightComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral "Area Light", "The Area Light component allows an entity to light a defined area") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/AreaLight.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/AreaLight.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/AreaLight.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/AreaLight.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorDecalComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorDecalComponent.cpp index 3d79c4d2ae..a1803afb23 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorDecalComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorDecalComponent.cpp @@ -48,9 +48,9 @@ namespace LmbrCentral "Decal", "The Decal component allows an entity to project a texture or material onto a mesh")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> Attribute(AZ::Edit::Attributes::Category, "Rendering")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Decal.svg")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Decal.svg")-> Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid())-> - Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Decal.png")-> + Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Decal.png")-> Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c))-> Attribute(AZ::Edit::Attributes::AutoExpand, true)-> Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-decal.html")-> diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorEnvProbeComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorEnvProbeComponent.cpp index 3ee3d7a9b7..98327471e5 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorEnvProbeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorEnvProbeComponent.cpp @@ -36,8 +36,8 @@ namespace LmbrCentral "Environment Probe", "The Environment Probe component is used to achieve the right visual quality for a space and help determine proper reflections, ambient diffuse values, particle diffuse values, and shadow colors") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/EnvironmentProbe.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/EnvironmentProbe.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/EnvironmentProbe.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/EnvironmentProbe.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorGeomCacheComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorGeomCacheComponent.cpp index 657f6c2b51..37d04b94ba 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorGeomCacheComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorGeomCacheComponent.cpp @@ -259,8 +259,8 @@ namespace LmbrCentral editContext->Class("Geometry Cache", "Controls playback of baked vertex animations.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/GeometryCache.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/GeometryCache.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/GeometryCache.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/GeometryCache.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/userguide/geom-cache-component") diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorHighQualityShadowComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorHighQualityShadowComponent.cpp index f56318d965..30cea4619f 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorHighQualityShadowComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorHighQualityShadowComponent.cpp @@ -99,8 +99,8 @@ namespace LmbrCentral editContext->Class("High Quality Shadow", "Assigns a unique shadow map to the entity to provide higher quality shadows. Has performance and memory impact so use sparingly.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Shadow.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Shadow.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Shadow.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Shadow.png") ->Attribute(AZ::Edit::Attributes::PreferNoViewportIcon, true) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorLensFlareComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorLensFlareComponent.cpp index fc0bfb83f0..20e6799df6 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorLensFlareComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorLensFlareComponent.cpp @@ -53,9 +53,9 @@ namespace LmbrCentral "Lens Flare", "The Lens Flare component allows the placement of a lens flare on an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/LensFlare.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/LensFlare.svg") ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid()) - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/LensFlare.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/LensFlare.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-lens-flare.html") diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorLightComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorLightComponent.cpp index e9ac845a88..cbef043f17 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorLightComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorLightComponent.cpp @@ -1962,7 +1962,7 @@ namespace LmbrCentral m_materialManager = m_editor->Get3DEngine()->GetMaterialManager(); } - _smart_ptr material = m_materialManager->LoadMaterial("Editor/Objects/envcube", false, true); + _smart_ptr material = m_materialManager->LoadMaterial("Objects/envcube", false, true); QString matName = Path::GetFileName(textureName); if (material) { @@ -1981,7 +1981,7 @@ namespace LmbrCentral } } - m_statObj = m_editor->Get3DEngine()->LoadStatObjAutoRef("Editor/Objects/envcube.cgf", nullptr, nullptr, false); + m_statObj = m_editor->Get3DEngine()->LoadStatObjAutoRef("Objects/envcube.cgf", nullptr, nullptr, false); if (m_statObj) { // We need to clone the object in order for multiple Environment Probes to not stomp each other's preview materials. diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorMeshComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorMeshComponent.cpp index 141b3b880c..64254ee8f0 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorMeshComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorMeshComponent.cpp @@ -54,9 +54,9 @@ namespace LmbrCentral editContext->Class("Mesh", "The Mesh component is the primary method of adding visual geometry to entities") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/StaticMesh.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/StaticMesh.svg") ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid()) - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/StaticMesh.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/StaticMesh.png") ->Attribute(AZ::Edit::Attributes::DynamicIconOverride, &EditorMeshComponent::GetMeshViewportIconPath) ->Attribute(AZ::Edit::Attributes::PreferNoViewportIcon, true) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) @@ -457,8 +457,8 @@ namespace LmbrCentral } } - AZStd::string_view staticViewportIcon = "Editor/Icons/Components/Viewport/StaticMesh.png"; - AZStd::string_view dynamicViewportIcon = "Editor/Icons/Components/Viewport/DynamicMesh.png"; + AZStd::string_view staticViewportIcon = "Icons/Components/Viewport/StaticMesh.png"; + AZStd::string_view dynamicViewportIcon = "Icons/Components/Viewport/DynamicMesh.png"; AZStd::string EditorMeshComponent::GetMeshViewportIconPath() const { if (m_mesh.m_renderOptions.IsStatic()) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorPointLightComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorPointLightComponent.cpp index cf3baf59ae..ac2a4ec822 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorPointLightComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorPointLightComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral "Point Light", "The Point Light component allows an entity to create a point of light") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PointLight.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/PointLight.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PointLight.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/PointLight.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/EditorProjectorLightComponent.cpp b/Gems/LmbrCentral/Code/Source/Rendering/EditorProjectorLightComponent.cpp index 7ad85bb4be..3faab93d82 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/EditorProjectorLightComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/EditorProjectorLightComponent.cpp @@ -36,8 +36,8 @@ namespace LmbrCentral "Projector Light", "The Projector Light component allows an entity to project a light") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Rendering") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/ProjectorLight.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/ProjectorLight.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/ProjectorLight.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/ProjectorLight.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) diff --git a/Gems/LmbrCentral/Code/Source/Rendering/LensFlareAssetHandler.cpp b/Gems/LmbrCentral/Code/Source/Rendering/LensFlareAssetHandler.cpp index 718eabead7..d1f44a0cff 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/LensFlareAssetHandler.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/LensFlareAssetHandler.cpp @@ -113,7 +113,7 @@ namespace LmbrCentral const char* LensFlareAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/LensFlare.svg"; + return "Icons/Components/LensFlare.svg"; } AZ::Uuid LensFlareAssetHandler::GetComponentTypeId() const diff --git a/Gems/LmbrCentral/Code/Source/Rendering/MeshAssetHandler.cpp b/Gems/LmbrCentral/Code/Source/Rendering/MeshAssetHandler.cpp index 3cbad8e507..c478c22b43 100644 --- a/Gems/LmbrCentral/Code/Source/Rendering/MeshAssetHandler.cpp +++ b/Gems/LmbrCentral/Code/Source/Rendering/MeshAssetHandler.cpp @@ -249,7 +249,7 @@ namespace LmbrCentral const char* MeshAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/StaticMesh.svg"; + return "Icons/Components/StaticMesh.svg"; } AZ::Uuid MeshAssetHandler::GetComponentTypeId() const diff --git a/Gems/LmbrCentral/Code/Source/Scripting/EditorLookAtComponent.cpp b/Gems/LmbrCentral/Code/Source/Scripting/EditorLookAtComponent.cpp index ab22514cf8..107b94d119 100644 --- a/Gems/LmbrCentral/Code/Source/Scripting/EditorLookAtComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Scripting/EditorLookAtComponent.cpp @@ -36,8 +36,8 @@ namespace LmbrCentral ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Gameplay") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/LookAt.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/LookAt.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/LookAt.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/LookAt.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) diff --git a/Gems/LmbrCentral/Code/Source/Scripting/EditorRandomTimedSpawnerComponent.cpp b/Gems/LmbrCentral/Code/Source/Scripting/EditorRandomTimedSpawnerComponent.cpp index 9781b58a33..42999bb2b3 100644 --- a/Gems/LmbrCentral/Code/Source/Scripting/EditorRandomTimedSpawnerComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Scripting/EditorRandomTimedSpawnerComponent.cpp @@ -60,8 +60,8 @@ namespace LmbrCentral editContext->Class("Random Timed Spawner", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Gameplay") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/RandomTimedSpawner.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/RandomTimedSpawner.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/RandomTimedSpawner.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/RandomTimedSpawner.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/userguide/random-timed-spawner-component") diff --git a/Gems/LmbrCentral/Code/Source/Scripting/EditorSpawnerComponent.cpp b/Gems/LmbrCentral/Code/Source/Scripting/EditorSpawnerComponent.cpp index 02395fe2a1..24e32c324a 100644 --- a/Gems/LmbrCentral/Code/Source/Scripting/EditorSpawnerComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Scripting/EditorSpawnerComponent.cpp @@ -41,8 +41,8 @@ namespace LmbrCentral editContext->Class("Spawner", "The Spawner component allows an entity to spawn a design-time or run-time dynamic slice (*.dynamicslice) at the entity's location with an optional offset") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Gameplay") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Spawner.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Spawner.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Spawner.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Spawner.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-spawner.html") diff --git a/Gems/LmbrCentral/Code/Source/Scripting/EditorTagComponent.cpp b/Gems/LmbrCentral/Code/Source/Scripting/EditorTagComponent.cpp index 7ebdfb2e80..63bc235cff 100644 --- a/Gems/LmbrCentral/Code/Source/Scripting/EditorTagComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Scripting/EditorTagComponent.cpp @@ -39,8 +39,8 @@ namespace LmbrCentral ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::Category, "Gameplay") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-tag.html") ->DataElement(AZ::Edit::UIHandlers::Default, &EditorTagComponent::m_tags, "Tags", "The tags that will be on this entity by default") diff --git a/Gems/LmbrCentral/Code/Source/Scripting/SimpleStateComponent.cpp b/Gems/LmbrCentral/Code/Source/Scripting/SimpleStateComponent.cpp index 855e97eeeb..95a7a8d71b 100644 --- a/Gems/LmbrCentral/Code/Source/Scripting/SimpleStateComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Scripting/SimpleStateComponent.cpp @@ -207,8 +207,8 @@ namespace LmbrCentral ->Attribute(AZ::Edit::Attributes::Category, "Gameplay") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/SimpleState.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/SimpleState.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/SimpleState.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/SimpleState.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-simple-state.html") ->DataElement(AZ::Edit::UIHandlers::ComboBox, &SimpleStateComponent::m_initialStateName, "Initial state", "The initial active state") ->Attribute(AZ::Edit::Attributes::ChangeNotify, AZ_CRC("RefreshAttributesAndValues", 0xcbc2147c)) diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorBoxShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorBoxShapeComponent.cpp index 381f2545ed..c0b49b8e55 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorBoxShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorBoxShapeComponent.cpp @@ -48,8 +48,8 @@ namespace LmbrCentral "Box Shape", "The Box Shape component creates a box around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Box_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Box_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Box_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Box_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorCapsuleShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorCapsuleShapeComponent.cpp index 9254702321..93fdfae29f 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorCapsuleShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorCapsuleShapeComponent.cpp @@ -42,8 +42,8 @@ namespace LmbrCentral editContext->Class("Capsule Shape", "The Capsule Shape component creates a capsule around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Capsule_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Capsule_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Capsule_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Capsule_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorCompoundShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorCompoundShapeComponent.cpp index ce32dd5e15..c61f54ab08 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorCompoundShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorCompoundShapeComponent.cpp @@ -37,8 +37,8 @@ namespace LmbrCentral "Compound Shape", "The Compound Shape component allows two or more shapes to be combined to create more complex shapes") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Compound_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Sphere.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Compound_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Sphere.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorCylinderShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorCylinderShapeComponent.cpp index 87c51bb072..89de8410f5 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorCylinderShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorCylinderShapeComponent.cpp @@ -42,8 +42,8 @@ namespace LmbrCentral "Cylinder Shape", "The Cylinder Shape component creates a cylinder around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Cylinder_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Cylinder_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Cylinder_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Cylinder_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorDiskShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorDiskShapeComponent.cpp index 606a26ec52..3d6181cde6 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorDiskShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorDiskShapeComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral "Disk Shape", "The Disk Shape component creates a disk around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Disk_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Disk_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Disk_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Disk_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorPolygonPrismShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorPolygonPrismShapeComponent.cpp index 11fc04b1db..78b2d8a49b 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorPolygonPrismShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorPolygonPrismShapeComponent.cpp @@ -165,8 +165,8 @@ namespace LmbrCentral "Polygon Prism Shape", "Provides polygon prism shape") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PolygonPrism.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/PolygonPrism.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PolygonPrism.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/PolygonPrism.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/userguide/polygon-prism-component") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorQuadShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorQuadShapeComponent.cpp index e4732494bd..ef8743b2be 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorQuadShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorQuadShapeComponent.cpp @@ -35,8 +35,8 @@ namespace LmbrCentral "Quad Shape", "The Quad Shape component creates a quad around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Quad_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Component_Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Quad_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Component_Placeholder.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorSphereShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorSphereShapeComponent.cpp index e96d7976df..0d9885191d 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorSphereShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorSphereShapeComponent.cpp @@ -46,8 +46,8 @@ namespace LmbrCentral "Sphere Shape", "The Sphere Shape component creates a sphere around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Sphere_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Sphere_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Sphere_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Sphere_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorSplineComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorSplineComponent.cpp index 42c35b8cd9..e1951de498 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorSplineComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorSplineComponent.cpp @@ -63,8 +63,8 @@ namespace LmbrCentral "Spline", "Defines a sequence of points that can be interpolated.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Spline.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Spline.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Spline.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Spline.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/userguide/spline-component") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/LmbrCentral/Code/Source/Shape/EditorTubeShapeComponent.cpp b/Gems/LmbrCentral/Code/Source/Shape/EditorTubeShapeComponent.cpp index 937238b1b2..c8c03e2811 100644 --- a/Gems/LmbrCentral/Code/Source/Shape/EditorTubeShapeComponent.cpp +++ b/Gems/LmbrCentral/Code/Source/Shape/EditorTubeShapeComponent.cpp @@ -43,8 +43,8 @@ namespace LmbrCentral "Tube Shape", "The Tube Shape component creates a spline around the associated entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Shape") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tube_Shape.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tube_Shape.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tube_Shape.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tube_Shape.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-shapes.html") diff --git a/Gems/LmbrCentral/Code/Source/Unhandled/Material/MaterialAssetTypeInfo.cpp b/Gems/LmbrCentral/Code/Source/Unhandled/Material/MaterialAssetTypeInfo.cpp index cd1268f3f8..907bd66cb8 100644 --- a/Gems/LmbrCentral/Code/Source/Unhandled/Material/MaterialAssetTypeInfo.cpp +++ b/Gems/LmbrCentral/Code/Source/Unhandled/Material/MaterialAssetTypeInfo.cpp @@ -51,7 +51,7 @@ namespace LmbrCentral const char* MaterialAssetTypeInfo::GetBrowserIcon() const { - return "Editor/Icons/Components/Decal.svg"; + return "Icons/Components/Decal.svg"; } AZ::Uuid MaterialAssetTypeInfo::GetComponentTypeId() const @@ -93,6 +93,6 @@ namespace LmbrCentral const char* DccMaterialAssetTypeInfo::GetBrowserIcon() const { - return "Editor/Icons/Components/Decal.svg"; + return "Icons/Components/Decal.svg"; } } // namespace LmbrCentral diff --git a/Gems/LmbrCentral/Code/Source/Unhandled/Texture/TextureAssetTypeInfo.cpp b/Gems/LmbrCentral/Code/Source/Unhandled/Texture/TextureAssetTypeInfo.cpp index 4091ace2f4..ef559c586d 100644 --- a/Gems/LmbrCentral/Code/Source/Unhandled/Texture/TextureAssetTypeInfo.cpp +++ b/Gems/LmbrCentral/Code/Source/Unhandled/Texture/TextureAssetTypeInfo.cpp @@ -48,6 +48,6 @@ namespace LmbrCentral } const char* TextureAssetTypeInfo::GetBrowserIcon() const { - return "Editor/Icons/PropertyEditor/image_icon.svg"; + return "Icons/PropertyEditor/image_icon.svg"; } } // namespace LmbrCentral diff --git a/Gems/LmbrCentral/Code/Source/Unhandled/UI/EntityIconAssetTypeInfo.cpp b/Gems/LmbrCentral/Code/Source/Unhandled/UI/EntityIconAssetTypeInfo.cpp index c4feb8facb..a2f32763ab 100644 --- a/Gems/LmbrCentral/Code/Source/Unhandled/UI/EntityIconAssetTypeInfo.cpp +++ b/Gems/LmbrCentral/Code/Source/Unhandled/UI/EntityIconAssetTypeInfo.cpp @@ -50,6 +50,6 @@ namespace LmbrCentral const char * EntityIconAssetTypeInfo::GetBrowserIcon() const { - return "Editor/Icons/PropertyEditor/image_icon.svg"; + return "Icons/PropertyEditor/image_icon.svg"; } } // namespace LmbrCentral diff --git a/Gems/LmbrCentral/Code/Source/Unhandled/UI/UICanvasAssetTypeInfo.cpp b/Gems/LmbrCentral/Code/Source/Unhandled/UI/UICanvasAssetTypeInfo.cpp index ddf8125c84..7ed525aaa2 100644 --- a/Gems/LmbrCentral/Code/Source/Unhandled/UI/UICanvasAssetTypeInfo.cpp +++ b/Gems/LmbrCentral/Code/Source/Unhandled/UI/UICanvasAssetTypeInfo.cpp @@ -49,6 +49,6 @@ namespace LmbrCentral const char * UICanvasAssetTypeInfo::GetBrowserIcon() const { - return "Editor/Icons/Components/UiCanvasAssetRef.svg"; + return "Icons/Components/UiCanvasAssetRef.svg"; } } // namespace LmbrCentral diff --git a/Gems/LyShine/Code/Editor/ComponentHelpers.cpp b/Gems/LyShine/Code/Editor/ComponentHelpers.cpp index 9a04864141..6c20b7784d 100644 --- a/Gems/LyShine/Code/Editor/ComponentHelpers.cpp +++ b/Gems/LyShine/Code/Editor/ComponentHelpers.cpp @@ -30,7 +30,7 @@ namespace Internal { AZStd::string GetComponentIconPath(const AZ::SerializeContext::ClassData& componentClassData) { - AZStd::string iconPath = "Editor/Icons/Components/Component_Placeholder.svg"; + AZStd::string iconPath = "Icons/Components/Component_Placeholder.svg"; auto editorElementData = componentClassData.m_editData->FindElementData(AZ::Edit::ClassElements::EditorData); if (auto iconAttribute = editorElementData->FindAttribute(AZ::Edit::Attributes::Icon)) diff --git a/Gems/LyShine/Code/Editor/PropertyHandlerDirectory.cpp b/Gems/LyShine/Code/Editor/PropertyHandlerDirectory.cpp index 3789b5a130..61f6e0f3dc 100644 --- a/Gems/LyShine/Code/Editor/PropertyHandlerDirectory.cpp +++ b/Gems/LyShine/Code/Editor/PropertyHandlerDirectory.cpp @@ -49,7 +49,7 @@ PropertyDirectoryCtrl::PropertyDirectoryCtrl(QWidget* parent) refreshButton->setFocusPolicy(Qt::StrongFocus); - refreshButton->setIcon(QIcon("Editor/Icons/PropertyEditor/reset_icon.png")); + refreshButton->setIcon(QIcon("Icons/PropertyEditor/reset_icon.png")); // The icon size needs to be smaller than the fixed size to make sure it visually aligns properly. QSize iconSize = QSize(fixedSize.width() - 2, fixedSize.height() - 2); diff --git a/Gems/LyShine/Code/Editor/PropertyHandlerSprite.cpp b/Gems/LyShine/Code/Editor/PropertyHandlerSprite.cpp index 700793a250..20721d4624 100644 --- a/Gems/LyShine/Code/Editor/PropertyHandlerSprite.cpp +++ b/Gems/LyShine/Code/Editor/PropertyHandlerSprite.cpp @@ -65,7 +65,7 @@ PropertySpriteCtrl::PropertySpriteCtrl(QWidget* parent) slicerButton->setFocusPolicy(Qt::StrongFocus); - slicerButton->setIcon(QIcon("Editor/Icons/PropertyEditor/open_in.png")); + slicerButton->setIcon(QIcon("Icons/PropertyEditor/open_in.png")); // The icon size needs to be smaller than the fixed size to make sure it visually aligns properly. QSize iconSize = QSize(fixedSize.width() - 2, fixedSize.height() - 2); diff --git a/Gems/LyShine/Code/Editor/ViewportAnchor.cpp b/Gems/LyShine/Code/Editor/ViewportAnchor.cpp index 7f9b841d7f..d61066f4d9 100644 --- a/Gems/LyShine/Code/Editor/ViewportAnchor.cpp +++ b/Gems/LyShine/Code/Editor/ViewportAnchor.cpp @@ -14,10 +14,10 @@ #include "EditorCommon.h" ViewportAnchor::ViewportAnchor() - : m_anchorWhole(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif")) - , m_anchorLeft(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif")) - , m_anchorLeftTop(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif")) - , m_dottedLine(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif")) + : m_anchorWhole(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif")) + , m_anchorLeft(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Anchor_Left.tif")) + , m_anchorLeftTop(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Anchor_TopLeft.tif")) + , m_dottedLine(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif")) { } diff --git a/Gems/LyShine/Code/Editor/ViewportCanvasBackground.cpp b/Gems/LyShine/Code/Editor/ViewportCanvasBackground.cpp index 82a7847459..ccc35de305 100644 --- a/Gems/LyShine/Code/Editor/ViewportCanvasBackground.cpp +++ b/Gems/LyShine/Code/Editor/ViewportCanvasBackground.cpp @@ -15,7 +15,7 @@ #include "EditorCommon.h" ViewportCanvasBackground::ViewportCanvasBackground() - : m_canvasBackground(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif")) + : m_canvasBackground(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Canvas_Background.tif")) { } diff --git a/Gems/LyShine/Code/Editor/ViewportHighlight.cpp b/Gems/LyShine/Code/Editor/ViewportHighlight.cpp index 254cef8a5a..c050d55049 100644 --- a/Gems/LyShine/Code/Editor/ViewportHighlight.cpp +++ b/Gems/LyShine/Code/Editor/ViewportHighlight.cpp @@ -14,8 +14,8 @@ #include "EditorCommon.h" ViewportHighlight::ViewportHighlight() - : m_highlightIconSelected(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif")) - , m_highlightIconUnselected(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif")) + : m_highlightIconSelected(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Border_Selected.tif")) + , m_highlightIconUnselected(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Border_Unselected.tif")) { } diff --git a/Gems/LyShine/Code/Editor/ViewportIcon.cpp b/Gems/LyShine/Code/Editor/ViewportIcon.cpp index 1e137fe91b..81ed5dbcb5 100644 --- a/Gems/LyShine/Code/Editor/ViewportIcon.cpp +++ b/Gems/LyShine/Code/Editor/ViewportIcon.cpp @@ -344,7 +344,7 @@ void ViewportIcon::DrawDistanceLineWithTransform(Draw2dHelper& draw2d, AZ::Vecto DrawDistanceLine(draw2d, start2, end2, value, suffix); } -void ViewportIcon::DrawElementRectOutline([[maybe_unused]] Draw2dHelper& draw2d, AZ::EntityId entityId, AZ::Color color) +void ViewportIcon::DrawElementRectOutline(Draw2dHelper& draw2d, AZ::EntityId entityId, AZ::Color color) { // get the transformed rect for the element UiTransformInterface::RectPoints points; @@ -380,109 +380,5 @@ void ViewportIcon::DrawElementRectOutline([[maybe_unused]] Draw2dHelper& draw2d, rightVec.NormalizeSafe(); downVec.NormalizeSafe(); - // calculate the transformed width and height of the rect - // (in case it is smaller than the texture height) - AZ::Vector2 widthVec = points.TopRight() - points.TopLeft(); - AZ::Vector2 heightVec = points.BottomLeft() - points.TopLeft(); - float rectWidth = widthVec.GetLength(); - float rectHeight = heightVec.GetLength(); - - // the outline "width" will be based on the texture height - float textureHeight = GetTextureSize().GetY(); - if (textureHeight <= 0) - { - return; // should never happen - avoiding possible divide by zero later - } - - // the outline is centered on the element rect so half the outline is outside - // the rect and half is inside the rect - float outerOffset = -textureHeight * 0.5f; - float innerOffset = textureHeight * 0.5f; - float outerV = 0.0f; - float innerV = 1.0f; - - // if the rect is small there may not be space for the half of the outline that - // is inside the rect. If this is the case reduce the innerOffset so the inner - // points are coincident. Adjust the UVs according to keep a 1-1 texel to pixel ratio. - float minDimension = min(rectWidth, rectHeight); - if (innerOffset > minDimension * 0.5f) - { - float oldInnerOffset = innerOffset; - innerOffset = minDimension * 0.5f; - // note oldInnerOffset can't be zero because of early return if textureHeight is zero - innerV = 0.5f + 0.5f * innerOffset / oldInnerOffset; - } - - // fill out the 8 verts to define the 2 rectangles - outer and inner - // The vertices are in the order of outer rect then inner rect. e.g.: - // 0 1 - // 4 5 - // 6 7 - // 2 3 - // - const int32 NUM_VERTS = 8; - AZ::Vector2 verts2d[NUM_VERTS] = { - // four verts of outer rect - points.pt[0] + rightVec * outerOffset + downVec * outerOffset, - points.pt[1] - rightVec * outerOffset + downVec * outerOffset, - points.pt[3] + rightVec * outerOffset - downVec * outerOffset, - points.pt[2] - rightVec * outerOffset - downVec * outerOffset, - // four verts of inner rect - points.pt[0] + rightVec * innerOffset + downVec * innerOffset, - points.pt[1] - rightVec * innerOffset + downVec * innerOffset, - points.pt[3] + rightVec * innerOffset - downVec * innerOffset, - points.pt[2] - rightVec * innerOffset - downVec * innerOffset, - }; - - // and define the UV coordinates for these 8 verts - AZ::Vector2 uvs[NUM_VERTS] = { - AZ::Vector2(0.0f, outerV), AZ::Vector2(1.0f, outerV), AZ::Vector2(1.0f, outerV), AZ::Vector2(0.0f, outerV), - AZ::Vector2(0.0f, innerV), AZ::Vector2(1.0f, innerV), AZ::Vector2(1.0f, innerV), AZ::Vector2(0.0f, innerV), - }; - - // Now create the 8 verts in the right vertex format for DrawDynVB - SVF_P3F_C4B_T2F vertices[NUM_VERTS]; - const float z = 1.0f; // depth test disabled, if writing Z this will write at far plane - uint32 packedColor = (color.GetA8() << 24) | (color.GetR8() << 16) | (color.GetG8() << 8) | color.GetB8(); - for (int i = 0; i < NUM_VERTS; ++i) - { - vertices[i].xyz = Vec3(verts2d[i].GetX(), verts2d[i].GetY(), z); - vertices[i].color.dcolor = packedColor; - vertices[i].st = Vec2(uvs[i].GetX(), uvs[i].GetY()); - } - - // The indicies are for four quads (one for each side of the rect). - // The quads are drawn using a triangle list (simpler than a tri-strip) - // We draw each quad in the same order that the image component draws quads to - // maximize chances of things lining up so each quad is drawn as two triangles: - // top-left, top-right, bottom-left / bottom-left, top-right, bottom-right - // e.g. for a quad like this: - // - // 0 1 - // |/| - // 2 3 - // - // The two triangles would be 0,1,2 and 2,1,3 - // - const int32 NUM_INDICES = 24; - uint16 indicies[NUM_INDICES] = - { - 0, 1, 4, 4, 1, 5, // top quad - 6, 7, 2, 2, 7, 3, // bottom quad - 0, 4, 2, 2, 4, 6, // left quad - 5, 1, 7, 1, 7, 3, // right quad - }; - -#ifdef LYSHINE_ATOM_TODO - IRenderer* renderer = gEnv->pRenderer; - renderer->SetTexture(m_texture->GetTextureID()); - - renderer->SetState(GS_BLSRC_SRCALPHA | GS_BLDST_ONEMINUSSRCALPHA | GS_NODEPTHTEST); - renderer->SetColorOp(eCO_MODULATE, eCO_MODULATE, DEF_TEXARG0, DEF_TEXARG0); - - // This will end up using DrawIndexedPrimitive to render the quad - renderer->DrawDynVB(vertices, indicies, NUM_VERTS, NUM_INDICES, prtTriangleList); -#else - // LYSHINE_ATOM_TODO - add option in Draw2d to draw indexed primitive for this textured element outline -#endif + draw2d.DrawRectOutlineTextured(m_image, points, rightVec, downVec, color); } diff --git a/Gems/LyShine/Code/Editor/ViewportInteraction.cpp b/Gems/LyShine/Code/Editor/ViewportInteraction.cpp index a5370ef7c3..60b7f4f35b 100644 --- a/Gems/LyShine/Code/Editor/ViewportInteraction.cpp +++ b/Gems/LyShine/Code/Editor/ViewportInteraction.cpp @@ -167,8 +167,8 @@ ViewportInteraction::ViewportInteraction(EditorWindow* editorWindow) : QObject() , m_editorWindow(editorWindow) , m_activeElementId() - , m_anchorWhole(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif")) - , m_pivotIcon(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif")) + , m_anchorWhole(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Anchor_Whole.tif")) + , m_pivotIcon(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif")) , m_interactionMode(PersistentGetInteractionMode()) , m_interactionType(InteractionType::NONE) , m_coordinateSystem(PersistentGetCoordinateSystem()) @@ -186,13 +186,13 @@ ViewportInteraction::ViewportInteraction(EditorWindow* editorWindow) , m_startAnchors(UiTransform2dInterface::Anchors()) , m_grabbedAnchors(ViewportHelpers::SelectedAnchors()) , m_grabbedGizmoParts(ViewportHelpers::GizmoParts()) - , m_lineTriangleX(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif")) - , m_lineTriangleY(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif")) - , m_circle(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif")) - , m_lineSquareX(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif")) - , m_lineSquareY(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif")) - , m_centerSquare(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif")) - , m_dottedLine(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif")) + , m_lineTriangleX(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_X.tif")) + , m_lineTriangleY(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Triangle_Y.tif")) + , m_circle(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Circle.tif")) + , m_lineSquareX(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_X.tif")) + , m_lineSquareY(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Line_Square_Y.tif")) + , m_centerSquare(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Transform_Gizmo_Center_Square.tif")) + , m_dottedLine(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/DottedLine.tif")) , m_dragInteraction(nullptr) , m_expanderWatcher(new ViewportInteractionExpanderWatcher(this)) { diff --git a/Gems/LyShine/Code/Editor/ViewportPivot.cpp b/Gems/LyShine/Code/Editor/ViewportPivot.cpp index 0c3660159a..694cf91515 100644 --- a/Gems/LyShine/Code/Editor/ViewportPivot.cpp +++ b/Gems/LyShine/Code/Editor/ViewportPivot.cpp @@ -15,7 +15,7 @@ #include "ViewportPivot.h" ViewportPivot::ViewportPivot() - : m_pivot(new ViewportIcon("Editor/Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif")) + : m_pivot(new ViewportIcon("Plugins/UiCanvasEditor/CanvasIcons/Pivot.tif")) { } diff --git a/Gems/LyShine/Code/Editor/ViewportWidget.cpp b/Gems/LyShine/Code/Editor/ViewportWidget.cpp index 9956a39647..8861763dcf 100644 --- a/Gems/LyShine/Code/Editor/ViewportWidget.cpp +++ b/Gems/LyShine/Code/Editor/ViewportWidget.cpp @@ -570,7 +570,8 @@ void ViewportWidget::mousePressEvent(QMouseEvent* ev) if (ev->button() == Qt::LeftButton) { // Send event to this canvas - const AZ::Vector2 viewportPosition(aznumeric_cast(ev->x()), aznumeric_cast(ev->y())); + QPointF scaledPos = WidgetToViewport(ev->localPos()); + const AZ::Vector2 viewportPosition(aznumeric_cast(scaledPos.x()), aznumeric_cast(scaledPos.y())); const AzFramework::InputChannel::Snapshot inputSnapshot(AzFramework::InputDeviceMouse::Button::Left, AzFramework::InputDeviceMouse::Id, AzFramework::InputChannel::State::Began); @@ -604,7 +605,8 @@ void ViewportWidget::mouseMoveEvent(QMouseEvent* ev) AZ::EntityId canvasEntityId = m_editorWindow->GetPreviewModeCanvas(); if (canvasEntityId.IsValid()) { - const AZ::Vector2 viewportPosition(aznumeric_cast(ev->x()), aznumeric_cast(ev->y())); + QPointF scaledPos = WidgetToViewport(ev->localPos()); + const AZ::Vector2 viewportPosition(aznumeric_cast(scaledPos.x()), aznumeric_cast(scaledPos.y())); const AzFramework::InputChannelId& channelId = (ev->buttons() & Qt::LeftButton) ? AzFramework::InputDeviceMouse::Button::Left : AzFramework::InputDeviceMouse::SystemCursorPosition; @@ -640,7 +642,8 @@ void ViewportWidget::mouseReleaseEvent(QMouseEvent* ev) if (ev->button() == Qt::LeftButton) { // Send event to this canvas - const AZ::Vector2 viewportPosition(aznumeric_cast(ev->x()), aznumeric_cast(ev->y())); + QPointF scaledPos = WidgetToViewport(ev->localPos()); + const AZ::Vector2 viewportPosition(aznumeric_cast(scaledPos.x()), aznumeric_cast(scaledPos.y())); const AzFramework::InputChannel::Snapshot inputSnapshot(AzFramework::InputDeviceMouse::Button::Left, AzFramework::InputDeviceMouse::Id, AzFramework::InputChannel::State::Ended); diff --git a/Gems/LyShine/Code/Include/LyShine/Draw2d.h b/Gems/LyShine/Code/Include/LyShine/Draw2d.h index ec636c3e3b..40383e5e08 100644 --- a/Gems/LyShine/Code/Include/LyShine/Draw2d.h +++ b/Gems/LyShine/Code/Include/LyShine/Draw2d.h @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -128,6 +129,19 @@ public: // member functions void DrawText(const char* textString, AZ::Vector2 position, float pointSize, float opacity = 1.0f, TextOptions* textOptions = nullptr); + //! Draw a rectangular outline with a texture + // + //! \param image The texture to be used for drawing the outline + //! \param points The rect's vertices (top left, top right, bottom right, bottom left) + //! \param rightVec Right vector. Specified because the rect's width/height could be 0 + //! \param downVec Down vector. Specified because the rect's width/height could be 0 + //! \param color The color of the outline + void DrawRectOutlineTextured(AZ::Data::Instance image, + UiTransformInterface::RectPoints points, + AZ::Vector2 rightVec, + AZ::Vector2 downVec, + AZ::Color color); + //! Get the width and height (in pixels) that would be used to draw the given text string. // //! Pass the same parameter values that would be used to draw the string @@ -243,6 +257,24 @@ protected: // types and constants std::string m_string; }; + class DeferredRectOutline + : public DeferredPrimitive + { + public: + ~DeferredRectOutline() override {}; + void Draw(AZ::RHI::Ptr dynamicDraw, + const Draw2dShaderData& shaderData, + AZ::RPI::ViewportContextPtr viewportContext) const override; + + AZ::Data::Instance m_image; + + static constexpr int32 NUM_VERTS = 8; + AZ::Vector2 m_verts2d[NUM_VERTS]; + AZ::Vector2 m_uvs[NUM_VERTS]; + + AZ::Color m_color; + }; + protected: // member functions //! Rotate an array of points around the z-axis at the pivot point. @@ -261,6 +293,9 @@ protected: // member functions //! Draw or defer a line void DrawOrDeferLine(const DeferredLine* line); + //! Draw or defer a rect outline + void DrawOrDeferRectOutline(const DeferredRectOutline* outlineRect); + //! Get specified viewport context or default viewport context if not specified AZ::RPI::ViewportContextPtr GetViewportContext() const; @@ -394,6 +429,21 @@ public: // member functions } } + //! Draw a rect outline with a texture + // + //! See IDraw2d:DrawRectOutlineTextured for parameter descriptions + void DrawRectOutlineTextured(AZ::Data::Instance image, + UiTransformInterface::RectPoints points, + AZ::Vector2 rightVec, + AZ::Vector2 downVec, + AZ::Color color) + { + if (m_draw2d) + { + m_draw2d->DrawRectOutlineTextured(image, points, rightVec, downVec, color); + } + } + //! Draw a text string. Only supports ASCII text. // //! See IDraw2d:DrawText for parameter descriptions diff --git a/Gems/LyShine/Code/Source/Draw2d.cpp b/Gems/LyShine/Code/Source/Draw2d.cpp index cd15475039..c8ee38cce4 100644 --- a/Gems/LyShine/Code/Source/Draw2d.cpp +++ b/Gems/LyShine/Code/Source/Draw2d.cpp @@ -305,6 +305,89 @@ void CDraw2d::DrawText(const char* textString, AZ::Vector2 position, float point actualTextOptions->baseState); } +void CDraw2d::DrawRectOutlineTextured(AZ::Data::Instance image, + UiTransformInterface::RectPoints points, + AZ::Vector2 rightVec, + AZ::Vector2 downVec, + AZ::Color color) +{ + // since the rect can be transformed we have to add the offsets by multiplying them + // by unit vectors parallel with the edges of the rect. However, the rect could be + // zero width and/or height so we can't use "points" to compute these unit vectors. + // So we instead get two transformed unit vectors and then normalize them + rightVec.NormalizeSafe(); + downVec.NormalizeSafe(); + + // calculate the transformed width and height of the rect + // (in case it is smaller than the texture height) + AZ::Vector2 widthVec = points.TopRight() - points.TopLeft(); + AZ::Vector2 heightVec = points.BottomLeft() - points.TopLeft(); + float rectWidth = widthVec.GetLength(); + float rectHeight = heightVec.GetLength(); + + // the outline thickness will be based on the texture height + float textureHeight = image ? aznumeric_cast(image->GetDescriptor().m_size.m_height) : 0.0f; + if (textureHeight <= 0.0f) + { + AZ_Assert(false, "Attempting to draw a textured rect outline with an image of zero height."); + return; // avoiding possible divide by zero later + } + + // the outline is centered on the element rect so half the outline is outside + // the rect and half is inside the rect + float outerOffset = -textureHeight * 0.5f; + float innerOffset = textureHeight * 0.5f; + float outerV = 0.0f; + float innerV = 1.0f; + + // if the rect is small there may not be space for the half of the outline that + // is inside the rect. If this is the case reduce the innerOffset so the inner + // points are coincident. Adjust the UVs according to keep a 1-1 texel to pixel ratio. + float minDimension = min(rectWidth, rectHeight); + if (innerOffset > minDimension * 0.5f) + { + float oldInnerOffset = innerOffset; + innerOffset = minDimension * 0.5f; + // note oldInnerOffset can't be zero because of early return if textureHeight is zero + innerV = 0.5f + 0.5f * innerOffset / oldInnerOffset; + } + + DeferredRectOutline rectOutline; + + // fill out the 8 verts to define the 2 rectangles - outer and inner + // The vertices are in the order of outer rect then inner rect. e.g.: + // 0 1 + // 4 5 + // 6 7 + // 2 3 + // + // four verts of outer rect + rectOutline.m_verts2d[0] = points.pt[0] + rightVec * outerOffset + downVec * outerOffset; + rectOutline.m_verts2d[1] = points.pt[1] - rightVec * outerOffset + downVec * outerOffset; + rectOutline.m_verts2d[2] = points.pt[3] + rightVec * outerOffset - downVec * outerOffset; + rectOutline.m_verts2d[3] = points.pt[2] - rightVec * outerOffset - downVec * outerOffset; + // four verts of inner rect + rectOutline.m_verts2d[4] = points.pt[0] + rightVec * innerOffset + downVec * innerOffset; + rectOutline.m_verts2d[5] = points.pt[1] - rightVec * innerOffset + downVec * innerOffset; + rectOutline.m_verts2d[6] = points.pt[3] + rightVec * innerOffset - downVec * innerOffset; + rectOutline.m_verts2d[7] = points.pt[2] - rightVec * innerOffset - downVec * innerOffset; + + // and define the UV coordinates for these 8 verts + rectOutline.m_uvs[0] = AZ::Vector2(0.0f, outerV); + rectOutline.m_uvs[1] = AZ::Vector2(1.0f, outerV); + rectOutline.m_uvs[2] = AZ::Vector2(1.0f, outerV); + rectOutline.m_uvs[3] = AZ::Vector2(0.0f, outerV); + rectOutline.m_uvs[4] = AZ::Vector2(0.0f, innerV); + rectOutline.m_uvs[5] = AZ::Vector2(1.0f, innerV); + rectOutline.m_uvs[6] = AZ::Vector2(1.0f, innerV); + rectOutline.m_uvs[7] = AZ::Vector2(0.0f, innerV); + + rectOutline.m_image = image; + rectOutline.m_color = color; + + DrawOrDeferRectOutline(&rectOutline); +} + //////////////////////////////////////////////////////////////////////////////////////////////////// // TBD should the size include the offset of the drop shadow (if any)? //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -592,6 +675,20 @@ void CDraw2d::DrawOrDeferLine(const DeferredLine* line) } } +void CDraw2d::DrawOrDeferRectOutline(const DeferredRectOutline* rectOutline) +{ + if (m_deferCalls) + { + DeferredRectOutline* newRectOutline = new DeferredRectOutline; + *newRectOutline = *rectOutline; + m_deferredPrimitives.push_back(newRectOutline); + } + else + { + rectOutline->Draw(m_dynamicDraw, m_shaderData, GetViewportContext()); + } +} + //////////////////////////////////////////////////////////////////////////////////////////////////// AZ::RPI::ViewportContextPtr CDraw2d::GetViewportContext() const { @@ -604,7 +701,6 @@ AZ::RPI::ViewportContextPtr CDraw2d::GetViewportContext() const // Return the user specified viewport context return m_viewportContext; - } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -729,6 +825,80 @@ void CDraw2d::DeferredLine::Draw(AZ::RHI::Ptr dynam dynamicDraw->DrawLinear(vertices, NUM_VERTS, drawSrg); } +void CDraw2d::DeferredRectOutline::Draw(AZ::RHI::Ptr dynamicDraw, + const Draw2dShaderData& shaderData, + AZ::RPI::ViewportContextPtr viewportContext) const +{ + // Create the 8 verts in the right vertex format for the dynamic draw context + SVF_P3F_C4B_T2F vertices[NUM_VERTS]; + const float z = 1.0f; // depth test disabled, if writing Z this will write at far plane + uint32 packedColor = (m_color.GetA8() << 24) | (m_color.GetR8() << 16) | (m_color.GetG8() << 8) | m_color.GetB8(); + for (int i = 0; i < NUM_VERTS; ++i) + { + vertices[i].xyz = Vec3(m_verts2d[i].GetX(), m_verts2d[i].GetY(), z); + vertices[i].color.dcolor = packedColor; + vertices[i].st = Vec2(m_uvs[i].GetX(), m_uvs[i].GetY()); + } + + // The indices are for four quads (one for each side of the rect). + // The quads are drawn using a triangle list (simpler than a tri-strip) + // We draw each quad in the same order that the image component draws quads to + // maximize chances of things lining up so each quad is drawn as two triangles: + // top-left, top-right, bottom-left / bottom-left, top-right, bottom-right + // e.g. for a quad like this: + // + // 0 1 + // |/| + // 2 3 + // + // The two triangles would be 0,1,2 and 2,1,3 + // + static constexpr int32 NUM_INDICES = 24; + uint16 indices[NUM_INDICES] = + { + 0, 1, 4, 4, 1, 5, // top quad + 6, 7, 2, 2, 7, 3, // bottom quad + 0, 4, 2, 2, 4, 6, // left quad + 5, 1, 7, 1, 7, 3, // right quad + }; + + // Set up per draw SRG + AZ::Data::Instance drawSrg = dynamicDraw->NewDrawSrg(); + + // Set texture + const AZ::RHI::ImageView* imageView = m_image ? m_image->GetImageView() : nullptr; + if (!imageView) + { + // Default to white texture + auto image = AZ::RPI::ImageSystemInterface::Get()->GetSystemImage(AZ::RPI::SystemImage::White); + imageView = image->GetImageView(); + } + + if (imageView) + { + drawSrg->SetImageView(shaderData.m_imageInputIndex, imageView, 0); + } + + // Set projection matrix + auto windowContext = viewportContext->GetWindowContext(); + const AZ::RHI::Viewport& viewport = windowContext->GetViewport(); + const float viewX = viewport.m_minX; + const float viewY = viewport.m_minY; + const float viewWidth = viewport.m_maxX - viewport.m_minX; + const float viewHeight = viewport.m_maxY - viewport.m_minY; + const float zf = viewport.m_minZ; + const float zn = viewport.m_maxZ; + AZ::Matrix4x4 modelViewProjMat; + AZ::MakeOrthographicMatrixRH(modelViewProjMat, viewX, viewX + viewWidth, viewY + viewHeight, viewY, zn, zf); + drawSrg->SetConstant(shaderData.m_viewProjInputIndex, modelViewProjMat); + + drawSrg->Compile(); + + // Add the primitive to the dynamic draw context for drawing + dynamicDraw->SetPrimitiveType(AZ::RHI::PrimitiveTopology::TriangleList); + dynamicDraw->DrawIndexed(vertices, NUM_VERTS, indices, NUM_INDICES, AZ::RHI::IndexFormat::Uint16, drawSrg); + +} //////////////////////////////////////////////////////////////////////////////////////////////////// // CDraw2d::DeferredText diff --git a/Gems/LyShine/Code/Source/UiFlipbookAnimationComponent.cpp b/Gems/LyShine/Code/Source/UiFlipbookAnimationComponent.cpp index a6ad0347be..facffa0e54 100644 --- a/Gems/LyShine/Code/Source/UiFlipbookAnimationComponent.cpp +++ b/Gems/LyShine/Code/Source/UiFlipbookAnimationComponent.cpp @@ -165,8 +165,8 @@ void UiFlipbookAnimationComponent::Reflect(AZ::ReflectContext* context) editInfo->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "UI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Flipbook.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Flipbook.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Flipbook.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Flipbook.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("UI")) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ; diff --git a/Gems/LyShine/Code/Source/UiSpawnerComponent.cpp b/Gems/LyShine/Code/Source/UiSpawnerComponent.cpp index 6c2833da4f..24d080312d 100644 --- a/Gems/LyShine/Code/Source/UiSpawnerComponent.cpp +++ b/Gems/LyShine/Code/Source/UiSpawnerComponent.cpp @@ -82,8 +82,8 @@ void UiSpawnerComponent::Reflect(AZ::ReflectContext* context) editInfo->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "UI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Spawner.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Spawner.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Spawner.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Spawner.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("UI", 0x27ff46b0)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true); diff --git a/Gems/LyShine/Code/Source/World/UiCanvasAssetRefComponent.cpp b/Gems/LyShine/Code/Source/World/UiCanvasAssetRefComponent.cpp index 2f3ddb3097..9d436f8a57 100644 --- a/Gems/LyShine/Code/Source/World/UiCanvasAssetRefComponent.cpp +++ b/Gems/LyShine/Code/Source/World/UiCanvasAssetRefComponent.cpp @@ -170,8 +170,8 @@ void UiCanvasAssetRefComponent::Reflect(AZ::ReflectContext* context) editInfo->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "UI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/UiCanvasAssetRef.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/UiCanvasRef.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/UiCanvasAssetRef.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/UiCanvasRef.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-ui-canvas-asset-ref.html") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)); diff --git a/Gems/LyShine/Code/Source/World/UiCanvasOnMeshComponent.cpp b/Gems/LyShine/Code/Source/World/UiCanvasOnMeshComponent.cpp index 6247f7413e..0888666aad 100644 --- a/Gems/LyShine/Code/Source/World/UiCanvasOnMeshComponent.cpp +++ b/Gems/LyShine/Code/Source/World/UiCanvasOnMeshComponent.cpp @@ -347,8 +347,8 @@ void UiCanvasOnMeshComponent::Reflect(AZ::ReflectContext* context) editInfo->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "UI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/UiCanvasOnMesh.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/UiCanvasOnMesh.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/UiCanvasOnMesh.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/UiCanvasOnMesh.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-ui-canvas-on-mesh.html") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)); diff --git a/Gems/LyShine/Code/Source/World/UiCanvasProxyRefComponent.cpp b/Gems/LyShine/Code/Source/World/UiCanvasProxyRefComponent.cpp index 78e8e16dfc..9d88b2b066 100644 --- a/Gems/LyShine/Code/Source/World/UiCanvasProxyRefComponent.cpp +++ b/Gems/LyShine/Code/Source/World/UiCanvasProxyRefComponent.cpp @@ -75,8 +75,8 @@ void UiCanvasProxyRefComponent::Reflect(AZ::ReflectContext* context) editInfo->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "UI") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/UiCanvasProxyRef.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/UiCanvasRef.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/UiCanvasProxyRef.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/UiCanvasRef.png") ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-ui-canvas-proxy-ref.html") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)); diff --git a/Gems/Maestro/Code/Source/Components/EditorSequenceAgentComponent.cpp b/Gems/Maestro/Code/Source/Components/EditorSequenceAgentComponent.cpp index 261b6c0ec3..2f147a7ddf 100644 --- a/Gems/Maestro/Code/Source/Components/EditorSequenceAgentComponent.cpp +++ b/Gems/Maestro/Code/Source/Components/EditorSequenceAgentComponent.cpp @@ -47,8 +47,8 @@ namespace Maestro "SequenceAgent", "Maps Director Component Animations to Behavior Properties on this Entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Cinematics") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/SequenceAgent.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/SequenceAgent.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/SequenceAgent.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/SequenceAgent.png") ->Attribute(AZ::Edit::Attributes::AddableByUser, false) // SequenceAgents are only added by TrackView ->Attribute(AZ::Edit::Attributes::AutoExpand, true); } diff --git a/Gems/Maestro/Code/Source/Components/EditorSequenceComponent.cpp b/Gems/Maestro/Code/Source/Components/EditorSequenceComponent.cpp index 43bfc9c24e..9ac50e003f 100644 --- a/Gems/Maestro/Code/Source/Components/EditorSequenceComponent.cpp +++ b/Gems/Maestro/Code/Source/Components/EditorSequenceComponent.cpp @@ -110,8 +110,8 @@ namespace Maestro "Sequence", "Plays Cinematic Animations") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Cinematics") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Sequence.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Sequence.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Sequence.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Sequence.png") //->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game")) ->Attribute(AZ::Edit::Attributes::AddableByUser, false) // SequenceAgents are only added by TrackView ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/Multiplayer/Code/Include/IMultiplayer.h b/Gems/Multiplayer/Code/Include/IMultiplayer.h index 67776e15be..47d0d5a05e 100644 --- a/Gems/Multiplayer/Code/Include/IMultiplayer.h +++ b/Gems/Multiplayer/Code/Include/IMultiplayer.h @@ -74,6 +74,10 @@ namespace Multiplayer //! @param handler The SessionShutdownEvent handler to add virtual void AddSessionShutdownHandler(SessionShutdownEvent::Handler& handler) = 0; + //! Sends a packet telling if entity update messages can be sent + //! @param readyForEntityUpdates Ready for entity updates or not + virtual void SendReadyForEntityUpdates(bool readyForEntityUpdates) = 0; + //! Returns the gem name associated with the provided component index. //! @param netComponentId the componentId to return the gem name of //! @return the name of the gem that contains the requested component diff --git a/Gems/Multiplayer/Code/Include/MultiplayerTypes.h b/Gems/Multiplayer/Code/Include/MultiplayerTypes.h index ca3734e4f0..5c690958b5 100644 --- a/Gems/Multiplayer/Code/Include/MultiplayerTypes.h +++ b/Gems/Multiplayer/Code/Include/MultiplayerTypes.h @@ -73,6 +73,12 @@ namespace Multiplayer True }; + enum class AutoActivate : uint8_t + { + DoNotActivate, + Activate + }; + // This is just a placeholder // The level/prefab cooking will devise the actual solution for identifying a dynamically spawnable entity within a prefab struct PrefabEntityId diff --git a/Gems/Multiplayer/Code/Source/AutoGen/Multiplayer.AutoPackets.xml b/Gems/Multiplayer/Code/Source/AutoGen/Multiplayer.AutoPackets.xml index 95204a3c3f..5de466899c 100644 --- a/Gems/Multiplayer/Code/Source/AutoGen/Multiplayer.AutoPackets.xml +++ b/Gems/Multiplayer/Code/Source/AutoGen/Multiplayer.AutoPackets.xml @@ -14,6 +14,10 @@ + + + + diff --git a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp index d3303cb121..bb1dac5a4e 100644 --- a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp +++ b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp @@ -41,8 +41,8 @@ namespace Multiplayer "Network Binding", "The Network Binding component marks an entity as able to be replicated across the network") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Multiplayer") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/NetBind.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/NetBind.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/NetBind.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/NetBind.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("Game")); } } diff --git a/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.h b/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.h index b63ffee9a3..76a809b351 100644 --- a/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.h +++ b/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.h @@ -33,10 +33,10 @@ namespace Multiplayer AzNetworking::IConnection* GetConnection() const override; EntityReplicationManager& GetReplicationManager() override; void Update(AZ::TimeMs serverGameTimeMs) override; + bool CanSendUpdates() const override; + void SetCanSendUpdates(bool canSendUpdates) override; //! @} - bool CanSendUpdates(); - private: EntityReplicationManager m_entityReplicationManager; AzNetworking::IConnection* m_connection = nullptr; diff --git a/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.inl b/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.inl index 1ee5711341..6d4a332b6e 100644 --- a/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.inl +++ b/Gems/Multiplayer/Code/Source/ConnectionData/ClientToServerConnectionData.inl @@ -12,8 +12,13 @@ namespace Multiplayer { - inline bool ClientToServerConnectionData::CanSendUpdates() + inline bool ClientToServerConnectionData::CanSendUpdates() const { return m_canSendUpdates; } + + inline void ClientToServerConnectionData::SetCanSendUpdates(bool canSendUpdates) + { + m_canSendUpdates = canSendUpdates; + } } diff --git a/Gems/Multiplayer/Code/Source/ConnectionData/IConnectionData.h b/Gems/Multiplayer/Code/Source/ConnectionData/IConnectionData.h index ebff75fd9b..a7ceffd289 100644 --- a/Gems/Multiplayer/Code/Source/ConnectionData/IConnectionData.h +++ b/Gems/Multiplayer/Code/Source/ConnectionData/IConnectionData.h @@ -44,5 +44,13 @@ namespace Multiplayer //! Creates and manages sending updates to the remote endpoint. //! @param serverGameTimeMs current server game time in milliseconds virtual void Update(AZ::TimeMs serverGameTimeMs) = 0; + + //! Returns whether update messages can be sent to the connection. + //! @return true if update messages can be sent + virtual bool CanSendUpdates() const = 0; + + //! Sets the state of connection whether update messages can be sent or not. + //! @param canSendUpdates the state value + virtual void SetCanSendUpdates(bool canSendUpdates) = 0; }; } diff --git a/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.h b/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.h index 02b045e63f..7ea62b15fd 100644 --- a/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.h +++ b/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.h @@ -34,10 +34,10 @@ namespace Multiplayer AzNetworking::IConnection* GetConnection() const override; EntityReplicationManager& GetReplicationManager() override; void Update(AZ::TimeMs serverGameTimeMs) override; + bool CanSendUpdates() const override; + void SetCanSendUpdates(bool canSendUpdates) override; //! @} - bool CanSendUpdates(); - NetworkEntityHandle GetPrimaryPlayerEntity(); const NetworkEntityHandle& GetPrimaryPlayerEntity() const; @@ -51,7 +51,7 @@ namespace Multiplayer EntityStopEvent::Handler m_controlledEntityRemovedHandler; EntityMigrationEvent::Handler m_controlledEntityMigrationHandler; AzNetworking::IConnection* m_connection = nullptr; - bool m_canSendUpdates = true; + bool m_canSendUpdates = false; }; } diff --git a/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.inl b/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.inl index 07bfb51536..0a4215a363 100644 --- a/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.inl +++ b/Gems/Multiplayer/Code/Source/ConnectionData/ServerToClientConnectionData.inl @@ -12,11 +12,17 @@ namespace Multiplayer { - inline bool ServerToClientConnectionData::CanSendUpdates() + inline bool ServerToClientConnectionData::CanSendUpdates() const { return m_canSendUpdates; } + inline void ServerToClientConnectionData::SetCanSendUpdates(bool canSendUpdates) + { + m_canSendUpdates = canSendUpdates; + } + + inline NetworkEntityHandle ServerToClientConnectionData::GetPrimaryPlayerEntity() { return m_controlledEntity; diff --git a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp index 2756bb649a..03c661ab03 100644 --- a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp +++ b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.cpp @@ -384,6 +384,19 @@ namespace Multiplayer return false; } + bool MultiplayerSystemComponent::HandleRequest( AzNetworking::IConnection* connection, + [[maybe_unused]] const AzNetworking::IPacketHeader& packetHeader, MultiplayerPackets::ReadyForEntityUpdates& packet) + { + IConnectionData* connectionData = reinterpret_cast(connection->GetUserData()); + if (connectionData) + { + connectionData->SetCanSendUpdates(packet.GetReadyForEntityUpdates()); + return true; + } + + return false; + } + ConnectResult MultiplayerSystemComponent::ValidateConnect ( [[maybe_unused]] const IpAddress& remoteAddress, @@ -506,6 +519,15 @@ namespace Multiplayer handler.Connect(m_shutdownEvent); } + void MultiplayerSystemComponent::SendReadyForEntityUpdates(bool readyForEntityUpdates) + { + IConnectionSet& connectionSet = m_networkInterface->GetConnectionSet(); + connectionSet.VisitConnections([readyForEntityUpdates](IConnection& connection) + { + connection.SendReliablePacket(MultiplayerPackets::ReadyForEntityUpdates(readyForEntityUpdates)); + }); + } + const char* MultiplayerSystemComponent::GetComponentGemName(NetComponentId netComponentId) const { return GetMultiplayerComponentRegistry()->GetComponentGemName(netComponentId); diff --git a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.h b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.h index f8d56e0408..f25e530b61 100644 --- a/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.h +++ b/Gems/Multiplayer/Code/Source/MultiplayerSystemComponent.h @@ -71,6 +71,7 @@ namespace Multiplayer bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerPackets::ClientMigration& packet); bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerPackets::NotifyClientMigration& packet); bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerPackets::EntityMigration& packet); + bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerPackets::ReadyForEntityUpdates& packet); //! IConnectionListener interface //! @{ @@ -88,6 +89,7 @@ namespace Multiplayer void AddConnectionAcquiredHandler(ConnectionAcquiredEvent::Handler& handler) override; void AddSessionInitHandler(SessionInitEvent::Handler& handler) override; void AddSessionShutdownHandler(SessionShutdownEvent::Handler& handler) override; + void SendReadyForEntityUpdates(bool readyForEntityUpdates) override; const char* GetComponentGemName(NetComponentId netComponentId) const override; const char* GetComponentName(NetComponentId netComponentId) const override; const char* GetComponentPropertyName(NetComponentId netComponentId, PropertyIndex propertyIndex) const override; diff --git a/Gems/Multiplayer/Code/Source/MultiplayerTypes.h b/Gems/Multiplayer/Code/Source/MultiplayerTypes.h index ca3734e4f0..5c690958b5 100644 --- a/Gems/Multiplayer/Code/Source/MultiplayerTypes.h +++ b/Gems/Multiplayer/Code/Source/MultiplayerTypes.h @@ -73,6 +73,12 @@ namespace Multiplayer True }; + enum class AutoActivate : uint8_t + { + DoNotActivate, + Activate + }; + // This is just a placeholder // The level/prefab cooking will devise the actual solution for identifying a dynamically spawnable entity within a prefab struct PrefabEntityId diff --git a/Gems/Multiplayer/Code/Source/NetworkEntity/EntityReplication/EntityReplicationManager.cpp b/Gems/Multiplayer/Code/Source/NetworkEntity/EntityReplication/EntityReplicationManager.cpp index 938e3b2c23..74bdcd5cf0 100644 --- a/Gems/Multiplayer/Code/Source/NetworkEntity/EntityReplication/EntityReplicationManager.cpp +++ b/Gems/Multiplayer/Code/Source/NetworkEntity/EntityReplication/EntityReplicationManager.cpp @@ -543,11 +543,8 @@ namespace Multiplayer // Create an entity if we don't have one if (createEntity) { - // @pereslav - //replicatorEntity = GetNetworkEntityManager()->CreateSingleEntityImmediateInternal(prefabEntityId, EntitySpawnType::Replicate, AutoActivate::DoNotActivate, netEntityId, localNetworkRole, AZ::Transform::Identity()); INetworkEntityManager::EntityList entityList = GetNetworkEntityManager()->CreateEntitiesImmediate( - prefabEntityId, netEntityId, localNetworkRole, - AZ::Transform::Identity()); + prefabEntityId, netEntityId, localNetworkRole, AutoActivate::DoNotActivate, AZ::Transform::Identity()); if (entityList.size() == 1) { diff --git a/Gems/Multiplayer/Code/Source/NetworkEntity/INetworkEntityManager.h b/Gems/Multiplayer/Code/Source/NetworkEntity/INetworkEntityManager.h index da6d9a4cbe..891a4606ea 100644 --- a/Gems/Multiplayer/Code/Source/NetworkEntity/INetworkEntityManager.h +++ b/Gems/Multiplayer/Code/Source/NetworkEntity/INetworkEntityManager.h @@ -60,7 +60,8 @@ namespace Multiplayer //! Creates new entities of the given archetype //! @param prefabEntryId the name of the spawnable to spawn virtual EntityList CreateEntitiesImmediate( - const PrefabEntityId& prefabEntryId, NetEntityId netEntityId, NetEntityRole netEntityRole, const AZ::Transform& transform) = 0; + const PrefabEntityId& prefabEntryId, NetEntityId netEntityId, NetEntityRole netEntityRole, AutoActivate autoActivate, + const AZ::Transform& transform) = 0; //! Returns an ConstEntityPtr for the provided entityId. //! @param netEntityId the netEntityId to get an ConstEntityPtr for diff --git a/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.cpp b/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.cpp index ca1b40ca9b..d1701bbb89 100644 --- a/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.cpp +++ b/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.cpp @@ -11,19 +11,19 @@ */ #include -#include -#include -#include + +#include #include #include +#include #include #include +#include #include #include -#include #include #include -#include +#include namespace Multiplayer { @@ -361,7 +361,7 @@ namespace Multiplayer INetworkEntityManager::EntityList NetworkEntityManager::CreateEntitiesImmediate( const PrefabEntityId& prefabEntryId, NetEntityId netEntityId, NetEntityRole netEntityRole, - const AZ::Transform& transform) + AutoActivate autoActivate, const AZ::Transform& transform) { INetworkEntityManager::EntityList returnList; @@ -407,6 +407,11 @@ namespace Multiplayer transformComponent->SetWorldTM(transform); } + if (autoActivate == AutoActivate::DoNotActivate) + { + clone->SetRuntimeActiveByDefault(false); + } + AzFramework::GameEntityContextRequestBus::Broadcast( &AzFramework::GameEntityContextRequestBus::Events::AddGameEntity, clone); @@ -462,7 +467,9 @@ namespace Multiplayer m_rootSpawnableAsset = netSpawnableAsset; - const auto agentType = AZ::Interface::Get()->GetAgentType(); + auto* multiplayer = AZ::Interface::Get(); + + const auto agentType = multiplayer->GetAgentType(); const bool spawnImmediately = (agentType == MultiplayerAgentType::ClientServer || agentType == MultiplayerAgentType::DedicatedServer); @@ -470,6 +477,12 @@ namespace Multiplayer { CreateEntitiesImmediate(*netSpawnable, NetEntityRole::Authority); } + else + { + // If we don't spawn net entities immediately (i.e. it is a client), + // tell the server/host it can start sending updates that will instantiate entities. + multiplayer->SendReadyForEntityUpdates(true); + } } void NetworkEntityManager::OnRootSpawnableReleased([[maybe_unused]] uint32_t generation) diff --git a/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.h b/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.h index 46f59f3762..142730188b 100644 --- a/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.h +++ b/Gems/Multiplayer/Code/Source/NetworkEntity/NetworkEntityManager.h @@ -50,7 +50,7 @@ namespace Multiplayer EntityList CreateEntitiesImmediate( const PrefabEntityId& prefabEntryId, NetEntityId netEntityId, NetEntityRole netEntityRole, - const AZ::Transform& transform) override; + AutoActivate autoActivate, const AZ::Transform& transform) override; uint32_t GetEntityCount() const override; NetworkEntityHandle AddEntityToEntityMap(NetEntityId netEntityId, AZ::Entity* entity) override; diff --git a/Gems/NvCloth/Code/Source/Components/EditorClothComponent.cpp b/Gems/NvCloth/Code/Source/Components/EditorClothComponent.cpp index 8d9731c9e6..4705a9f2c2 100644 --- a/Gems/NvCloth/Code/Source/Components/EditorClothComponent.cpp +++ b/Gems/NvCloth/Code/Source/Components/EditorClothComponent.cpp @@ -49,8 +49,8 @@ namespace NvCloth "Cloth", "The mesh node behaves like a piece of cloth.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Cloth.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Cloth.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Cloth.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Cloth.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/lumberyard/latest/userguide/component-cloth.html") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/PhysX/Code/Editor/ColliderComponentMode.cpp b/Gems/PhysX/Code/Editor/ColliderComponentMode.cpp index cab4612402..9aece90d90 100644 --- a/Gems/PhysX/Code/Editor/ColliderComponentMode.cpp +++ b/Gems/PhysX/Code/Editor/ColliderComponentMode.cpp @@ -223,7 +223,7 @@ namespace PhysX AzToolsFramework::ViewportUi::ViewportUiRequestBus::EventResult( buttonId, AzToolsFramework::ViewportUi::DefaultViewportId, &AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::CreateClusterButton, clusterId, - AZStd::string::format("Editor/Icons/PhysX/%s.svg", iconName)); + AZStd::string::format("Icons/PhysX/%s.svg", iconName)); return buttonId; } diff --git a/Gems/PhysX/Code/Source/EditorColliderComponent.cpp b/Gems/PhysX/Code/Source/EditorColliderComponent.cpp index eb4235766c..e1ea3addec 100644 --- a/Gems/PhysX/Code/Source/EditorColliderComponent.cpp +++ b/Gems/PhysX/Code/Source/EditorColliderComponent.cpp @@ -189,8 +189,8 @@ namespace PhysX "PhysX Collider", "PhysX shape collider") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXCollider.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXCollider.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXCollider.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXCollider.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/component/physx/collider") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/PhysX/Code/Source/EditorForceRegionComponent.cpp b/Gems/PhysX/Code/Source/EditorForceRegionComponent.cpp index b4b730538d..770200cda0 100644 --- a/Gems/PhysX/Code/Source/EditorForceRegionComponent.cpp +++ b/Gems/PhysX/Code/Source/EditorForceRegionComponent.cpp @@ -173,8 +173,8 @@ namespace PhysX "PhysX Force Region", "The force region component is used to apply a physical force on objects within the region") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/ForceRegion.png") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/ForceRegion.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/ForceRegion.png") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/ForceRegion.png") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/console/lumberyard/physx/force-region") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/PhysX/Code/Source/EditorRigidBodyComponent.cpp b/Gems/PhysX/Code/Source/EditorRigidBodyComponent.cpp index 5445f7fc69..fb663dd9a4 100644 --- a/Gems/PhysX/Code/Source/EditorRigidBodyComponent.cpp +++ b/Gems/PhysX/Code/Source/EditorRigidBodyComponent.cpp @@ -307,8 +307,8 @@ namespace PhysX "PhysX Rigid Body", "The entity behaves as a movable rigid object in PhysX.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXRigidBody.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXRigidBody.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXRigidBody.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXRigidBody.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.aws.amazon.com/console/lumberyard/components/physx/rigid-body") diff --git a/Gems/PhysX/Code/Source/EditorShapeColliderComponent.cpp b/Gems/PhysX/Code/Source/EditorShapeColliderComponent.cpp index c77e1ad1b2..aa1c945fa3 100644 --- a/Gems/PhysX/Code/Source/EditorShapeColliderComponent.cpp +++ b/Gems/PhysX/Code/Source/EditorShapeColliderComponent.cpp @@ -83,8 +83,8 @@ namespace PhysX "PhysX Shape Collider", "Creates geometry in the PhysX simulation based on an attached shape component") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXCollider.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXCollider.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXCollider.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXCollider.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(AZ::Edit::UIHandlers::Default, &EditorShapeColliderComponent::m_colliderConfig, diff --git a/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterControllerComponent.cpp b/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterControllerComponent.cpp index 9a85274910..e1c730b203 100644 --- a/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterControllerComponent.cpp +++ b/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterControllerComponent.cpp @@ -101,8 +101,8 @@ namespace PhysX "PhysX Character Controller", "PhysX Character Controller") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXCharacter.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXCharacter.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXCharacter.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXCharacter.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(AZ::Edit::UIHandlers::Default, &EditorCharacterControllerComponent::m_configuration, "Configuration", "Configuration for the character controller") diff --git a/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterGameplayComponent.cpp b/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterGameplayComponent.cpp index c9dcbe4757..03ff0e0aea 100644 --- a/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterGameplayComponent.cpp +++ b/Gems/PhysX/Code/Source/PhysXCharacters/Components/EditorCharacterGameplayComponent.cpp @@ -49,8 +49,8 @@ namespace PhysX "PhysX Character Gameplay", "PhysX Character Gameplay") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXCharacter.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXCharacter.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXCharacter.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXCharacter.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->DataElement(AZ::Edit::UIHandlers::Default, &EditorCharacterGameplayComponent::m_gameplayConfig, "Gameplay Configuration", "Gameplay Configuration") diff --git a/Gems/PhysX/Code/Source/PhysXCharacters/Components/RagdollComponent.cpp b/Gems/PhysX/Code/Source/PhysXCharacters/Components/RagdollComponent.cpp index d120e3d6b0..85060445fc 100644 --- a/Gems/PhysX/Code/Source/PhysXCharacters/Components/RagdollComponent.cpp +++ b/Gems/PhysX/Code/Source/PhysXCharacters/Components/RagdollComponent.cpp @@ -91,8 +91,8 @@ namespace PhysX "PhysX Ragdoll", "Provides simulation of characters in PhysX.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "PhysX") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/PhysXRagdoll.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/PhysXRagdoll.svg") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/PhysXRagdoll.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/PhysXRagdoll.svg") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->DataElement(AZ::Edit::UIHandlers::Default, &RagdollComponent::m_positionIterations, "Position Iteration Count", diff --git a/Gems/PhysX/Code/Source/Pipeline/HeightFieldAssetHandler.cpp b/Gems/PhysX/Code/Source/Pipeline/HeightFieldAssetHandler.cpp index e7c8d87998..173c35140d 100644 --- a/Gems/PhysX/Code/Source/Pipeline/HeightFieldAssetHandler.cpp +++ b/Gems/PhysX/Code/Source/Pipeline/HeightFieldAssetHandler.cpp @@ -81,7 +81,7 @@ namespace PhysX const char* HeightFieldAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/ColliderMesh.svg"; + return "Icons/Components/ColliderMesh.svg"; } const char* HeightFieldAssetHandler::GetGroup() const diff --git a/Gems/PhysX/Code/Source/Pipeline/MeshAssetHandler.cpp b/Gems/PhysX/Code/Source/Pipeline/MeshAssetHandler.cpp index 3315e56935..3987936b8c 100644 --- a/Gems/PhysX/Code/Source/Pipeline/MeshAssetHandler.cpp +++ b/Gems/PhysX/Code/Source/Pipeline/MeshAssetHandler.cpp @@ -77,7 +77,7 @@ namespace PhysX const char* MeshAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/Components/ColliderMesh.svg"; + return "Icons/Components/ColliderMesh.svg"; } const char* MeshAssetHandler::GetGroup() const diff --git a/Gems/SceneProcessing/Code/Source/SceneBuilder/SceneBuilderWorker.cpp b/Gems/SceneProcessing/Code/Source/SceneBuilder/SceneBuilderWorker.cpp index fa562a2986..bf12e91ef9 100644 --- a/Gems/SceneProcessing/Code/Source/SceneBuilder/SceneBuilderWorker.cpp +++ b/Gems/SceneProcessing/Code/Source/SceneBuilder/SceneBuilderWorker.cpp @@ -98,7 +98,7 @@ namespace SceneBuilder descriptor.m_jobKey = "Scene compilation"; descriptor.SetPlatformIdentifier(enabledPlatform.m_identifier.c_str()); descriptor.m_failOnError = true; - descriptor.m_priority = 11; // more important than static mesh files, since these may control logic (actors and motions specifically) + descriptor.m_priority = 11; // these may control logic (actors and motions specifically) descriptor.m_additionalFingerprintInfo = GetFingerprint(); AZ::SceneAPI::SceneBuilderDependencyBus::Broadcast(&AZ::SceneAPI::SceneBuilderDependencyRequests::ReportJobDependencies, @@ -107,11 +107,17 @@ namespace SceneBuilder response.m_createJobOutputs.push_back(descriptor); } - // Adding corresponding material file as a source file dependency + // Adding corresponding _wrinklemask folder as a source file dependency + // This enables morph target assets to get references to the wrinkle masks + // in the MorphTargetExporter, so they can be automatically applied at runtime AssetBuilderSDK::SourceFileDependency sourceFileDependencyInfo; AZStd::string relPath = request.m_sourceFile.c_str(); - AzFramework::StringFunc::Path::ReplaceExtension(relPath, "mtl"); + AzFramework::StringFunc::Path::StripExtension(relPath); + relPath += "_wrinklemasks"; + AzFramework::StringFunc::Path::AppendSeparator(relPath); + relPath += "*_wrinklemask.*"; sourceFileDependencyInfo.m_sourceFileDependencyPath = relPath; + sourceFileDependencyInfo.m_sourceDependencyType = AssetBuilderSDK::SourceFileDependency::SourceFileDependencyType::Wildcards; response.m_sourceFileDependencyList.push_back(sourceFileDependencyInfo); response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success; diff --git a/Gems/ScriptCanvas/Code/Editor/Components/EditorScriptCanvasComponent.cpp b/Gems/ScriptCanvas/Code/Editor/Components/EditorScriptCanvasComponent.cpp index ba82f58889..8a06848709 100644 --- a/Gems/ScriptCanvas/Code/Editor/Components/EditorScriptCanvasComponent.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Components/EditorScriptCanvasComponent.cpp @@ -99,8 +99,8 @@ namespace ScriptCanvasEditor editContext->Class("Script Canvas", "The Script Canvas component allows you to add a Script Canvas asset to a component, and have it execute on the specified entity.") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Scripting") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/ScriptCanvas.svg") - ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/ScriptCanvas.svg") + ->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/ScriptCanvas/Viewport/ScriptCanvas.png") ->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::PrimaryAssetType, ScriptCanvasAssetHandler::GetAssetTypeStatic()) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c)) diff --git a/Gems/ScriptCanvas/Code/Editor/Components/IconComponent.cpp b/Gems/ScriptCanvas/Code/Editor/Components/IconComponent.cpp index f135437134..12df5e38a9 100644 --- a/Gems/ScriptCanvas/Code/Editor/Components/IconComponent.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Components/IconComponent.cpp @@ -25,7 +25,7 @@ namespace ScriptCanvasEditor { AZStd::string IconComponent::LookupClassIcon(const AZ::Uuid& classId) { - AZStd::string iconPath = "Editor/Icons/ScriptCanvas/Placeholder.png"; + AZStd::string iconPath = "Icons/ScriptCanvas/Placeholder.png"; AZ::SerializeContext* serializeContext = nullptr; AZ::ComponentApplicationBus::BroadcastResult(serializeContext, &AZ::ComponentApplicationRequests::GetSerializeContext); diff --git a/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h b/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h index ded24e3250..fa09601042 100644 --- a/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h +++ b/Gems/ScriptCanvas/Code/Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h @@ -52,7 +52,7 @@ namespace ScriptCanvasEditor "Script Canvas Files (*.scriptcanvas)", "Script Canvas", "Script Canvas", - "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png", + "Icons/ScriptCanvas/Viewport/ScriptCanvas.png", AZ::Color(0.321f, 0.302f, 0.164f, 1.0f), true ) diff --git a/Gems/ScriptCanvas/Code/Editor/Model/LibraryDataModel.cpp b/Gems/ScriptCanvas/Code/Editor/Model/LibraryDataModel.cpp index 4b855dcf44..122ae19b51 100644 --- a/Gems/ScriptCanvas/Code/Editor/Model/LibraryDataModel.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Model/LibraryDataModel.cpp @@ -100,7 +100,7 @@ namespace ScriptCanvasEditor } else { - QString defaultIcon = QStringLiteral("Editor/Icons/ScriptCanvas/Libraries/All.png"); + QString defaultIcon = QStringLiteral("Icons/ScriptCanvas/Libraries/All.png"); return QVariant(QIcon(defaultIcon)); } diff --git a/Gems/ScriptCanvas/Code/Editor/Model/UnitTestBrowserFilterModel.cpp b/Gems/ScriptCanvas/Code/Editor/Model/UnitTestBrowserFilterModel.cpp index a8c21fa4fa..665c81fa57 100644 --- a/Gems/ScriptCanvas/Code/Editor/Model/UnitTestBrowserFilterModel.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Model/UnitTestBrowserFilterModel.cpp @@ -23,7 +23,7 @@ namespace ScriptCanvasEditor UnitTestBrowserFilterModel::UnitTestBrowserFilterModel(QObject* parent) : AssetBrowserFilterModel(parent) - , m_iconRunning("Editor/Icons/AssetBrowser/in_progress.gif") + , m_iconRunning("Icons/AssetBrowser/in_progress.gif") , m_iconFailedToCompile (":/ScriptCanvasEditorResources/Resources/warning_symbol.png") , m_iconFailedToCompileOld (":/ScriptCanvasEditorResources/Resources/warning_symbol_grey.png") , m_iconPassed (":/ScriptCanvasEditorResources/Resources/valid_icon.png") diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/EditorLibrary.cpp b/Gems/ScriptCanvas/Code/Editor/Nodes/EditorLibrary.cpp index 08ebd6ec2b..7d6f53806f 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/EditorLibrary.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/EditorLibrary.cpp @@ -35,7 +35,7 @@ namespace ScriptCanvasEditor { editContext->Class("Editor", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/All.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/All.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Editor/Nodes/ScriptCanvasAssetNode.cpp b/Gems/ScriptCanvas/Code/Editor/Nodes/ScriptCanvasAssetNode.cpp index 48ca0085f0..6cae3ecc1a 100644 --- a/Gems/ScriptCanvas/Code/Editor/Nodes/ScriptCanvasAssetNode.cpp +++ b/Gems/ScriptCanvas/Code/Editor/Nodes/ScriptCanvasAssetNode.cpp @@ -50,7 +50,7 @@ namespace ScriptCanvasEditor { editContext->Class("ScriptCanvas Asset", "Script Canvas Asset Node which contains a reference to another ScriptCanvas graph") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::List) ; } diff --git a/Gems/ScriptCanvas/Code/Editor/SystemComponent.cpp b/Gems/ScriptCanvas/Code/Editor/SystemComponent.cpp index 7052ab488f..7d9cb176a3 100644 --- a/Gems/ScriptCanvas/Code/Editor/SystemComponent.cpp +++ b/Gems/ScriptCanvas/Code/Editor/SystemComponent.cpp @@ -320,7 +320,7 @@ namespace ScriptCanvasEditor { if (AZStd::wildcard_match("*.scriptcanvas", fullSourceFileName)) { - return AzToolsFramework::AssetBrowser::SourceFileDetails("Editor/Icons/AssetBrowser/ScriptCanvas_16.png"); + return AzToolsFramework::AssetBrowser::SourceFileDetails("Icons/AssetBrowser/ScriptCanvas_16.png"); } // not one of our types. diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index ee4d6d9371..3bfa83b9e7 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -448,7 +448,7 @@ namespace ScriptCanvasEditor GraphCanvas::AssetEditorAutomationRequestBus::Handler::BusConnect(ScriptCanvasEditor::AssetEditorId); AZStd::array unresolvedPath; - AZ::IO::FileIOBase::GetInstance()->ResolvePath("@assets@/editor/translation/scriptcanvas_en_us.qm", unresolvedPath.data(), unresolvedPath.size()); + AZ::IO::FileIOBase::GetInstance()->ResolvePath("@assets@/translation/scriptcanvas_en_us.qm", unresolvedPath.data(), unresolvedPath.size()); QString translationFilePath(unresolvedPath.data()); if ( m_translator.load(QLocale::Language::English, translationFilePath) ) diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/RuntimeFunctionAssetHandler.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/RuntimeFunctionAssetHandler.cpp index 516fa838c8..10bcadc35a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/RuntimeFunctionAssetHandler.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/RuntimeFunctionAssetHandler.cpp @@ -59,7 +59,7 @@ namespace ScriptCanvas const char* SubgraphInterfaceAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png"; + return "Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png"; } AZ::Uuid SubgraphInterfaceAssetHandler::GetComponentTypeId() const diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/ScriptCanvasFunctionAsset.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/ScriptCanvasFunctionAsset.h index 48a0b7374b..5fd9f41023 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/ScriptCanvasFunctionAsset.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/Functions/ScriptCanvasFunctionAsset.h @@ -46,7 +46,7 @@ namespace ScriptCanvasEditor "Script Canvas Function Files (*.scriptcanvas_fn)", "Script Canvas Function", "Script Canvas Function", - "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png", + "Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png", AZ::Color(0.192f, 0.149f, 0.392f, 1.0f), true ) diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAsset.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAsset.h index 0bc0daecde..de799c329f 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAsset.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAsset.h @@ -45,7 +45,7 @@ namespace ScriptCanvas "Script Canvas Files (*.scriptcanvas_compiled)", "Script Canvas Runtime", "Script Canvas Runtime", - "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png", + "Icons/ScriptCanvas/Viewport/ScriptCanvas.png", AZ::Color(1.0f,0.0f,0.0f,1.0f), false ) @@ -169,7 +169,7 @@ namespace ScriptCanvas "Script Canvas Compiled Function Interfaces (*.scriptcanvas_fn_compiled)", "Script Canvas Function Interface", "Script Canvas Function Interface", - "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png", + "Icons/ScriptCanvas/Viewport/ScriptCanvas_Function.png", AZ::Color(1.0f,0.0f,0.0f,1.0f), false ) diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAssetHandler.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAssetHandler.cpp index 2106c26db5..f06f0fe185 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAssetHandler.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Asset/RuntimeAssetHandler.cpp @@ -58,7 +58,7 @@ namespace ScriptCanvas const char* RuntimeAssetHandler::GetBrowserIcon() const { - return "Editor/Icons/ScriptCanvas/Viewport/ScriptCanvas.png"; + return "Icons/ScriptCanvas/Viewport/ScriptCanvas.png"; } AZ::Uuid RuntimeAssetHandler::GetComponentTypeId() const diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/CodeGen/NodeableCodegen.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/CodeGen/NodeableCodegen.h index 49ce1cdaa0..bfc85c8256 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/CodeGen/NodeableCodegen.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/CodeGen/NodeableCodegen.h @@ -40,7 +40,7 @@ * Example: * NodeDefinition(HelloWorld, "Hello World", "My HelloWorld Node.") * NodeDefinition(HelloWorld, "Hello World", "My HelloWorld Node.", -* NodeTags::Icon("Editor/Icons/ScriptCanvas/HelloWorld.png") +* NodeTags::Icon("Icons/ScriptCanvas/HelloWorld.png") * NodeTags::Version(3, VersionConverter)) * * ----------------------------------------------------------------------------------------------------------- */ diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml index e7b8476ddd..35f2cee0b6 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodeables/BaseTimer.ScriptCanvasNodeable.xml @@ -6,7 +6,7 @@ PreferredClassName="BaseTimer" Uuid="{64814C82-DAE5-9B04-B375-5E47D51ECD26}" Base="ScriptCanvas::Nodeable" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Utilities" Version="0" EntryPoint="true" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml index 695bb76927..d1e8c72b9c 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Internal/Nodes/BaseTimerNode.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="BaseTimerNode" Uuid="{BAD6C904-6078-49E8-B461-CA4410B785A4}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Utilities" Version="0" GeneratePropertyFriend="True" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp index b1ba26fd29..1e6466ae2f 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Comparison.cpp @@ -35,7 +35,7 @@ namespace ScriptCanvas editContext->Class("Comparisons", "Provides mathematical equality operations")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> Attribute(AZ::Edit::Attributes::Category, "Math/Comparisons")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Logic.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Logic.png")-> Attribute(AZ::Edit::Attributes::CategoryStyle, ".comparison")-> Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "ComparisonNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h index 0e63d07c5b..132fa8de36 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/EqualTo.h @@ -40,7 +40,7 @@ namespace ScriptCanvas { editContext->Class("Equal To (==)", "Checks if Value A and Value B are equal to each other") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h index e7e23415a3..a72ad55236 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Greater.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Greater Than (>)", "Checks if Value A is greater than Value B") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h index 2c08e10712..6151196937 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/GreaterEqual.h @@ -40,7 +40,7 @@ namespace ScriptCanvas { editContext->Class("Greater Than or Equal To (>=)", "Checks if Value A is greater than or equal to Value B") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h index fcbacec9f6..a99b578c91 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/Less.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Less Than (<)", "Checks if Value A is less than Value B") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h index fff59862b8..aac159d1d4 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/LessEqual.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Less Than or Equal To (<=)", "Checks if Value A is less than or equal to Value B") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h index 19bbffb901..95c6b97007 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Comparison/NotEqualTo.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Not Equal To (!=)", "Checks if Value A is not equal to Value B") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml index 66903964ba..4dba14b36c 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/AzEventHandler.ScriptCanvasGrammar.xml @@ -5,7 +5,7 @@ PreferredClassName="AZ Event Handler" Uuid="{38B808C5-152C-4643-A08C-463EBED55E19}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/AzEvent.png" + Icon="Icons/ScriptCanvas/AzEvent.png" Version="0" EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All" GraphEntryPoint="True" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp index 01984d01f1..19c0260d7e 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/CoreNodes.cpp @@ -70,7 +70,7 @@ namespace ScriptCanvas { editContext->Class("Core", "")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Core.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Core.png")-> Attribute(AZ::Edit::Attributes::CategoryStyle, ".time")-> Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "TimeNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml index b3179ed2e4..94f06b1a4e 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/EBusEventHandler.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Event Handler" Uuid="{33E12915-EFCA-4AA7-A188-D694DAD58980}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Bus.png" + Icon="Icons/ScriptCanvas/Bus.png" Version="5" VersionConverter="ScriptCanvas::VersionConverters::EBusEventHandlerVersionConverter" EventHandler="SerializeContextOnWriteEndHandler<EBusEventHandler>" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Error.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Error.cpp index 09e2143e12..abb0f6ddc1 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Error.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Error.cpp @@ -77,7 +77,7 @@ namespace ScriptCanvas editContext->Class("Error", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Utilities/Debug") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Error.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Error.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp index 01646cd8ba..859fbfb27b 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ErrorHandler.cpp @@ -68,7 +68,7 @@ namespace ScriptCanvas editContext->Class("Error Handler", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::Category, "Utilities/Debug") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/ErrorHandler.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/ErrorHandler.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml index ac841f6685..85642a25b8 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ExtractProperty.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Extract Properties" Uuid="{D4C9DA8E-838B-41C6-B870-C75294C323DC}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Utilities" Version="1" VersionConverter="VersionConverter" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml index e1a660f1a9..2413edc3f5 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ForEach.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="For Each" Uuid="{31823035-A3FF-4B8D-A3A6-819519478B7C}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Containers" Version="2" VersionConverter="ScriptCanvas::VersionConverters::ForEachVersionConverter" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml index 6276522331..d7e999d447 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionCallNode.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Function Call Node" Uuid="{ECFDD30E-A16D-4435-97B7-B2A4DF3C543A}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Bus.png" + Icon="Icons/ScriptCanvas/Bus.png" Version="Version::Current" VersionConverter="ScriptCanvas::VersionConverters::FunctionNodeVersionConverter" DynamicSlotOrdering="True" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml index 8baf5b3088..2197b9c668 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/FunctionDefinitionNode.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Function Definition" Uuid="{4EE28D9F-67FB-4E61-B777-5DC5B059710F}" Base="ScriptCanvas::Nodes::Core::Internal::Nodeling" - Icon="Editor/Icons/ScriptCanvas/Start.png" + Icon="Icons/ScriptCanvas/Start.png" Category="Core" Version="1" EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml index 2b00445496..c4afc1b4fd 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/GetVariable.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Get Variable" Uuid="{8225BE35-4C45-4A32-94D9-3DE114F6F5AF}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Version="0" GeneratePropertyFriend="True" Description="Node for referencing a property within the graph"> diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml index c4e628d89f..e3c871b6fc 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Nodeling.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Nodeling" Uuid="{4413EEA0-8D81-4D61-A1E1-3C1A437F3643}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Start.png" + Icon="Icons/ScriptCanvas/Start.png" Category="Core" Version="1" GeneratePropertyFriend="True" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml index 50874f161c..485518fe41 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/ReceiveScriptEvent.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Receive Script Event" Uuid="{76CF9938-4A7E-4CDA-8DF3-77C10239D99C}" Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase" - Icon="Editor/Icons/ScriptCanvas/Bus.png" + Icon="Icons/ScriptCanvas/Bus.png" Version="4" VersionConverter="ScriptCanvas::VersionConverters::ReceiveScriptEventVersionConverter" EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml index d9db8d3c91..dbe9c28c54 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Repeater.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Repeater" Uuid="{0A38EDCA-0571-48F0-9199-F6168C1EAAF0}" Base="ScriptCanvas::Nodes::Internal::BaseTimerNode" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Deprecated="This node is deprecated" DeprecationUUID="{AB587027-2270-4CA6-242F-6069C6D9BBB6}" Category="Utilities" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml index 2bf9f2cf40..14634ff959 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/RepeaterNodeable.ScriptCanvasNodeable.xml @@ -6,7 +6,7 @@ PreferredClassName="Repeater" Uuid="{4FBB5021-F3C8-E743-BF2E-BC6E5D57D48E}" Base="Nodeables::Time::BaseTimer" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Nodeables" GeneratePropertyFriend="True" Namespace="ScriptCanvas" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml index 18064698b2..5141ac9b89 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SendScriptEvent.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Send Script Event" Uuid="{64A97CC3-2BEA-4B47-809B-6C7DA34FD00F}" Base="ScriptCanvas::Nodes::Core::Internal::ScriptEventBase" - Icon="Editor/Icons/ScriptCanvas/Bus.png" + Icon="Icons/ScriptCanvas/Bus.png" Version="4" DynamicSlotOrdering="True" EditAttributes="AZ::Script::Attributes::ExcludeFrom@AZ::Script::Attributes::ExcludeFlags::All" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml index 7581022cde..a513118cfe 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/SetVariable.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Set Variable" Uuid="{5EFD2942-AFF9-4137-939C-023AEAA72EB0}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Version="1" GeneratePropertyFriend="True" Description="Node for setting a property within the graph"> diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml index db30b4c1cf..033383fbb1 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/Start.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="On Graph Start" Uuid="{F200B22A-5903-483A-BF63-5241BC03632B}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Start.png" + Icon="Icons/ScriptCanvas/Start.png" Category="Timing" Version="2" GraphEntryPoint="True" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h index c215fc8d94..045509e7a2 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Core/String.h @@ -40,7 +40,7 @@ namespace ScriptCanvas { editContext->Class("String", "Holds a string value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/String.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/String.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp index d4f90ebc4e..9afa0e88ba 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/Entity.cpp @@ -61,7 +61,7 @@ namespace ScriptCanvas { editContext->Class("Entity", "")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Entity.png") + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Entity.png") ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h index ac424e1300..dcacc0d656 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityIDNode.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("EntityID", "Stores a reference to an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/EntityID.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/EntityID.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h index eed758470f..c5ac3a6fab 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Entity/EntityRef.h @@ -42,7 +42,7 @@ namespace ScriptCanvas // And is unmodifiable(essentially an external constant). As such, we hide it from the node palette. editContext->Class("EntityID", "Stores a reference to an entity") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/EntityRef.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/EntityRef.png") ->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::List) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/And.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/And.h index 52d985cfb5..ce96f254d0 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/And.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/And.h @@ -40,7 +40,7 @@ namespace ScriptCanvas { editContext->Class("And", "An execution flow gate that signals True if both Boolean A and Boolean B are True, otherwise signals False") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h index ef7d3ff0c7..2b9a80435e 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Boolean.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("Boolean", "A boolean value (true/false)") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Boolean.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Boolean.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml index 49671fc439..53d8623fe8 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Gate.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="If" Uuid="{F19CC10A-02FD-4E75-ADAA-9CFBD8A4E2F8}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Print.png" + Icon="Icons/ScriptCanvas/Print.png" Version="0" GeneratePropertyFriend="True" Description="An execution flow gate that continues True if the Condition is True, otherwise continues False"> diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml index e019b69ea8..a9c6369fc1 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/IsNull.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Is Null" Uuid="{760CE936-7059-42A3-A177-530A662E4ECF}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/IsNull.png" + Icon="Icons/ScriptCanvas/IsNull.png" Version="0" GeneratePropertyFriend="True" Description="Evaluates reference types for null."> diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp index 8f7f70d103..bc263c92fa 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Logic.cpp @@ -34,7 +34,7 @@ namespace ScriptCanvas { editContext->Class("Logic", "")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Logic.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Logic.png")-> Attribute(AZ::Edit::Attributes::CategoryStyle, ".logic")-> Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "LogicNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h index b72c036d87..117956f311 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Not.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Not", "An execution flow gate that continues True if the Boolean is False, otherwise continues False if the Boolean is True") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml index a1b6d21906..63bb463d89 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Once.ScriptCanvasGrammar.xml @@ -6,7 +6,7 @@ PreferredClassName="Once" Uuid="{0E37D3CA-2862-4667-BFDB-7393DD48241B}" Base="ScriptCanvas::Node" - Icon="Editor/Icons/ScriptCanvas/Print.png" + Icon="Icons/ScriptCanvas/Print.png" Version="0" GeneratePropertyFriend="True" Description="An execution flow gate that will only activate once. The gate will reopen if it receives a Reset pulse."> diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Or.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Or.h index 20ceed2946..5eb2681585 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Or.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Logic/Or.h @@ -38,7 +38,7 @@ namespace ScriptCanvas { editContext->Class("Or", "An execution flow gate that continues True if either Boolean A or Boolean B are True, otherwise continues False") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h index 2016117d6e..28b957fbfc 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/AABBNode.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("AABB", "An axis-aligned bounding box value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/AABB.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/AABB.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h index df8b0e755c..6d950a0d5c 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/CRCNode.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("CRC", "A CRC value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/CRC.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/CRC.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h index 02f0c3ba93..d1e1e539c7 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/ColorNode.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("Color", "A four channel color value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Color.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Color.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Divide.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Divide.h index 6ea59162fb..e8ba617822 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Divide.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Divide.h @@ -43,7 +43,7 @@ namespace ScriptCanvas ->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "DeprecatedNodeTitlePalette") ->Attribute(AZ::Script::Attributes::Deprecated, true) ->Attribute(AZ::Edit::Attributes::Category, "Math/Number/Deprecated") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp index cf542ba90d..be32f73b5d 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Math.cpp @@ -32,7 +32,7 @@ namespace ScriptCanvas { editContext->Class("Math", "")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Math.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Math.png")-> Attribute(AZ::Edit::Attributes::CategoryStyle, ".math")-> Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "MathNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h index 5a1d7f2818..852443c953 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix3x3Node.h @@ -42,7 +42,7 @@ namespace ScriptCanvas { editContext->Class("Matrix3x3", "A 3x3 matrix value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Matrix3x3.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Matrix3x3.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h index 476c022c55..ae2cbba6e9 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Matrix4x4Node.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("Matrix4x4", "A 4x4 matrix value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Matrix4x4.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Matrix4x4.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Multiply.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Multiply.h index 14fb97dd4d..2cb4690217 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Multiply.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Multiply.h @@ -42,7 +42,7 @@ namespace ScriptCanvas ->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "DeprecatedNodeTitlePalette") ->Attribute(AZ::Script::Attributes::Deprecated, true) ->Attribute(AZ::Edit::Attributes::Category, "Math/Number/Deprecated") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h index bd3a7f390e..e706002d1d 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Number.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Number", "A numeric value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Number.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Number.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h index 2755d40fbd..1de4ee2bcb 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/OBBNode.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("OBB", "An oriented bounding box value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/OBB.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/OBB.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h index 72c24a11f4..a3fbc589ad 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/PlaneNode.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("Plane", "A plane value according to the equation: Ax + By + Cz + D = 0") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Plane.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Plane.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h index 8e977dcbb2..cfa30b996a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Rotation.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Quaternion", "imaginary(X, Y, Z), real W") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Quaternion.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Quaternion.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Subtract.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Subtract.h index b744e5a309..37d31ce083 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Subtract.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Subtract.h @@ -42,7 +42,7 @@ namespace ScriptCanvas ->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "DeprecatedNodeTitlePalette") ->Attribute(AZ::Script::Attributes::Deprecated, true) ->Attribute(AZ::Edit::Attributes::Category, "Math/Number/Deprecated") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Placeholder.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Placeholder.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Sum.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Sum.h index 5ebfe5536f..cf469153ec 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Sum.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Sum.h @@ -44,7 +44,7 @@ namespace ScriptCanvas ->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "DeprecatedNodeTitlePalette") ->Attribute(AZ::Script::Attributes::Deprecated, true) ->Attribute(AZ::Edit::Attributes::Category, "Math/Number/Deprecated") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Add.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Add.png") ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ; } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h index cdbda85846..3d27aa88dd 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Transform.h @@ -39,7 +39,7 @@ namespace ScriptCanvas { editContext->Class("Transform", "A 3D transform value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Transform.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Transform.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h index 3b0682fc46..f527dae2ad 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Math/Vector.h @@ -41,7 +41,7 @@ namespace ScriptCanvas { editContext->Class("Vector2", "A 2D vector value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Vector.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") ; } } @@ -70,7 +70,7 @@ namespace ScriptCanvas { editContext->Class("Vector3", "A 3D vector value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Vector.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") ; } } @@ -99,7 +99,7 @@ namespace ScriptCanvas { editContext->Class("Vector4", "A 4D vector value") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Vector.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Vector.png") ; } } diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operators.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operators.cpp index 6b4d93b4e8..4cc1ddfab0 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operators.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Operators/Operators.cpp @@ -33,7 +33,7 @@ namespace ScriptCanvas { editContext->Class("Operators", "")-> ClassElement(AZ::Edit::ClassElements::EditorData, "")-> - Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/Operators.png")-> + Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/Operators.png")-> Attribute(AZ::Edit::Attributes::CategoryStyle, ".operators")-> Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "OperatorsNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/String/String.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/String/String.cpp index 03a2564b5e..4eb7f15f85 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/String/String.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/String/String.cpp @@ -34,7 +34,7 @@ namespace ScriptCanvas { editContext->Class("String", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") - ->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/ScriptCanvas/Libraries/String.png") + ->Attribute(AZ::Edit::Attributes::Icon, "Icons/ScriptCanvas/Libraries/String.png") ->Attribute(AZ::Edit::Attributes::CategoryStyle, ".string") ->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "StringNodeTitlePalette") ; diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml index 0c813e05dc..0a6f032982 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/DurationNodeable.ScriptCanvasNodeable.xml @@ -5,7 +5,7 @@ QualifiedName="ScriptCanvas::Nodeables::Time::DurationNodeable" PreferredClassName="Duration" Base="ScriptCanvas::Nodeable" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Nodeables" GeneratePropertyFriend="True" Namespace="ScriptCanvas" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml index 4e51642483..16d0fb7f1a 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/HeartBeatNodeable.ScriptCanvasNodeable.xml @@ -5,7 +5,7 @@ QualifiedName="Nodeables::Time::HeartBeatNodeable" PreferredClassName="HeartBeat" Base="Nodeables::Time::BaseTimer" - Icon="Editor/Icons/ScriptCanvas/Placeholder.png" + Icon="Icons/ScriptCanvas/Placeholder.png" Category="Timing" GeneratePropertyFriend="True" Namespace="ScriptCanvas" diff --git a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/Time.cpp b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/Time.cpp index 393c1afa4b..145f07a0eb 100644 --- a/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/Time.cpp +++ b/Gems/ScriptCanvas/Code/Include/ScriptCanvas/Libraries/Time/Time.cpp @@ -36,7 +36,7 @@ namespace ScriptCanvas { editContext->Class