/* * 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 "SpawnDynamicSlice.h" #include #include #include #include namespace AutomatedLauncherTesting { AZ::Entity* SpawnDynamicSlice::CreateSpawner(const AZStd::string& path, const AZStd::string& entityName) { AZ::Entity* spawnerEntity = nullptr; AZ::Data::AssetId sliceAssetId; AZ::Data::AssetCatalogRequestBus::BroadcastResult(sliceAssetId, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetIdByPath, path.c_str(), AZ::Data::s_invalidAssetType, false); if (sliceAssetId.IsValid()) { AZ_Printf("System", "Spawning dynamic slide %s", path.c_str()); spawnerEntity = aznew AZ::Entity(entityName.c_str()); spawnerEntity->Init(); LmbrCentral::SpawnerConfig spawnerConfig; AZ::Data::Asset sliceAssetData = AZ::Data::AssetManager::Instance().GetAsset(sliceAssetId, spawnerConfig.m_sliceAsset.GetAutoLoadBehavior()); sliceAssetData.BlockUntilLoadComplete(); AZ::Component* spawnerComponent = nullptr; AZ::ComponentDescriptorBus::EventResult(spawnerComponent, LmbrCentral::SpawnerComponentTypeId, &AZ::ComponentDescriptorBus::Events::CreateComponent); spawnerConfig.m_sliceAsset = sliceAssetData; spawnerConfig.m_spawnOnActivate = true; spawnerComponent->SetConfiguration(spawnerConfig); spawnerEntity->AddComponent(spawnerComponent); spawnerEntity->Activate(); } else { AZ_Warning("System", false, "Could not create asset for dynamic slide %s", path.c_str()); } return spawnerEntity; } } // namespace AutomatedLauncherTesting