r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
event.cpp
Go to the documentation of this file.
1#include "Client/Client.hpp"
2#include "ECS/Component.hpp"
3
5{
6 const auto &scene = m_engine->getSceneManager()->getCurrentScene();
7
8 while (m_engine->getRenderer()->pollEvent(event))
9 {
10 scene->event(event);
11
12 switch (event.type)
13 {
16 break;
17
19 m_keysPressed[event.key] = true;
20 if (event.key == eng::Key::LControl)
21 {
23 }
24 break;
25
27 m_keysPressed[event.key] = false;
28 break;
29
30 default:
31 break;
32 }
33 }
34
35 updateKeyboardInput(scene->getRegistry());
36}
37
39{
40 const auto keyboardEntities = registry.getAll<ecs::KeyboardInput>();
41 ecs::Entity keyboardEntity = 0;
42
43 if (keyboardEntities.empty())
44 {
45 keyboardEntity = registry.createEntity().with<ecs::KeyboardInput>("keyboard_input").build();
46 }
47 else
48 {
49 keyboardEntity = keyboardEntities.begin()->first;
50 }
51 if (auto *keyboardInput = registry.getComponent<ecs::KeyboardInput>(keyboardEntity); keyboardInput != nullptr)
52 {
53 keyboardInput->space_pressed = m_keysPressed[eng::Key::Space];
54 keyboardInput->up_pressed = m_keysPressed[eng::Key::Up];
55 keyboardInput->down_pressed = m_keysPressed[eng::Key::Down];
56 keyboardInput->left_pressed = m_keysPressed[eng::Key::Left];
57 keyboardInput->right_pressed = m_keysPressed[eng::Key::Right];
58 }
59}
This file contains the Client class declaration.
This file contains the component definitions.
std::unordered_map< eng::Key, bool > m_keysPressed
Definition Client.hpp:50
bool m_showDebug
Definition Client.hpp:53
std::unique_ptr< eng::Engine > m_engine
Definition Client.hpp:47
void handleEvents(eng::Event &event)
Definition event.cpp:4
void updateKeyboardInput(ecs::Registry &registry)
Definition event.cpp:38
EntityBuilder & with(Args &&...args)
Definition Registry.hpp:40
Class for managing entities and their components.
Definition Registry.hpp:25
EntityBuilder createEntity()
Definition Registry.hpp:53
std::unordered_map< Entity, T > & getAll()
Definition Registry.hpp:77
T * getComponent(Entity e)
Definition Registry.hpp:71
std::shared_ptr< IRenderer > & getRenderer()
Definition Engine.hpp:49
void setState(const State newState)
Definition Engine.hpp:54
std::unique_ptr< SceneManager > & getSceneManager()
Definition Engine.hpp:51
std::uint32_t Entity
Definition Entity.hpp:13
@ STOP
Definition Engine.hpp:23
EventType type