diff --git a/ECSAPI/CMakeLists.txt b/ECSAPI/CMakeLists.txt index 0df532a..4f27b7c 100644 --- a/ECSAPI/CMakeLists.txt +++ b/ECSAPI/CMakeLists.txt @@ -13,4 +13,5 @@ project ("ECSAPI") add_subdirectory ("Economy") add_subdirectory ("Economy/test") -add_subdirectory ("ECS") \ No newline at end of file +add_subdirectory ("ECS") +add_subdirectory ("ECS/test") \ No newline at end of file diff --git a/ECSAPI/ECS/CMakeLists.txt b/ECSAPI/ECS/CMakeLists.txt index c4c80cf..eac2e13 100644 --- a/ECSAPI/ECS/CMakeLists.txt +++ b/ECSAPI/ECS/CMakeLists.txt @@ -2,10 +2,10 @@ project(ECS) # List sources -set(HEADERS "ECS.h" "world.h") -set(SOURCES "ECS.cpp" "world.cpp") +set(HEADERS "ecs.hpp" "api.hpp" "world.hpp") +set(SOURCES "api.cpp" "world.cpp") -list(TRANSFORM HEADERS PREPEND "include/") +list(TRANSFORM HEADERS PREPEND "include/ee_ecs/") list(TRANSFORM SOURCES PREPEND "src/") # Find dependencies @@ -13,9 +13,10 @@ find_package(EnTT CONFIG REQUIRED) # Link library -add_library (ECS SHARED ${HEADERS} ${SOURCES}) +add_library(ECS SHARED ${HEADERS} ${SOURCES}) +add_library(ECS::ECS ALIAS ECS) -target_link_libraries(ECS PRIVATE Economy::Economy) +target_link_libraries(ECS PUBLIC Economy::Economy) target_link_libraries(ECS PRIVATE EnTT::EnTT) target_include_directories(ECS PUBLIC include/) diff --git a/ECSAPI/ECS/include/ECS.h b/ECSAPI/ECS/include/ee_ecs/api.hpp similarity index 100% rename from ECSAPI/ECS/include/ECS.h rename to ECSAPI/ECS/include/ee_ecs/api.hpp diff --git a/ECSAPI/ECS/include/ee_ecs/ecs.hpp b/ECSAPI/ECS/include/ee_ecs/ecs.hpp new file mode 100644 index 0000000..1e527a2 --- /dev/null +++ b/ECSAPI/ECS/include/ee_ecs/ecs.hpp @@ -0,0 +1,4 @@ +#pragma once + +#include "api.hpp" +#include "world.hpp" \ No newline at end of file diff --git a/ECSAPI/ECS/include/world.h b/ECSAPI/ECS/include/ee_ecs/world.hpp similarity index 90% rename from ECSAPI/ECS/include/world.h rename to ECSAPI/ECS/include/ee_ecs/world.hpp index 58bd5d9..e4d8495 100644 --- a/ECSAPI/ECS/include/world.h +++ b/ECSAPI/ECS/include/ee_ecs/world.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include "defines.h" -#include "enterprise_defaults.h" +#include namespace ee_ecs { @@ -24,5 +23,8 @@ namespace ee_ecs /// is ID of state entity where enterprise will be placed /// is initial properties of enterprise void spawn_enterprise(const bool is_building, const ACTION_TYPE action, const entt::entity state, const enterprise_defaults defaults); + + + entt::registry& get_registry(); }; } \ No newline at end of file diff --git a/ECSAPI/ECS/src/ECS.cpp b/ECSAPI/ECS/src/api.cpp similarity index 75% rename from ECSAPI/ECS/src/ECS.cpp rename to ECSAPI/ECS/src/api.cpp index d687c9d..7c31afa 100644 --- a/ECSAPI/ECS/src/ECS.cpp +++ b/ECSAPI/ECS/src/api.cpp @@ -1,5 +1,4 @@ -#include "ECS.h" -#include "world.h" +#include static ee_ecs::world world; diff --git a/ECSAPI/ECS/src/world.cpp b/ECSAPI/ECS/src/world.cpp index 14b0c1c..e4db81b 100644 --- a/ECSAPI/ECS/src/world.cpp +++ b/ECSAPI/ECS/src/world.cpp @@ -1,7 +1,4 @@ -#include "world.h" -#include "systems.h" -#include "components/enterprise.h" -#include "components/miner.h" +#include void ee_ecs::world::update() { @@ -34,3 +31,5 @@ void ee_ecs::world::spawn_enterprise(const bool is_building, const ACTION_TYPE a break; } } + +entt::registry& ee_ecs::world::get_registry() {return this->registry;} \ No newline at end of file diff --git a/ECSAPI/ECS/test/CMakeLists.txt b/ECSAPI/ECS/test/CMakeLists.txt new file mode 100644 index 0000000..ab7ffe4 --- /dev/null +++ b/ECSAPI/ECS/test/CMakeLists.txt @@ -0,0 +1,27 @@ +# List sources + +set(SOURCES "test_conf.hpp" "main.cpp" "world.cpp") + +# Find dependencies + +find_package(GTest CONFIG REQUIRED) + +# Link + +include(GoogleTest) + +add_executable(ecs_tests ${SOURCES}) +target_link_libraries(ecs_tests PRIVATE GTest::gtest_main) +target_link_libraries(ecs_tests PRIVATE ECS::ECS) + +# Test + +if (WIN32) + add_custom_command( + TARGET ecs_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + COMMAND_EXPAND_LISTS + ) +endif () + +gtest_discover_tests(ecs_tests) \ No newline at end of file diff --git a/ECSAPI/ECS/test/main.cpp b/ECSAPI/ECS/test/main.cpp new file mode 100644 index 0000000..45acf01 --- /dev/null +++ b/ECSAPI/ECS/test/main.cpp @@ -0,0 +1,8 @@ +#include + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/ECSAPI/ECS/test/test_conf.hpp b/ECSAPI/ECS/test/test_conf.hpp new file mode 100644 index 0000000..b9539bf --- /dev/null +++ b/ECSAPI/ECS/test/test_conf.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +struct WorldTest : testing::Test +{ + ee_ecs::world world; + + void SetUp() + { + + } + + void TearDown() + { + + } +}; \ No newline at end of file diff --git a/ECSAPI/ECS/test/world.cpp b/ECSAPI/ECS/test/world.cpp new file mode 100644 index 0000000..8ac8fea --- /dev/null +++ b/ECSAPI/ECS/test/world.cpp @@ -0,0 +1,8 @@ +#include +#include "test_conf.hpp" +#include + +TEST_F(WorldTest, SpawnEnterprise) +{ + ASSERT_TRUE(true); +} \ No newline at end of file diff --git a/ECSAPI/Economy/CMakeLists.txt b/ECSAPI/Economy/CMakeLists.txt index 7bba6a7..dced1d0 100644 --- a/ECSAPI/Economy/CMakeLists.txt +++ b/ECSAPI/Economy/CMakeLists.txt @@ -2,14 +2,14 @@ # List sources -set(HEADERS "defines.h" "enterprise_defaults.h" "systems.h") -set(HEADERS_COMPONENTS "container.h" "enterprise.h" "miner.h" "producer.h" "tags.h") +set(HEADERS "economy.hpp" "defines.hpp" "enterprise_defaults.hpp" "systems.hpp") +set(HEADERS_COMPONENTS "container.hpp" "enterprise.hpp" "miner.hpp" "producer.hpp" "tags.hpp") set(SOURCES "Economy.cpp") set(SOURCES_SYSTEMS "mining.cpp") -list(TRANSFORM HEADERS PREPEND "include/") -list(TRANSFORM HEADERS_COMPONENTS PREPEND "include/components/") +list(TRANSFORM HEADERS PREPEND "include/ee_economy/") +list(TRANSFORM HEADERS_COMPONENTS PREPEND "include/ee_economy/components/") list(TRANSFORM SOURCES PREPEND "src/") list(TRANSFORM SOURCES_SYSTEMS PREPEND "src/systems/") diff --git a/ECSAPI/Economy/include/components/container.h b/ECSAPI/Economy/include/ee_economy/components/container.hpp similarity index 91% rename from ECSAPI/Economy/include/components/container.h rename to ECSAPI/Economy/include/ee_economy/components/container.hpp index fd800a3..9998fea 100644 --- a/ECSAPI/Economy/include/components/container.h +++ b/ECSAPI/Economy/include/ee_economy/components/container.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../defines.h" +#include "../defines.hpp" #include namespace ee_ecs diff --git a/ECSAPI/Economy/include/components/enterprise.h b/ECSAPI/Economy/include/ee_economy/components/enterprise.hpp similarity index 100% rename from ECSAPI/Economy/include/components/enterprise.h rename to ECSAPI/Economy/include/ee_economy/components/enterprise.hpp diff --git a/ECSAPI/Economy/include/components/miner.h b/ECSAPI/Economy/include/ee_economy/components/miner.hpp similarity index 85% rename from ECSAPI/Economy/include/components/miner.h rename to ECSAPI/Economy/include/ee_economy/components/miner.hpp index 63fea0b..1f3773d 100644 --- a/ECSAPI/Economy/include/components/miner.h +++ b/ECSAPI/Economy/include/ee_economy/components/miner.hpp @@ -1,5 +1,5 @@ #pragma once -#include "../defines.h" +#include "../defines.hpp" #include namespace ee_ecs diff --git a/ECSAPI/Economy/include/components/producer.h b/ECSAPI/Economy/include/ee_economy/components/producer.hpp similarity index 100% rename from ECSAPI/Economy/include/components/producer.h rename to ECSAPI/Economy/include/ee_economy/components/producer.hpp diff --git a/ECSAPI/Economy/include/components/tags.h b/ECSAPI/Economy/include/ee_economy/components/tags.hpp similarity index 100% rename from ECSAPI/Economy/include/components/tags.h rename to ECSAPI/Economy/include/ee_economy/components/tags.hpp diff --git a/ECSAPI/Economy/include/defines.h b/ECSAPI/Economy/include/ee_economy/defines.hpp similarity index 100% rename from ECSAPI/Economy/include/defines.h rename to ECSAPI/Economy/include/ee_economy/defines.hpp diff --git a/ECSAPI/Economy/include/ee_economy/economy.hpp b/ECSAPI/Economy/include/ee_economy/economy.hpp new file mode 100644 index 0000000..6fa69fa --- /dev/null +++ b/ECSAPI/Economy/include/ee_economy/economy.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "defines.hpp" +#include "enterprise_defaults.hpp" +#include "systems.hpp" + +#include "components/tags.hpp" +#include "components/container.hpp" +#include "components/enterprise.hpp" +#include "components/miner.hpp" +#include "components/producer.hpp" \ No newline at end of file diff --git a/ECSAPI/Economy/include/enterprise_defaults.h b/ECSAPI/Economy/include/ee_economy/enterprise_defaults.hpp similarity index 72% rename from ECSAPI/Economy/include/enterprise_defaults.h rename to ECSAPI/Economy/include/ee_economy/enterprise_defaults.hpp index fe994a6..59be088 100644 --- a/ECSAPI/Economy/include/enterprise_defaults.h +++ b/ECSAPI/Economy/include/ee_economy/enterprise_defaults.hpp @@ -1,5 +1,6 @@ #pragma once -#include "components/container.h" +#include "defines.hpp" +#include "components/container.hpp" namespace ee_ecs { diff --git a/ECSAPI/Economy/include/resources_exchange.h b/ECSAPI/Economy/include/ee_economy/resources_exchange.hpp similarity index 95% rename from ECSAPI/Economy/include/resources_exchange.h rename to ECSAPI/Economy/include/ee_economy/resources_exchange.hpp index 0a402e3..dd6b743 100644 --- a/ECSAPI/Economy/include/resources_exchange.h +++ b/ECSAPI/Economy/include/ee_economy/resources_exchange.hpp @@ -2,7 +2,7 @@ #pragma once #include -#include "defines.h" +#include "defines.hpp" namespace ee_ecs { diff --git a/ECSAPI/Economy/include/ee_economy/systems.hpp b/ECSAPI/Economy/include/ee_economy/systems.hpp new file mode 100644 index 0000000..2e56a48 --- /dev/null +++ b/ECSAPI/Economy/include/ee_economy/systems.hpp @@ -0,0 +1,13 @@ +#pragma once +#include + +namespace ee_ecs +{ + void mining(entt::registry& registry); + // void producing(entt::registry& registry); + // void delivering(entt::registry& registry); + // void containing(entt::registry& registry); + // void destructing(entt::registry& registry); + // void building(entt::registry& registry); + // void trading(entt::registry& registry); +} \ No newline at end of file diff --git a/ECSAPI/Economy/include/systems.h b/ECSAPI/Economy/include/systems.h deleted file mode 100644 index 7be0e0f..0000000 --- a/ECSAPI/Economy/include/systems.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#include - -namespace ee_ecs -{ - void mining(entt::registry& registry); -} \ No newline at end of file diff --git a/ECSAPI/Economy/src/systems/mining.cpp b/ECSAPI/Economy/src/systems/mining.cpp index 5c41ca3..020d668 100644 --- a/ECSAPI/Economy/src/systems/mining.cpp +++ b/ECSAPI/Economy/src/systems/mining.cpp @@ -1,7 +1,4 @@ -#include "systems.h" -#include "components/miner.h" -#include "components/container.h" -#include "components/enterprise.h" +#include void ee_ecs::mining(entt::registry ®istry) { diff --git a/ECSAPI/Economy/test/CMakeLists.txt b/ECSAPI/Economy/test/CMakeLists.txt index 5f86290..1fefa7e 100644 --- a/ECSAPI/Economy/test/CMakeLists.txt +++ b/ECSAPI/Economy/test/CMakeLists.txt @@ -1,6 +1,6 @@ # List sources -set(SOURCES "test_conf.h" "main.cpp" "systems/mining.cpp") +set(SOURCES "test_conf.hpp" "main.cpp" "systems/mining.cpp") # Find dependencies diff --git a/ECSAPI/Economy/test/systems/mining.cpp b/ECSAPI/Economy/test/systems/mining.cpp index 20b3dca..90fcc2e 100644 --- a/ECSAPI/Economy/test/systems/mining.cpp +++ b/ECSAPI/Economy/test/systems/mining.cpp @@ -1,9 +1,6 @@ #include -#include "components/container.h" -#include "components/miner.h" -#include "defines.h" -#include "../test_conf.h" -#include "systems.h" +#include +#include "../test_conf.hpp" TEST_F(SystemsTest, MiningNormal) { diff --git a/ECSAPI/Economy/test/test_conf.h b/ECSAPI/Economy/test/test_conf.hpp similarity index 83% rename from ECSAPI/Economy/test/test_conf.h rename to ECSAPI/Economy/test/test_conf.hpp index 0402822..4ed9c09 100644 --- a/ECSAPI/Economy/test/test_conf.h +++ b/ECSAPI/Economy/test/test_conf.hpp @@ -1,7 +1,6 @@ -#include "components/container.h" -#include "components/enterprise.h" -#include "components/miner.h" -#include "components/tags.h" +#pragma once + +#include #include #include