Refactored root spawnable instantiation, added selective instantiation of root spawnable entities

This commit is contained in:
pereslav
2021-04-16 00:19:43 +01:00
parent a5fdbddeda
commit 4962218d29
11 changed files with 136 additions and 77 deletions
@@ -124,7 +124,7 @@ namespace Multiplayer
AzFramework::TransformComponent* transformComponent = netEntity->FindComponent<AzFramework::TransformComponent>();
breadcrumbEntity->CreateComponent<AzFramework::TransformComponent>(*transformComponent);
// TODO: Add NetBindMarkerComponent here referring to the net entity
// TODO: Configure NetBindMarkerComponent to refer to the net entity
sourceInstance->AddEntity(*breadcrumbEntity);
}
@@ -133,6 +133,7 @@ namespace Multiplayer
AZ::Data::AssetId assetId = networkSpawnable->GetId();
AZ::Data::Asset<AzFramework::Spawnable> networkSpawnableAsset;
networkSpawnableAsset.Create(assetId);
networkSpawnableAsset.SetAutoLoadBehavior(AZ::Data::AssetLoadBehavior::PreLoad);
EntityOptionalReference containerEntityRef = sourceInstance->GetContainerEntity();
if (containerEntityRef.has_value())
@@ -39,4 +39,13 @@ namespace Multiplayer
m_networkSpawnableAsset = networkSpawnableAsset;
}
AZ::Data::Asset<AzFramework::Spawnable> NetworkSpawnableHolderComponent::GetNetworkSpawnableAsset()
{
return m_networkSpawnableAsset;
}
NetworkSpawnableHolderComponent::NetworkSpawnableHolderComponent()
{
}
}
@@ -27,7 +27,7 @@ namespace Multiplayer
static void Reflect(AZ::ReflectContext* context);
NetworkSpawnableHolderComponent() = default;
NetworkSpawnableHolderComponent();;
~NetworkSpawnableHolderComponent() override = default;
//! AZ::Component overrides.
@@ -37,6 +37,7 @@ namespace Multiplayer
//! @}
void SetNetworkSpawnableAsset(AZ::Data::Asset<AzFramework::Spawnable> networkSpawnableAsset);
AZ::Data::Asset<AzFramework::Spawnable> GetNetworkSpawnableAsset();
private:
AZ::Data::Asset<AzFramework::Spawnable> m_networkSpawnableAsset{ AZ::Data::AssetLoadBehavior::PreLoad };