#pragma once

#include <QVector2D>

struct DynamicBodyComponent
{
    // --- dynamics parameters ---
    float maxSpeed_tpt;               // tiles/tick
    float mainAcceleration_tptt;      // tiles/tick²
    float maneuveringAcceleration_tptt; // tiles/tick²
    float maxAngularAcceleration_rptt;  // rad/tick²
    float maxRotationSpeed_rpt;       // rad/tick

    // --- integrated state ---
    QVector2D velocity_tpt;           // tiles/tick
    float     angularVelocity_rpt;    // rad/tick

    // --- written each tick by MovementIntentSystem, consumed by DynamicBodySystem ---
    QVector2D linearAcceleration_tptt;  // tiles/tick²
    float     angularAcceleration_rptt; // rad/tick²
};
