Controllable Player System
Source: client/engine/systems/SystemsFunctions/ControllablePlayerSystem.cpp
Purpose: Convert player inputs into accelerations applied to Velocity, respecting a ramp time to reach max speed.
Components used:
InputsControllable(marks whether the entity is controllable)VelocityPlayerTag(containsspeed_max)
Behavior
- Compute target speed from inputs (
input.horizontal * speed). - Compute required acceleration to reach target speed in
time_to_maxseconds. - Clamp acceleration between
-max_acceland+max_accel.
Main signature
void ControllablePlayerSystem(Eng::registry ®,
Eng::sparse_array<Com::Inputs> &inputs,
Eng::sparse_array<Com::Controllable> const &controllables,
Eng::sparse_array<Com::Velocity> &velocities,
Eng::sparse_array<Com::PlayerTag> const &playerTags);
Notes
time_to_maxis set to0.15fin current implementation.- This system only updates accelerations; velocity is applied by
MovementSystem.