/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #include #include #include #include #include #include #include #include #include #include #include #include #include namespace ScriptCanvas { ///////////////////////////// // ScriptCanvasModuleCommon ///////////////////////////// ScriptCanvasModuleCommon::ScriptCanvasModuleCommon() : AZ::Module() { // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here. m_descriptors.insert(m_descriptors.end(), { // System Component ScriptCanvas::SystemComponent::CreateDescriptor(), // Components ScriptCanvas::Connection::CreateDescriptor(), ScriptCanvas::Node::CreateDescriptor(), ScriptCanvas::Debugger::ServiceComponent::CreateDescriptor(), ScriptCanvas::Graph::CreateDescriptor(), ScriptCanvas::GraphVariableManagerComponent::CreateDescriptor(), ScriptCanvas::RuntimeComponent::CreateDescriptor(), // ScriptCanvasBuilder ScriptCanvas::RuntimeAssetSystemComponent::CreateDescriptor(), }); ScriptCanvas::InitLibraries(); AZStd::vector libraryDescriptors = ScriptCanvas::GetLibraryDescriptors(); m_descriptors.insert(m_descriptors.end(), libraryDescriptors.begin(), libraryDescriptors.end()); MathNodeUtilities::RandomEngineInit(); InitDataRegistry(); ScriptCanvas::AutoGenRegistryManager::Init(); if (auto componentApplication = AZ::Interface::Get()) { for (auto descriptor : ScriptCanvas::AutoGenRegistryManager::GetComponentDescriptors()) { componentApplication->RegisterComponentDescriptor(descriptor); } } } ScriptCanvasModuleCommon::~ScriptCanvasModuleCommon() { MathNodeUtilities::RandomEngineReset(); ScriptCanvas::ResetLibraries(); ResetDataRegistry(); } AZ::ComponentTypeList ScriptCanvasModuleCommon::GetCommonSystemComponents() const { return std::initializer_list { azrtti_typeid(), azrtti_typeid(), azrtti_typeid(), }; } }