Skip to content

Commit

Permalink
validate if terrain is available | on activate fix | working solution
Browse files Browse the repository at this point in the history
Signed-off-by: Wojciech Czerski <[email protected]>
  • Loading branch information
w-czerski committed Jan 14, 2025
1 parent e90d334 commit a1c596c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
14 changes: 13 additions & 1 deletion Gems/CsvSpawner/Code/Source/CsvSpawner/CsvSpawnerComponent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,14 @@ namespace CsvSpawner

void CsvSpawnerComponent::Activate()
{
AzFramework::Terrain::TerrainDataNotificationBus::Handler::BusConnect();
if (IsTerrainAvailable())
{
AzFramework::Terrain::TerrainDataNotificationBus::Handler::BusConnect();
}
else
{
OnTerrainDataCreateEnd();
}
}

void CsvSpawnerComponent::Deactivate()
Expand Down Expand Up @@ -77,4 +84,9 @@ namespace CsvSpawner
m_terrainCreatedOnlyOnce = false;
AzFramework::Terrain::TerrainDataNotificationBus::Handler::BusDisconnect();
}

bool CsvSpawnerComponent::IsTerrainAvailable()
{
return AzFramework::Terrain::TerrainDataRequestBus::HasHandlers();
}
} // namespace CsvSpawner
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,6 @@ namespace CsvSpawner
void OnTerrainDataCreateEnd() override;
void OnTerrainDataDestroyBegin() override;
bool m_terrainCreatedOnlyOnce{ false }; //!< Is terrain fully generated once
[[nodiscard]] static bool IsTerrainAvailable(); //!< @returns True if current level has terrain, otherwise false.
};
} // namespace CsvSpawner

0 comments on commit a1c596c

Please sign in to comment.