diff --git a/sources/Parser/ParserYaml.cpp b/sources/Parser/ParserYaml.cpp index ac3c339e..0aba3b20 100644 --- a/sources/Parser/ParserYaml.cpp +++ b/sources/Parser/ParserYaml.cpp @@ -20,6 +20,7 @@ #include #include #include "ParserYaml.hpp" +#include "Component/Speed/SpeedComponent.hpp" #include #include #include @@ -84,17 +85,17 @@ namespace BBM { auto *position = entity.tryGetComponent(); auto *bombHolder = entity.tryGetComponent(); auto *model = entity.tryGetComponent(); - auto *controllable = entity.tryGetComponent(); + auto *speed = entity.tryGetComponent(); auto name = entity.getName(); - if (!position || !bombHolder || !model || !controllable) + if (!position || !bombHolder || !model || !speed) return; std::replace(name.begin(), name.end(), ' ', '_'); _player << std::endl << " " << name << ":" << std::endl << " "; _player << "texture_path: " << dynamic_cast(model->drawable.get())->getTextureByMaterial(MAP_DIFFUSE).getResourcePath() << std::endl << " "; _player << "max_bomb: " << std::to_string(bombHolder->maxBombCount) << std::endl << " "; _player << "explosion_radius: " << std::to_string(bombHolder->explosionRadius) << std::endl << " "; - _player << "speed: " << std::to_string(controllable->speed) << std::endl << " "; + _player << "speed: " << std::to_string(speed->speed) << std::endl << " "; _player << "position: [" << std::to_string(position->getX()) << "," << std::to_string(position->getY()) << "," << std::to_string(position->getZ()) << "]"; } diff --git a/sources/Runner/GameScene.cpp b/sources/Runner/GameScene.cpp index daad8c57..5987adf1 100644 --- a/sources/Runner/GameScene.cpp +++ b/sources/Runner/GameScene.cpp @@ -19,6 +19,7 @@ #include "Component/BombHolder/BombHolderComponent.hpp" #include "Component/Tag/TagComponent.hpp" #include "Component/Renderer/Drawable3DComponent.hpp" +#include "Component/Speed/SpeedComponent.hpp" #include "Component/Renderer/Drawable2DComponent.hpp" #include #include "Drawables/2D/Text.hpp" @@ -71,6 +72,7 @@ namespace BBM .addComponent() .addComponent>() .addComponent>() + .addComponent() .addComponent("assets/player/player.iqm", 3) .addComponent(BBM::Vector3f{0.25, 0, 0.25}, BBM::Vector3f{.75, 2, .75}) .addComponent() diff --git a/sources/System/Controllable/ControllableSystem.cpp b/sources/System/Controllable/ControllableSystem.cpp index 072397d0..6a563c64 100644 --- a/sources/System/Controllable/ControllableSystem.cpp +++ b/sources/System/Controllable/ControllableSystem.cpp @@ -19,7 +19,8 @@ namespace BBM void ControllableSystem::onFixedUpdate(WAL::ViewEntity &entity) { auto &controllable = entity.get(); - auto &speed = entity.get(); + // todo check why the .get doesn't work + auto &speed = entity->getComponent(); auto &movable = entity.get(); auto health = entity->tryGetComponent(); Vector2f move = controllable.move.normalized() * speed.speed; diff --git a/sources/System/Lobby/LobbySystem.cpp b/sources/System/Lobby/LobbySystem.cpp index 18255b4d..29c9140b 100644 --- a/sources/System/Lobby/LobbySystem.cpp +++ b/sources/System/Lobby/LobbySystem.cpp @@ -6,6 +6,7 @@ #include "Component/Renderer/Drawable2DComponent.hpp" #include "System/Lobby/LobbySystem.hpp" #include "Component/Controllable/ControllableComponent.hpp" +#include "Component/Speed/SpeedComponent.hpp" #include "System/MenuControllable/MenuControllableSystem.hpp" #include "Component/Tag/TagComponent.hpp" #include @@ -257,14 +258,14 @@ namespace BBM .addComponent(x + 220, y + 122, 0) .addComponent("", 20, x, y, WHITE) .addComponent([&player](Drawable2DComponent &drawble) { - const ControllableComponent *bonus = player.tryGetComponent(); + auto *speed = player.tryGetComponent(); - if (!bonus) + if (!speed) return; RAY2D::Text *text = dynamic_cast(drawble.drawable.get()); if (!text) return; - text->setText(std::to_string(static_cast(bonus->speed * 100))); + text->setText(std::to_string(static_cast(speed->speed * 100))); }); scene->addEntity("player hide wall") .addComponent(x + 220, y + 161, 0) @@ -304,14 +305,14 @@ namespace BBM auto *position = player.tryGetComponent(); auto *bombHolder = player.tryGetComponent(); auto *model = player.tryGetComponent(); - auto *controllable = player.tryGetComponent(); - if (position && bombHolder && model && controllable) { + auto *speed = player.tryGetComponent(); + if (position && bombHolder && model && speed) { dynamic_cast(model->drawable.get())->setTextureToMaterial(MAP_DIFFUSE, ParserYAML::playersInfos[countPlayer].asset); position->position = ParserYAML::playersInfos[countPlayer].position; bombHolder->explosionRadius = ParserYAML::playersInfos[countPlayer].explosionRange; bombHolder->maxBombCount = ParserYAML::playersInfos[countPlayer].maxBombCount; - controllable->speed = ParserYAML::playersInfos[countPlayer].speed; + speed->speed = ParserYAML::playersInfos[countPlayer].speed; } addController(player, lobby.layout); countPlayer++;