diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/API/ToolsApplicationAPI.h b/Code/Framework/AzToolsFramework/AzToolsFramework/API/ToolsApplicationAPI.h index d4707a3e8c..c037747a08 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/API/ToolsApplicationAPI.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/API/ToolsApplicationAPI.h @@ -414,6 +414,9 @@ namespace AzToolsFramework //! Gets an existing entity id from a known id. virtual AZ::EntityId GetExistingEntity(AZ::u64 id) = 0; + //! Returns if an entity with the given id exists + virtual bool EntityExists(AZ::EntityId id) = 0; + /*! * Delete all currently-selected entities. */ diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.cpp index 6de529e456..75d31321c2 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.cpp @@ -378,6 +378,7 @@ namespace AzToolsFramework ->Event("CreateNewEntityAtPosition", &ToolsApplicationRequests::CreateNewEntityAtPosition) ->Event("GetCurrentLevelEntityId", &ToolsApplicationRequests::GetCurrentLevelEntityId) ->Event("GetExistingEntity", &ToolsApplicationRequests::GetExistingEntity) + ->Event("EntityExists", &ToolsApplicationRequests::EntityExists) ->Event("DeleteEntityById", &ToolsApplicationRequests::DeleteEntityById) ->Event("DeleteEntities", &ToolsApplicationRequests::DeleteEntities) ->Event("DeleteEntityAndAllDescendants", &ToolsApplicationRequests::DeleteEntityAndAllDescendants) @@ -783,6 +784,11 @@ namespace AzToolsFramework return AZ::EntityId{id}; } + bool ToolsApplication::EntityExists(AZ::EntityId id) + { + return FindEntity(id) != nullptr; + } + void ToolsApplication::DeleteSelected() { if (IsPrefabSystemEnabled()) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.h index e7fa543faf..d05ec5728d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Application/ToolsApplication.h @@ -115,6 +115,7 @@ namespace AzToolsFramework AZ::EntityId CreateNewEntity(AZ::EntityId parentId = AZ::EntityId()) override; AZ::EntityId CreateNewEntityAtPosition(const AZ::Vector3& pos, AZ::EntityId parentId = AZ::EntityId()) override; AZ::EntityId GetExistingEntity(AZ::u64 id) override; + bool EntityExists(AZ::EntityId id) override; void DeleteSelected() override; void DeleteEntityById(AZ::EntityId entityId) override; void DeleteEntities(const EntityIdList& entities) override;