R-Type
R-Type project
GameMenuManager.hpp
1 /*
2 ** EPITECH PROJECT, 2022
3 ** R-Type
4 ** File description:
5 ** GameMenuManager
6 */
7 
8 #ifndef GAMEMENUMANAGER_HPP_
9 #define GAMEMENUMANAGER_HPP_
10 
11 #include "KapEngine.hpp"
12 #include "KapMirror/KapMirror.hpp"
13 
14 #include "Animations/SpriteAnimation.hpp"
15 
16 namespace RType {
17 
19  public:
20  explicit GameMenuManager(std::shared_ptr<KapEngine::GameObject> go);
21  ~GameMenuManager() = default;
22 
23  void onStart() override;
24 
25  void onStartClient() override;
26 
27  void displayMainMenu();
28 
29  std::shared_ptr<KapEngine::Animator> getMissileAnimator() const { return missileAnimator; }
30 
31  void updateHealth(int health);
32 
33  void displayEndMenu(bool win);
34 
35  void display(bool win);
36 
37  private:
38  void initMainMenu(bool local = true);
39 
40  void initBackground(const std::shared_ptr<KapEngine::GameObject> &parent);
41  std::shared_ptr<KapEngine::GameObject> initButton(const std::shared_ptr<KapEngine::GameObject> &parent, const std::string &name,
42  std::string text, std::function<void()> callback,
43  const KapEngine::Tools::Color &color = KapEngine::Tools::Color::white(),
44  const KapEngine::Tools::Color &textColor = KapEngine::Tools::Color::black());
45  std::shared_ptr<KapEngine::GameObject> initButton(const std::shared_ptr<KapEngine::GameObject> &parent, const std::string &name,
46  std::string text, std::function<void()> callback, const std::string &pathSprite,
47  const KapEngine::Tools::Rectangle &rect,
48  const KapEngine::Tools::Color &color = KapEngine::Tools::Color::white(),
49  const KapEngine::Tools::Color &textColor = KapEngine::Tools::Color::black());
50 
51  // variables
52  private:
53  std::shared_ptr<KapEngine::GameObject> mainMenu;
54  std::shared_ptr<KapEngine::Animator> missileAnimator;
55  };
56 
57 } // namespace RType
58 
59 #endif /* !GAMEMENUMANAGER_HPP_ */
RType::GameMenuManager::onStartClient
void onStartClient() override
Like start(), but only called on client.
Definition: GameMenuManager.cpp:277
KapEngine::Tools::Color
Definition: Colors.hpp:22
KapEngine::Tools::Rectangle
Definition: Rectangle.hpp:23
RType::GameMenuManager::onStart
void onStart() override
call component start
Definition: GameMenuManager.cpp:26
RType::GameMenuManager
Definition: GameMenuManager.hpp:18
KapMirror::NetworkComponent
Definition: NetworkComponent.hpp:9