Files
Bomberman/sources/Component/Keyboard/KeyboardComponent.cpp
2021-06-11 12:15:51 +02:00

47 lines
1.1 KiB
C++

//
// Created by Tom Augier on 2021-05-20.
// Edited by Benjamin Henry on 2021-05-20.
//
#include <Component/Controllable/ControllableComponent.hpp>
#include "KeyboardComponent.hpp"
namespace BBM
{
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, this->layout);
}
void KeyboardComponent::onStart()
{
auto *controller = this->_entity.tryGetComponent<ControllableComponent>();
if (!controller)
return;
controller->layout = this->layout;
}
} // namespace BMM