This file contains the component definitions.
This file contains the IRenderer class declaration.
This file contains the interface for systems.
This file contains the Registry class declaration.
Abstract class for system.
Class for managing entities and their components.
ECS system that manages weapon charging and visual effects in multiplayer.
static void hideLoadingAnimation(ecs::Registry ®istry, ecs::Entity playerEntity)
Hide/remove the charging animation.
static void showLoadingAnimation(ecs::Registry ®istry, ecs::Entity playerEntity, const ecs::Transform *playerTransform)
Display charging/loading animation in front of player.
bool m_isCharging
Whether weapon is currently charging.
ecs::Entity m_superShotAudioEntity
Entity for charged shot audio.
WeaponSystem & operator=(const WeaponSystem &)=delete
Deleted copy assignment operator (non-copyable)
WeaponSystem(const WeaponSystem &)=delete
Deleted copy constructor (non-copyable)
WeaponSystem(WeaponSystem &&)=delete
Deleted move constructor (non-movable)
void ensureSuperShotAudio(ecs::Registry ®istry)
Ensure super shot audio entity exists.
void reset()
Reset weapon state to initial values.
~WeaponSystem() override=default
Destructor.
WeaponSystem & operator=(WeaponSystem &&)=delete
Deleted move assignment operator (non-movable)
void update(ecs::Registry ®istry, float dt) override
Update weapon system (called each frame)
float m_fireCooldown
Remaining cooldown time before next shot (seconds)
WeaponSystem(const std::shared_ptr< eng::IRenderer > &)
Constructor.
constexpr Entity INVALID_ENTITY