allow custom orbit rotations directions

This commit is contained in:
2026-06-17 20:36:11 +02:00
parent 1324a320e2
commit 0cf3d64983
8 changed files with 139 additions and 56 deletions

View File

@@ -3,8 +3,6 @@
#include "BehaviorKind.h"
#include "EntityAdmin.h"
#include "MovementIntentComponent.h"
#include "OrbitMath.h"
#include "PositionComponent.h"
#include "SalvageScrapBehavior.h"
#include "SelectedBehaviorComponent.h"
#include "tracing.h"
@@ -12,16 +10,15 @@
void SalvageScrapExecutor::execute(EntityAdmin& admin)
{
TRACE();
admin.forEach<SalvageScrapBehavior, SelectedBehaviorComponent, PositionComponent,
admin.forEach<SalvageScrapBehavior, SelectedBehaviorComponent,
MovementIntentComponent>(
[](entt::entity /*e*/, const SalvageScrapBehavior& salvage,
const SelectedBehaviorComponent& selected, const PositionComponent& pos,
const SelectedBehaviorComponent& selected,
MovementIntentComponent& intent)
{
if (selected.winner != BehaviorKind::SalvageScrap) { return; }
if (!salvage.scrapTarget) { return; }
const QVector2D dest = OrbitMath::computeOrbitDestination(
pos.value, *salvage.scrapTarget, salvage.orbitRadius_tiles);
intent = MovementIntentComponent{true, dest};
intent = MovementIntentComponent{true, *salvage.scrapTarget,
salvage.orbitRadius_tiles};
});
}