The CriticalAssetsCompiled event can be handled to detect when the
AssetProcessor has finished processing Critical Assets
Also with the new event, an audit has been performed over all the
locations where the AssetCatalogEventBus OnCatalogLoaded event was being
handle to make sure it was the proper event to use.
If the handler was actually examing the enumerating over the full
catalog or querying all assets within the catalog, then it was a proper
use.
For handlers that were interested in a particular asset it was not
Moreover added implementations of `OnCatalogAssetChanged` and
`OnCatalogAssetAdded` to the FileTagComponent and the MaterialViewportComponent.
Any applications which uses the AtomToolsApplication
class(MaterialEditor, AtomSampleViewerStandalone,
ShaderMangementConsole) now signals a "CriticalAssetsCompiled" lifecycle
event as well as loads the "assetcatalog.xml" if it exists.
The Launcher application signals the "CrticalAssetsCompiled" event and
reloads the "assetcatalog.xml" for the ${project}.GameLauncher and
${project}.ServerLauncher in Launcher.cpp
Finally the Editor signals the "CriticalAssetsCompiled" and reloads the
"assetcatalog.xml" in CryEdit.cpp
resolves#6093
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
This fixes issues with entities that are moved to another Prefab and have a parent that was also moved to the same Prefab. Entities that have their parent moved to another Prefab continue to work as is because a placeholder entity is always left behind. Entities that are moved to another Prefab but have a parent that's still in the original Prefab will currently not work correctly. This will be a addressed in a future commit.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Enable process and ap connection tests on linux
* Updated 'OpenProjectManager' to use new the ProcessLauncher argument type
* Add logic to double-escape escaped double quotes in arguments on windows platforms
* Updated argument for LaunchProjectManager to reflect new ProcessLauncher argument type
* Fixed unit test arguments for 'arg=value' condition
* Fix compile errors for BuilderManager and RHI.Edit\Utils.cpp
* PAL'ify the GetCommandLineParametersAsString() to handle windows specific behavior
Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Co-authored-by: byrcolin <byrcolin@amazon.com>
* Fix GetSurfacePoint exposure to BehaviorContext.
The previous way of exposing it made it unusable from ScriptCanvas, since the public API uses an "out" parameter. This introduces a private variation of the API that returns the value instead, so that it functions correctly in Script Canvas.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added descriptive comment.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed PR feedback.
Fixed comment spacing and renamed private methods to remove the need for the typecast.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Generic Cleanup
Removals:
* Unused cvars,member variables and defines
* Windows media center edition support routines
* CSystem - removed debug_GetCallStackRaw/GetRootWindowMessageHandler/
UnloadDLL/ShutdownModuleLibraries
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fix CryMessageBox return values in Windows build
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove named selection group and a few smaller unused functionalities
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove ObjectManager export functionality + 2 deprecated functions
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove object legacy freeze/hide support from ObjectManager
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove ObjectManager duplicate name dection, as well as object renaming
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove ObjectManager serialization and selection callbacks
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* ObjectManager - remove MoveObjects/HitTestObject/EndEditParams and related members/functions
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove a bunch of unused clone related functionality + misc
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* ObjectManager - misc removals
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* ObjectManager - more removals
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove unused object selection/retrieval in ObjectManager and LoadObjects in ObjectLoader
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* CBaseObject - remove unused material layers mask support
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* More CBaseObject cleanups.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* CBaseObject - remove SubObj functions and IMouseCreateCallback
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove unused procedural floor management, helper scale and tags.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* CBaseObject - remove more unused methods.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Removals in multiple places.
CBaseObject - unused `OBJTYPE_DUMMY` flag removed, member `IsSameClass`
CObjectArchive removed unused methods/members
CObjectManager removed unused `Update` method
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* More removals
IDisplayViewport - HitTestLine/GetGridStep/setHitcontext/
GetConstructionPlane
Unused Cry_Matrix44 template specializations.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* O3DE.exe Project-Centric "Open Editor" fix (#5852)
* The O3DE.exe Open Editor button now attempts to open the Editor in the
build directory of the project being opened.
If their is no Editor within the build directory of the Project, it uses
the Editor.exe in the current O3DE.exe executable directory if it exists
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Engine .gitignore now ignores the build directory if placed in the
AutomatedTesting project
Previously it was just ignoring a `[Bb]uild` directory if it was
directly within the engine root.
This change matches the behavior of the project templates.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Renamed the ProjectUtils GetEditorDirectory function to
GetEditorExecutablePath
Added a platform specific implementation for retrieving the path to the
Editor executable in the GetEditorExectuablePath function.
It first attempts to locate the Editor via checking the project build
directory for an Editor executable before falling back to checking the
binary directory of the currently running O3DE executable.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Correct the MacOS GetEditorExecutablePath to return the Editor path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Adding missing C++20 std::erase implementations (#5735)
There were already implementations for std::erase_if.
This adds the counterpart AZStd::erase versions
resolves#5734
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* More removals and refactors
`ShowMessage` and `CryMessageBox` return void now
Simplify code in `CSystem::WarningV`
Remove unused `CryGetTicksPerSec`
Remove unused WinBase functionality
Replace `nanosleep` call in WinBase with `std::this_thread::sleep_for`
Remove unused Win32Wrapper routines
Remove unused IFunctorBase.h and IEntityObjectListener.h
Fix VectorAndArray.cpp compilation
Use QMessageBox instead of CryMessageBox in the editor.
Remove empty ArchiveVars platform specific files
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fix test code.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove an unused function
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* CBaseObject and undo description removals.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* A bunch of removals
* Remove IRenderNode
* Remove editor's KDTree
* Remove StatObjBus, InstanceStatObjEventBus::ReleaseData is redundant (
same functionality in the only available handler is triggered by
`OnCryEditorCloseScene`)
* Remove CExportManager::AddStatObj/AddMeshes/AddMesh,
IExportManager::ExportSingleStatObj
* Remove CIconManager/IIconManager::GetObject
* Remove CBaseObject::IntersectRayMesh
* Remove IIndexedMesh and related structs.
* Unused IUndoObject::GetDescription and all derived implementations.
* Unused CUndoBaseLibrary/CUndoBaseLibraryManager
* Unused Matrix34_tpl typedefs
* Legacy Xml classes cleanup
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove unused `Vec3ToVector3D` helper
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix - remove unused static variable
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Removed the generator expression from the `LY_ARCHIVE_FILE_SEARCH_MODE` define as Xcode doesn't support per-config per-file definitions.
Updated the #else block in ArchiveVars to default to PakOnly mode if the `LY_ARCHIVE_FILE_SEARCH_MODE` define isn't set.
Moved the the `LY_ARCHIVE_FILE_SEARCH_MODE` Cache Variable from cmake/Deployment.cmake to feature_options.cmake within the AzFramework folder.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Renamed ArchiveLocationPriority enum to FileSearchPriority and made it a proper enum class
Added an ArchiveVars.cpp which checks the a new define: `LY_ARCHIVE_FILE_SEARCH_MODE_DEFAULT`
That define represents the default value to use for the Archive system search mode
Moved the FileSearchLocation enum to the ArchiveVars.h header
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetBundleComponent to use AZ::IO::Path for level dirs
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a LY_ARCHIVE_FILE_SEARCH_MODE cache variable
The Cache Variable default value is to Archive File Search Mode to PakOnly
in Release. This can be overridden using a value for all configurations
by specifying a number of 0, 1 or 2.
Alternatively a generator expression can be used to set the Archive File
Search Mode in specific configurations.
For example to set the FileSearchMode to 1 in profile and 2 in release
the following LY_ARCHIVE_FILE_SEARCH_MODE value can be used
`$<$<CONFIG:profile>:1>$<$<CONFIG:release>:2>`
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated AssetBundler(Batch) VS Debugger arguments to populate the
project-path optoin if a single project is configured.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Add support for serializing older versions of the AssetBundleManifest
This is done by attaching the "ObjectStreamWriteElementOverride"
attribute to the AssetBundleManifest reflection.
That attribute contains a function which outputs an older serialized
version of the AssetBundleManifest based on the `m_bundleVersion` member
value.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* AZStd::variant Serialization fix
The AttributeData<T> type is no longer suitable for storing the
ObjectStreamWriterOverrideCB function
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Unlocked a mutex after modifying the variable the mutex was meant for.
This fixes an issue where mounting bundles in the Editor was causing the Editor to freeze up, because the following line, m_levelOpenEvent.Signal, resulted in another attempt to lock that same mutex.
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Added a comment describing why the unlock is necessary.
Signed-off-by: AMZN-stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
Replaced and removed the CryTimer (gEnv->pTimer). The new TimeSystem is a merger of the current time functionality found in the engine.
* Rename TimeSystemComponent.h/.cpp to TimeSystem.h/.cpp
* Adding New TimeSystem
* remove old timer cvars
* small improvements to the time system.
- updated parts to use the time conversion functions.
- in AdvanceTickDeltaTimes applying t_simulationTickScale is now uses doubles instead of floats.
* Replace gEnv->pTimer / ITimer usages with TimeSystem
* Updating usages of AZ::TimeMs{ 0 } and AZ::TimeUs{ 0 } to AZ::Time::ZeroTimeMs and AZ::Time::ZeroTimeUs
* red code the CryTimer
* using TimeUs instead of TimeMs is some cases + updating usages of old cvars to new
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>