1 #ifndef CORE_SYSTEMS_MOVEMENT_HPP
2 #define CORE_SYSTEMS_MOVEMENT_HPP
4 #include <BLIB/Audio/AudioSystem.hpp>
5 #include <BLIB/ECS.hpp>
6 #include <BLIB/Engine/System.hpp>
7 #include <BLIB/Tilemap/Position.hpp>
43 bool makeMovable(bl::ecs::Entity entity,
float moveSpeed,
float fastMoveSpeed);
53 bool moveEntity(bl::ecs::Entity entity, bl::tmap::Direction direction,
bool fast);
57 bl::audio::AudioSystem::Handle jumpSound;
59 virtual void init(bl::engine::Engine&)
override;
60 virtual void update(std::mutex&,
float dt,
float,
float,
float)
override;
Core classes and functionality for both the editor and game.
Primary System for managing entity movement and interpolation.
virtual ~Movement()=default
Destroys the system.
Movement(Systems &owner)
Create the movement system.
bool moveEntity(bl::ecs::Entity entity, bl::tmap::Direction direction, bool fast)
Moves an entity in the given direction using either its fast or slow speed.
bool makeMovable(bl::ecs::Entity entity, float moveSpeed, float fastMoveSpeed)
Adds a Movable component to the given entity if it does not already exist.
Owns all primary systems and a reference to the engine.