diff --git a/CMakeLists.txt b/CMakeLists.txt index ee8b426e..a3af798d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,8 +143,6 @@ set(SOURCES sources/Runner/LobbyScene.cpp sources/Runner/HowToPlayScene.cpp sources/Runner/ScoreScene.cpp - sources/System/MenuControllable/MenuControllableMouseSystem.cpp - sources/System/MenuControllable/MenuControllableMouseSystem.hpp ) add_executable(bomberman sources/main.cpp diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 54db63d5..647ccfd6 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -37,7 +37,6 @@ #include "System/Score/ScoreSystem.hpp" #include "System/EndCondition/EndConditionSystem.hpp" #include "Component/Lobby/LobbyComponent.hpp" -#include "System/MenuControllable/MenuControllableMouseSystem.hpp" namespace BBM { diff --git a/sources/System/MenuControllable/MenuControllableMouseSystem.cpp b/sources/System/MenuControllable/MenuControllableMouseSystem.cpp deleted file mode 100644 index 07fb258b..00000000 --- a/sources/System/MenuControllable/MenuControllableMouseSystem.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// Created by Louis Auzuret 06/03/21 -// - -#include -#include "Component/Button/ButtonComponent.hpp" -#include "System/MenuControllable/MenuControllableMouseSystem.hpp" -#include "Component/Controllable/ControllableComponent.hpp" -#include "Entity/Entity.hpp" -#include "Controllers/Mouse.hpp" -#include "Component/Position/PositionComponent.hpp" -#include "Drawables/Texture.hpp" -#include "Drawables/2D/Text.hpp" -#include "Component/Renderer/Drawable2DComponent.hpp" - -namespace RAYControl = RAY::Controller; -namespace RAY2D = RAY::Drawables::Drawables2D; - -namespace BBM -{ - MenuControllableMouseSystem::MenuControllableMouseSystem(WAL::Wal &wal) - : System(wal), _currentButton() - {} - - void MenuControllableMouseSystem::onFixedUpdate(WAL::ViewEntity &entity) - { - auto &positionComponent = entity.get(); - RAY::Vector2 rayMousePos = RAYControl::Mouse::getCursorPosition(); - Vector2f buttonPos(positionComponent.getX(), positionComponent.getY()); - Vector2f mousePos(rayMousePos.x, rayMousePos.y); - Vector2f dimensions; - auto &controllable = entity.get(); - - if (this->_currentButton && this->_currentButton->_scene.getID() != this->_wal.getScene()->getID()) { - this->_currentButton->getComponent().onEvent(*this->_currentButton, this->_wal); - this->_currentButton = nullptr; - } - RAY::Texture *texture = dynamic_cast(entity.get().drawable.get()); - RAY2D::Text *text = dynamic_cast(entity.get().drawable.get()); - WAL::Entity *newButton = nullptr; - - if (texture) { - dimensions.x = texture->getDimensions().x; - dimensions.y = texture->getDimensions().y; - } else if (text) { - dimensions.y = text->getFontSize(); - dimensions.x = text->getString().size() * (text->getLetterSpacing() + text->getFontSize()); - } else - return; - if ((buttonPos.x <= mousePos.x && mousePos.x <= buttonPos.x + dimensions.x) - && (buttonPos.y <= mousePos.y && mousePos.y <= buttonPos.y + dimensions.y)) - newButton = &(*entity); - if (newButton) { - this->_currentButton->getComponent().onEvent(*this->_currentButton, this->_wal); - this->_currentButton = newButton; - this->_currentButton->getComponent().onEvent(*this->_currentButton, this->_wal); - if (RAYControl::Mouse::isPressed(RAYControl::Mouse::Button::MOUSE_BUTTON_LEFT)) - this->_currentButton->getComponent().onEvent(*this->_currentButton, this->_wal); - } - } -} \ No newline at end of file diff --git a/sources/System/MenuControllable/MenuControllableMouseSystem.hpp b/sources/System/MenuControllable/MenuControllableMouseSystem.hpp deleted file mode 100644 index 27064c61..00000000 --- a/sources/System/MenuControllable/MenuControllableMouseSystem.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// Created by Louis Auzuret on 06/03/21 -// - -#pragma once - -#include "Component/Controllable/ControllableComponent.hpp" -#include "Models/Vector2.hpp" -#include "System/System.hpp" -#include "Component/Position/PositionComponent.hpp" -#include "Component/Renderer/Drawable2DComponent.hpp" - -namespace BBM -{ - //! @brief A system to handle Controllable entities in a menu. - class MenuControllableMouseSystem : public WAL::System - { - private: - //! @brief index of the current button selected - WAL::Entity *_currentButton; - public: - //! @brief time (in millisecond) since last check - std::chrono::time_point now; - //! @inherit - void onFixedUpdate(WAL::ViewEntity &entities) override; - - //! @brief A default constructor - explicit MenuControllableMouseSystem(WAL::Wal &wal); - //! @brief A MenuControllable system is not copy constructable - MenuControllableMouseSystem(const MenuControllableMouseSystem &) = delete; - //! @brief A default destructor - ~MenuControllableMouseSystem() override = default; - //! @brief A MenuControllable system is not assignable. - MenuControllableMouseSystem &operator=(const MenuControllableMouseSystem &) = delete; - }; -}