Files
dota_factory/src/lib/ecs/component/MovementIntentComponent.h

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
};