depend on factory data instead of BuildingSystem in the AI path

This commit is contained in:
2026-08-05 06:44:49 +02:00
parent 46932e4abf
commit 0408336cf9
17 changed files with 238 additions and 126 deletions

View File

@@ -1,4 +1,5 @@
#include "AiSystem.h"
#include "FactoryQueries.h"
#include <limits>
@@ -42,7 +43,7 @@ AiSystem::AiSystem(const GameConfig& config)
{
}
void AiSystem::tick(EntityAdmin& admin, const BuildingSystem& buildings,
void AiSystem::tick(EntityAdmin& admin, const FactoryState& state,
const DebrisSystem& debris)
{
TRACE();
@@ -55,7 +56,7 @@ void AiSystem::tick(EntityAdmin& admin, const BuildingSystem& buildings,
m_attackEvaluator.evaluate(admin);
m_repairEvaluator.evaluate(admin);
m_salvageScrapEvaluator.evaluate(admin, debris);
m_deliverScrapEvaluator.evaluate(admin, buildings);
m_deliverScrapEvaluator.evaluate(admin, state);
// Phase 2: pick the highest-scoring behavior per ship.
selectWinningBehaviors(admin);
@@ -68,7 +69,7 @@ void AiSystem::tick(EntityAdmin& admin, const BuildingSystem& buildings,
m_attackExecutor.execute(admin);
m_repairExecutor.execute(admin);
m_salvageScrapExecutor.execute(admin);
m_deliverScrapExecutor.execute(admin, buildings);
m_deliverScrapExecutor.execute(admin, state);
}
void AiSystem::selectWinningBehaviors(EntityAdmin& admin)