Allowing players to join the lobby

This commit is contained in:
Zoe Roux
2021-06-11 12:15:51 +02:00
21 changed files with 180 additions and 64 deletions

View File

@@ -3,25 +3,44 @@
// Edited by Benjamin Henry on 2021-05-20.
//
#include <Component/Controllable/ControllableComponent.hpp>
#include "KeyboardComponent.hpp"
namespace BBM
{
KeyboardComponent::KeyboardComponent(WAL::Entity &entity,
Key up,
Key down,
Key left,
Key right,
Key jump,
Key bomb,
Key pause)
: WAL::Component(entity), keyJump(jump), keyBomb(bomb), keyPause(pause),
keyRight(right), keyLeft(left), keyUp(up), keyDown(down)
{}
KeyboardComponent::KeyboardComponent(WAL::Entity &entity, ControllableComponent::Layout layout)
: WAL::Component(entity), layout(layout)
{
if (layout == ControllableComponent::KEYBOARD_0) {
this->keyUp = KEY_W;
this->keyDown = KEY_S;
this->keyLeft = KEY_A;
this->keyRight = KEY_D;
this->keyJump = KEY_SPACE;
this->keyBomb = KEY_E;
this->keyPause = KEY_ESCAPE;
} else {
this->keyUp = KEY_UP;
this->keyDown = KEY_DOWN;
this->keyLeft = KEY_LEFT;
this->keyRight = KEY_RIGHT;
this->keyJump = KEY_RIGHT_CONTROL;
this->keyBomb = KEY_ENTER;
this->keyPause = KEY_BACKSPACE;
}
}
WAL::Component *KeyboardComponent::clone(WAL::Entity &entity) const
{
return new KeyboardComponent(entity);
return new KeyboardComponent(entity, this->layout);
}
void KeyboardComponent::onStart()
{
auto *controller = this->_entity.tryGetComponent<ControllableComponent>();
if (!controller)
return;
controller->layout = this->layout;
}
} // namespace BMM