13#include <unordered_map>
34 void detach(entt::entity e);
43 [[nodiscard]] uint32_t
count()
const {
return pool_.liveCount(); }
60 glm::vec3
dir{0.0f, 0.0f, 1.0f};
68 std::array<RuntimeState, k_maxTracers>
runtime_{};
Fixed-capacity particle pool with O(1) swap-remove.
GPU-uploadable particle structs for all effect categories.
Shared ECS registry type alias for the game engine.
entt::registry Registry
Shared ECS registry type alias.
Definition Registry.hpp:11
Manages oriented-capsule tracers for fast-bullet projectile entities.
Definition TracerEffect.hpp:20
static constexpr float k_streakLength
Visual streak length in world units.
Definition TracerEffect.hpp:76
void updateRifleTracer(uint32_t idx, float dt)
Definition TracerEffect.cpp:115
const TracerParticle * data() const
Definition TracerEffect.hpp:42
void update(float dt, Registry ®istry)
Update all live tracers.
Definition TracerEffect.cpp:139
void spawnRifleTracer(glm::vec3 origin, glm::vec3 dir, float range)
Spawn a visual-only rifle bullet that travels along a hitscan path.
Definition TracerEffect.cpp:53
void killTracer(uint32_t idx)
Definition TracerEffect.cpp:98
std::array< RuntimeState, k_maxTracers > runtime_
Definition TracerEffect.hpp:68
ParticlePool< TracerParticle, k_maxTracers > pool_
Definition TracerEffect.hpp:67
void attach(entt::entity e, Registry ®istry)
Attach a new tracer to a projectile entity.
Definition TracerEffect.cpp:24
static constexpr uint32_t k_maxTracers
Definition TracerEffect.hpp:46
RuntimeKind
Definition TracerEffect.hpp:49
@ RifleProjectile
Definition TracerEffect.hpp:52
@ Entity
Definition TracerEffect.hpp:51
@ None
Definition TracerEffect.hpp:50
static constexpr float k_rifleSpawnLead
Definition TracerEffect.hpp:80
static constexpr float k_rifleVisualSpeed
Definition TracerEffect.hpp:78
static constexpr float k_fadeTime
Seconds to fade after entity death.
Definition TracerEffect.hpp:77
void detach(entt::entity e)
Detach the tracer from an entity (entity dying); tracer fades out.
Definition TracerEffect.cpp:84
uint32_t count() const
Definition TracerEffect.hpp:43
std::unordered_map< uint32_t, uint32_t > entityToIdx_
Definition TracerEffect.hpp:71
static constexpr float k_rifleTrailLength
Definition TracerEffect.hpp:79
static constexpr float k_rifleRadius
Definition TracerEffect.hpp:81
Fixed-capacity particle pool with O(1) swap-remove.
Definition ParticlePool.hpp:22
Definition TracerEffect.hpp:56
RuntimeKind kind
Definition TracerEffect.hpp:57
entt::entity entity
Definition TracerEffect.hpp:58
float speed
Definition TracerEffect.hpp:62
glm::vec3 origin
Definition TracerEffect.hpp:59
float trailLength
Definition TracerEffect.hpp:63
float distance
Definition TracerEffect.hpp:61
float age
Definition TracerEffect.hpp:64
glm::vec3 dir
Definition TracerEffect.hpp:60
Oriented capsule streak for fast-bullet tracers (R301 style).
Definition ParticleTypes.hpp:32