depend on the registry instead of DebrisSystem in the AI path

This commit is contained in:
2026-08-05 07:25:59 +02:00
parent 60260540cd
commit 4c166bf47f
16 changed files with 50 additions and 46 deletions

View File

@@ -46,13 +46,13 @@ std::optional<int> DebrisSystem::consume(entt::entity entity)
return amount;
}
bool DebrisSystem::collectOne(entt::entity entity)
bool collectOne(EntityAdmin& admin, entt::entity entity)
{
if (!m_admin.isValid(entity) || !m_admin.hasAll<DebrisComponent>(entity))
if (!admin.isValid(entity) || !admin.hasAll<DebrisComponent>(entity))
{
return false;
}
DebrisComponent& data = m_admin.get<DebrisComponent>(entity);
DebrisComponent& data = admin.get<DebrisComponent>(entity);
if (data.amount <= 0)
{
return false;
@@ -60,18 +60,18 @@ bool DebrisSystem::collectOne(entt::entity entity)
--data.amount;
if (data.amount <= 0)
{
m_admin.destroy(entity);
admin.destroy(entity);
}
return true;
}
std::vector<DebrisInfo> DebrisSystem::getAllDebrisInfo() const
std::vector<DebrisInfo> getAllDebrisInfo(const EntityAdmin& admin)
{
std::vector<DebrisInfo> result;
m_admin.forEach<DebrisComponent>(
[&result, this](entt::entity e, const DebrisComponent& sd)
admin.forEach<DebrisComponent>(
[&result, &admin](entt::entity e, const DebrisComponent& sd)
{
result.push_back(DebrisInfo{e, m_admin.get<PositionComponent>(e).value, sd.amount});
result.push_back(DebrisInfo{e, admin.get<PositionComponent>(e).value, sd.amount});
});
return result;
}