|
@@ -28,6 +28,7 @@
|
|
|
#include <Systems/Render.h>
|
|
|
#include <Systems/Animation.h>
|
|
|
#include <Systems/Collision.h>
|
|
|
+#include <Systems/Damage.h>
|
|
|
|
|
|
Game::Game()
|
|
|
{
|
|
@@ -38,6 +39,7 @@ Game::Game()
|
|
|
|
|
|
this->registry = std::make_unique<Registry>();
|
|
|
this->assetStore = std::make_unique<AssetStore>();
|
|
|
+ this->eventBus = std::make_unique<EventBus>();
|
|
|
}
|
|
|
|
|
|
Game::~Game()
|
|
@@ -112,6 +114,7 @@ void Game::LoadLevel(int level)
|
|
|
this->registry->addSystem<RenderSystem>();
|
|
|
this->registry->addSystem<AnimationSystem>();
|
|
|
this->registry->addSystem<CollisionSystem>();
|
|
|
+ this->registry->addSystem<DamageSystem>();
|
|
|
|
|
|
this->assetStore->addTexture(this->renderer, "tank-image", "assets/images/tank-panther-right.png");
|
|
|
this->assetStore->addTexture(this->renderer, "truck-image", "assets/images/truck-ford-right.png");
|
|
@@ -191,9 +194,13 @@ void Game::Update()
|
|
|
|
|
|
this->millisecsPerviousFrame = SDL_GetTicks();
|
|
|
|
|
|
+ eventBus->reset();
|
|
|
+
|
|
|
+ registry->getSystem<DamageSystem>().subscriptToEvents(eventBus);
|
|
|
+
|
|
|
registry->getSystem<MovementSystem>().update(deltaTime);
|
|
|
registry->getSystem<AnimationSystem>().update();
|
|
|
- registry->getSystem<CollisionSystem>().update();
|
|
|
+ registry->getSystem<CollisionSystem>().update(this->eventBus);
|
|
|
|
|
|
registry->update();
|
|
|
}
|