57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#pragma once
|
|
#include "IExamPlugin.h"
|
|
#include "Exam_HelperStructs.h"
|
|
|
|
namespace BT{
|
|
class BehaviorTree;
|
|
}
|
|
|
|
class IBaseInterface;
|
|
class IExamInterface;
|
|
class Blackboard;
|
|
|
|
class SurvivalAgentPlugin final :public IExamPlugin
|
|
{
|
|
public:
|
|
SurvivalAgentPlugin() = default;
|
|
virtual ~SurvivalAgentPlugin() override;
|
|
|
|
void Initialize(IBaseInterface* pInterface, PluginInfo& info) override;
|
|
void DllInit() override;
|
|
void DllShutdown() override;
|
|
|
|
void InitGameDebugParams(GameDebugParams& params) override;
|
|
void Update_Debug(float dt) override;
|
|
|
|
SteeringPlugin_Output UpdateSteering(float dt) override;
|
|
void Render(float dt) const override;
|
|
|
|
private:
|
|
//Interface, used to request data from/perform actions with the AI Framework
|
|
IExamInterface* m_pInterface = nullptr;
|
|
|
|
Elite::Vector2 m_Target = {};
|
|
bool m_CanRun = false; //Demo purpose
|
|
bool m_GrabItem = false; //Demo purpose
|
|
bool m_UseItem = false; //Demo purpose
|
|
bool m_RemoveItem = false; //Demo purpose
|
|
bool m_DestroyItemsInFOV = false;
|
|
float m_AngSpeed = 0.f; //Demo purpose
|
|
|
|
UINT m_InventorySlot = 0;
|
|
|
|
Blackboard* CreateBlackboard();
|
|
void UpdateBlackboard(const SteeringPlugin_Output& steering);
|
|
BT::BehaviorTree* m_BehaviourTree = nullptr;
|
|
};
|
|
|
|
//ENTRY
|
|
//This is the first function that is called by the host program
|
|
//The plugin returned by this function is also the plugin used by the host program
|
|
extern "C"
|
|
{
|
|
inline __declspec (dllexport) IPluginBase* Register()
|
|
{
|
|
return new SurvivalAgentPlugin();
|
|
}
|
|
} |