26 explicit AudioSystem(
const std::shared_ptr<eng::IAudio> &audio,
const float &audioVolume,
27 Registry ®istry,
bool &playSelectionMusic)
33 [&audio, ®istry](
const Entity e,
const std::type_info &type)
37 if (type ==
typeid(
Audio))
41 audio->createAudio(audioComp->path, audioComp->volume, audioComp->loop,
42 audioComp->id + std::to_string(e));
61 for (
auto &[entity, audio] : registry.
getAll<
Audio>())
63 std::string audioName = audio.id + std::to_string(entity);
99 const std::shared_ptr<eng::IAudio> &
m_audio;
This file contains the component definitions.
This file contains the Audio interface.
This file contains the interface for systems.
This file contains the Registry class declaration.
Abstract class for system.
AudioSystem(AudioSystem &&)=delete
bool & m_playSelectionMusic
~AudioSystem() override=default
AudioSystem(const std::shared_ptr< eng::IAudio > &audio, const float &audioVolume, Registry ®istry, bool &playSelectionMusic)
Entity m_selectionSoundEntity
AudioSystem & operator=(const AudioSystem &)=delete
void update(Registry ®istry, float) override
const std::shared_ptr< eng::IAudio > & m_audio
AudioSystem(const AudioSystem &)=delete
std::string m_selectionSoundName
AudioSystem & operator=(AudioSystem &&)=delete
const float & m_audioVolume
EntityBuilder & with(Args &&...args)
Class for managing entities and their components.
EntityBuilder createEntity()
void onComponentAdded(std::function< void(Entity, const std::type_info &)> cb)
std::unordered_map< Entity, T > & getAll()
T * getComponent(Entity e)
virtual void setVolume(const std::string &name, float volume)=0
virtual void playAudio(const std::string &name)=0
virtual Status isPlaying(const std::string &name)=0
virtual void setLoop(const std::string &name, bool loop)=0
virtual void stopAudio(const std::string &name)=0
This file contains common definitions and constants.
constexpr auto AUDIO_INPUT