Fianlly
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "Blackboard.h"
|
||||
#include "Thinker.h"
|
||||
#include "BigThink.h"
|
||||
#include "WorldExplorationGrid.h"
|
||||
|
||||
//Called only once, during initialization
|
||||
void SurvivalAgentPlugin::Initialize(IBaseInterface* pInterface, PluginInfo& info)
|
||||
@@ -35,6 +36,16 @@ void SurvivalAgentPlugin::Initialize(IBaseInterface* pInterface, PluginInfo& inf
|
||||
BigThink::PickUpHandling(),
|
||||
BigThink::HouseHandling()
|
||||
}));
|
||||
|
||||
Thinker* thinkerPtr{};
|
||||
blackboardPtr->GetData("Brain", thinkerPtr);
|
||||
|
||||
const WorldInfo& worldInfo = m_pInterface->World_GetInfo();
|
||||
thinkerPtr->m_ExplorationGrid.SetWorldInfo(worldInfo);
|
||||
|
||||
m_pExplorationGrid = &m_Thinker->m_ExplorationGrid;
|
||||
m_pExplorationGrid->SetInterfacePtr(m_pInterface);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -48,8 +59,9 @@ Blackboard* SurvivalAgentPlugin::CreateBlackboard() {
|
||||
blackboardPtr->AddData("Steering", SteeringPlugin_Output{});
|
||||
blackboardPtr->AddData("Target", m_Target);
|
||||
blackboardPtr->AddData("Spin", false);
|
||||
|
||||
blackboardPtr->AddData("FailSafe", std::chrono::steady_clock::time_point{});
|
||||
blackboardPtr->AddData("MaxFailSafe", 2.f);
|
||||
blackboardPtr->AddData("MaxFailSafe", 5.f);
|
||||
blackboardPtr->AddData("FailSafeDoOnce", false);
|
||||
|
||||
blackboardPtr->AddData("TargetZombie", EnemyInfo{});
|
||||
@@ -69,10 +81,17 @@ Blackboard* SurvivalAgentPlugin::CreateBlackboard() {
|
||||
blackboardPtr->AddData("TimerBeforeLeavingDoOnce", false);
|
||||
blackboardPtr->AddData("MaxTimeBeforeLeaving", 3.f);
|
||||
|
||||
blackboardPtr->AddData("MaxTimeNoHouse", 5.f);
|
||||
blackboardPtr->AddData("MaxTimeNoHouse", 30.f);
|
||||
blackboardPtr->AddData("TimerNoHouse", std::chrono::steady_clock::time_point{});
|
||||
blackboardPtr->AddData("TimerNoHouseDoOnce", false);
|
||||
|
||||
blackboardPtr->AddData("TimerStuckTimer", std::chrono::steady_clock::time_point{});
|
||||
blackboardPtr->AddData("MaxStuckTimer", 5.f);
|
||||
blackboardPtr->AddData("TimerStuckTimerDoOnce", false);
|
||||
|
||||
blackboardPtr->AddData("LastPosition", m_pInterface->Agent_GetInfo().Position);
|
||||
blackboardPtr->AddData("LastMovementTime", std::chrono::steady_clock::now());
|
||||
|
||||
return blackboardPtr;
|
||||
}
|
||||
|
||||
@@ -193,6 +212,8 @@ SteeringPlugin_Output SurvivalAgentPlugin::UpdateSteering(float dt)
|
||||
|
||||
UpdateBlackboard(steering);
|
||||
|
||||
m_Thinker->m_ExplorationGrid.Update(m_pInterface->Agent_GetInfo(), m_pInterface->GetHousesInFOV());
|
||||
|
||||
m_BehaviourTree->Update();
|
||||
|
||||
m_BehaviourTree->GetBlackboard()->GetData("Steering", steering);
|
||||
@@ -200,7 +221,7 @@ SteeringPlugin_Output SurvivalAgentPlugin::UpdateSteering(float dt)
|
||||
|
||||
if (m_pInterface->Agent_GetInfo().Stamina >= 10 || m_Running) {
|
||||
m_Running = true;
|
||||
steering.RunMode = true;
|
||||
steering.RunMode = false;
|
||||
}
|
||||
|
||||
if (m_pInterface->Agent_GetInfo().Stamina <= 0.1f) {
|
||||
@@ -222,6 +243,8 @@ SteeringPlugin_Output SurvivalAgentPlugin::UpdateSteering(float dt)
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << m_pInterface->Agent_GetInfo().Position.x << " " << m_pInterface->Agent_GetInfo().Position.y << std::endl;
|
||||
|
||||
return steering;
|
||||
|
||||
|
||||
@@ -239,6 +262,8 @@ void SurvivalAgentPlugin::Render(float dt) const
|
||||
m_pInterface->Draw_Circle(m_pInterface->Agent_GetInfo().Position, 15.f, { 0.f, 1.f, 1.f });
|
||||
m_pInterface->Draw_Circle(m_pInterface->Agent_GetInfo().Position, 8.f, { 0.f, 1.f, 1.f });
|
||||
|
||||
|
||||
m_pExplorationGrid->RenderDebug();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user