Shoot System
Source: client/engine/systems/SystemsFunctions/ShootPlayerSystem.cpp
Purpose: Handle player shooting mechanics and spawn projectile entities.
Components used:
TransformInputsPlayerTag
Behavior
- For each player, decrement
shoot_cooldownusinggame_world.last_delta_. - If
shootinput is active and cooldown elapsed, create a projectile viaCreateProjectileand reset cooldown toshoot_cooldown_max. CreateProjectileaddsTransform,Drawable,AnimatedSprite, andProjectilecomponents to the new entity.
Main signature
void ShootPlayerSystem(Eng::registry ®, GameWorld &game_world,
Eng::sparse_array<Com::Transform> &transforms,
Eng::sparse_array<Com::Inputs> const &inputs,
Eng::sparse_array<Com::PlayerTag> &player_tags);
Notes
- Projectile defaults (speed, sprite, etc.) are hard-coded in
CreateProjectile. CreateProjectileusesreg.SpawnEntity()thenreg.AddComponent<...>.