From 057d4061a1dca1dc76096826fd8066316ce5447d Mon Sep 17 00:00:00 2001 From: Aki Date: Wed, 16 Nov 2022 23:37:17 +0100 Subject: Extracted entity construction to Builder class --- battles/src/Builder.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 battles/src/Builder.cpp (limited to 'battles/src/Builder.cpp') diff --git a/battles/src/Builder.cpp b/battles/src/Builder.cpp new file mode 100644 index 0000000..228e893 --- /dev/null +++ b/battles/src/Builder.cpp @@ -0,0 +1,52 @@ +#include "Builder.h" + +#include + +#include +#include +#include +#include + +#include "Spawner.h" + + +namespace kurator +{ +namespace battles +{ + + +Builder::Builder(entt::registry& _registry, Spawner& _spawner) : + registry {_registry}, + spawner {_spawner} +{ +} + + +entt::entity +Builder::operator()(const universe::ShipType& ship_type, const int team) const +{ + const auto entity = registry.create(); + registry.emplace(entity, ship_type); + registry.emplace(entity, team); + registry.emplace(entity, spawner.get(team)); + registry.emplace(entity, 0.4); + registry.emplace(entity, Point{0.0, 0.0}); + registry.emplace(entity, ship_type.base_health_points); + return entity; +} + + +entt::entity +Builder::operator()(const universe::TurretType& turret_type, const entt::entity& owner) const +{ + const auto entity = registry.create(); + registry.emplace(entity, turret_type); + registry.emplace(entity, 0.0, owner); + registry.emplace(entity, Point{0.0, 0.0}, 0.0, owner); + return entity; +} + + +} // namespace battles +} // namespace kurator -- cgit v1.1