From 8e09b93f253fa938b844cdd152116968800857b5 Mon Sep 17 00:00:00 2001 From: Jiga228 Date: Sun, 28 Jun 2026 20:20:05 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=82=D0=B8=D0=BF=D1=83=20=D0=B2=20GetActorsByT?= =?UTF-8?q?ag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Game/World/World.hpp | 23 +++++++++++++---------- Tests/World/WorldTest.cpp | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Core/Game/World/World.hpp b/Core/Game/World/World.hpp index 029736a..68f7d50 100644 --- a/Core/Game/World/World.hpp +++ b/Core/Game/World/World.hpp @@ -31,10 +31,10 @@ public: void load(std::shared_ptr save) override; #pragma endregion - template>> - Container GetActorsByClass() + template class Container = std::vector> + Container> GetActorsByClass() { - Container list; + Container> list; for (auto i = actors_map.cbegin(); i != actors_map.cend(); ++i) { if (RTTI::dyn_cast(i->second.get())) @@ -57,18 +57,21 @@ public: void DestroyActor(std::weak_ptr ptr); - template>> - Container GetActorsByTag(std::string tag) + template class Container = std::vector> + Container> GetActorsByTag(std::string tag) { - Container container; + Container> container; for (auto& i : actors_map) { - const std::list& tags = i.second->GetTags(); - for (auto& j : tags) + if (RTTI::dyn_cast(i.second.get())) { - if (j == tag) - container.push_back(i.second); + const std::list& tags = i.second->GetTags(); + for (auto& j : tags) + { + if (j == tag) + container.push_back(i.second); + } } } diff --git a/Tests/World/WorldTest.cpp b/Tests/World/WorldTest.cpp index 12f9f60..2fd151e 100644 --- a/Tests/World/WorldTest.cpp +++ b/Tests/World/WorldTest.cpp @@ -175,7 +175,7 @@ R"( CoreInstance tmp_core; // Test find by class - std::vector> test_actors = tmp_core.GetGameInstance()->GetWorld()->GetActorsByClass(); + std::list> test_actors = tmp_core.GetGameInstance()->GetWorld()->GetActorsByClass(); ASSERT_EQ(test_actors.size(), 1); // Test find by tag