RType
AScene.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** R-type
4 ** File description:
5 ** R-type
6 */
7 
8 #pragma once
9 
10 #include "../components/Drawable.hpp"
11 #include "../components/IComponent.hpp"
12 #include "IScene.hpp"
13 
14 class AScene : public ISceneRType
15 {
16  public:
17 
18  /**
19  * @brief Construct a new AScene:: AScene object
20  * @param serverSocket
21  */
22  explicit AScene(std::shared_ptr<ServerSocket> serverSocket);
23 
24  /**
25  * @brief Destroy the AScene:: AScene object
26  */
27  ~AScene() override = default;
28 
29  /**
30  * @brief addEntity, add an entity
31  * @param entity
32  */
33  void addEntity(std::shared_ptr<IEntity> entity) override;
34 
35  /**
36  * @brief getEntities, get the entities
37  * @return entities (std::vector<std::shared_ptr<IEntity>>)
38  */
39  std::vector<std::shared_ptr<IEntity>> getEntities() override;
40 
41  /**
42  * @brief addService, add a service
43  * @param service
44  */
45  void addService(std::shared_ptr<IService> service) override;
46 
47  /**
48  * @brief getServices, get the services
49  * @return services (std::vector<std::shared_ptr<IService>>)
50  */
52 
53  /**
54  * @brief display, display the scene
55  */
56  void display() override;
57 
58  /**
59  * @brief pauseScene, pause the scene
60  */
61  void pauseScene() override;
62 
63  /**
64  * @brief resumeScene, resume the scene
65  */
66  void resumeScene() override;
67 
68  /**
69  * @brief stopScene, stop the scene
70  */
71  void stopScene() override;
72 
73  /**
74  * @brief restartScene, restart the scene
75  */
76  void restartScene() override;
77 
78 
79  /**
80  * @brief sendGameState, send the game state
81  */
82  void sendGameState(int clientID) override;
83 
84  /**
85  * @brief broadcastGameState, broadcast the game state
86  */
87  void broadcastGameState() override;
88 
89  protected:
90 };