18 lines
873 B
C
18 lines
873 B
C
#pragma once
|
|
|
|
#include <QVector2D>
|
|
|
|
// The winning behavior's executor writes this each tick before movement runs.
|
|
// `active` is false when no behavior set a destination (the ship brakes); the
|
|
// score-based selection (see architecture.md "Movement Arbitration") decides
|
|
// which single executor writes here.
|
|
struct MovementIntentComponent
|
|
{
|
|
bool active = false;
|
|
QVector2D target; // straight-line destination, or orbit center when orbitRadius_tiles > 0
|
|
float orbitRadius_tiles = 0.0f; // 0 ⇒ go straight to target; >0 ⇒ orbit target at this radius
|
|
QVector2D orbitCenterVelocity_tpt; // velocity of the orbit center (0 for a static center); the orbit
|
|
// sense is resolved relative to this so a moving target's own motion
|
|
// does not bias it
|
|
};
|