Bomberman
MovableComponent.hpp
Go to the documentation of this file.
1 //
2 // Created by Zoe Roux on 5/17/21.
3 //
4 
5 #pragma once
6 
7 #include "Models/Vector3.hpp"
8 #include "Entity/Entity.hpp"
9 
10 namespace BBM
11 {
14  {
15  private:
20  public:
21 
24  void addForce(Vector3f force);
25 
27  const Vector3f &getVelocity(void) const;
28 
30  WAL::Component *clone(WAL::Entity &entity) const override;
31 
33  explicit MovableComponent(WAL::Entity &entity);
35  MovableComponent(const MovableComponent &) = default;
37  ~MovableComponent() override = default;
39  MovableComponent &operator=(const MovableComponent &) = delete;
40 
41  friend class MovableSystem;
42  friend class MapGenerator;
43  };
44 } // namespace WAL
BBM::MovableComponent::clone
WAL::Component * clone(WAL::Entity &entity) const override
Clone a component for another or the same entity.
Definition: MovableComponent.cpp:13
BBM::MovableComponent::operator=
MovableComponent & operator=(const MovableComponent &)=delete
A movable component is not assignable.
BBM::MovableComponent::addForce
void addForce(Vector3f force)
Add an instant force to this entity.
Definition: MovableComponent.cpp:18
WAL::Component
Represent a single component of WAL.
Definition: Component.hpp:17
Vector3.hpp
BBM
Definition: AnimationsComponent.cpp:9
Entity.hpp
WAL::Entity
An entity of the WAL's ECS.
Definition: Entity.hpp:20
BBM::Vector3< float >
BBM::MovableSystem
A system to handle movable entities. This system update velocity based on accelerations and positions...
Definition: MovableSystem.hpp:16
BBM::MovableComponent::~MovableComponent
~MovableComponent() override=default
A default destructor.
BBM::MovableComponent::MovableComponent
MovableComponent(WAL::Entity &entity)
Create a new movable component.
Definition: MovableComponent.cpp:9
BBM::MovableComponent::_acceleration
Vector3f _acceleration
The acceleration of this entity.
Definition: MovableComponent.hpp:17
BBM::MovableComponent::_velocity
Vector3f _velocity
The velocity of the entity.
Definition: MovableComponent.hpp:19
BBM::MapGenerator
Definition: Map.hpp:31
BBM::MovableComponent
A component to place on entities that can move or be moved.
Definition: MovableComponent.hpp:13
BBM::MovableComponent::getVelocity
const Vector3f & getVelocity(void) const
Get velocity.
Definition: MovableComponent.cpp:23