Files
ZombieGame-Rawr/project/SurvivalAgentPlugin.h
Bram verhulst 7d797fa207 Basic house ah
2025-05-18 12:34:25 +02:00

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();
}
}