diff options
author | Aki <please@ignore.pl> | 2022-12-03 00:44:07 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-12-03 00:44:07 +0100 |
commit | 18a763bcb19c5ece4b7b7d079dab07a1d915deb6 (patch) | |
tree | 137278522c98f5cb5cf4067886444b20b3eaf82d /sim/src/Builder.cpp | |
parent | 18eba7f30381c05ee1c03bec5f537ec7d4dc9815 (diff) | |
download | kurator-18a763bcb19c5ece4b7b7d079dab07a1d915deb6.zip kurator-18a763bcb19c5ece4b7b7d079dab07a1d915deb6.tar.gz kurator-18a763bcb19c5ece4b7b7d079dab07a1d915deb6.tar.bz2 |
Moved battles module files to sim
Diffstat (limited to 'sim/src/Builder.cpp')
-rw-r--r-- | sim/src/Builder.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sim/src/Builder.cpp b/sim/src/Builder.cpp new file mode 100644 index 0000000..d7cc893 --- /dev/null +++ b/sim/src/Builder.cpp @@ -0,0 +1,57 @@ +#include "Builder.h" + +#include <entt/entity/registry.hpp> + +#include <kurator/battles/components.h> +#include <kurator/battles/Point.h> +#include <kurator/universe/ShipType.h> +#include <kurator/universe/TurretType.h> + +#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<universe::ShipType>(entity, ship_type); + registry.emplace<Team>(entity, team); + registry.emplace<Transform>(entity, spawner.get(team)); + registry.emplace<FloatingMovement>( + entity, + ship_type.max_speed, + ship_type.max_speed * 2.0, + ship_type.max_speed * 3.0, + 100.0); + registry.emplace<AIState>(entity, Point{0.0, 0.0}); + registry.emplace<HitPoints>(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<universe::TurretType>(entity, turret_type); + registry.emplace<TurretControl>(entity, 0.0, owner); + registry.emplace<Transform>(entity, Point{0.0, 0.0}, 0.0, owner); + return entity; +} + + +} // namespace battles +} // namespace kurator |