#pragma once #include "IBaseInterface.h" class IExamInterface : public IBaseInterface { public: IExamInterface(); ~IExamInterface(); //WORLD & ENTITIES virtual WorldInfo World_GetInfo() const = 0; virtual StatisticsInfo World_GetStats() const = 0; virtual std::vector GetHousesInFOV() const = 0; virtual std::vector GetEnemiesInFOV() const = 0; virtual std::vector GetPurgeZonesInFOV() const = 0; virtual std::vector GetItemsInFOV() const = 0; virtual const FOVStats& FOV_GetStats() const = 0; virtual AgentInfo Agent_GetInfo() const = 0; //NAVMESH virtual Elite::Vector2 NavMesh_GetClosestPathPoint(Elite::Vector2 goal) const = 0; //INVENTORY virtual bool Inventory_AddItem(UINT slotId, ItemInfo item) = 0; virtual bool Inventory_UseItem(UINT slotId) = 0; virtual bool Inventory_RemoveItem(UINT slotId) = 0; virtual bool Inventory_GetItem(UINT slotId, ItemInfo& item) = 0; virtual UINT Inventory_GetCapacity() const = 0; //ITEMS virtual bool GrabNearestItem(ItemInfo& item) = 0; virtual bool GrabItem(const ItemInfo& item) = 0; virtual bool DestroyItem(const ItemInfo& item) = 0; //DEBUG virtual Elite::Vector2 Debug_ConvertScreenToWorld(Elite::Vector2 screenPos) const = 0; virtual Elite::Vector2 Debug_ConvertWorldToScreen(Elite::Vector2 worldPos) const = 0; //INPUT virtual bool Input_IsKeyboardKeyDown(Elite::InputScancode key) const = 0; virtual bool Input_IsKeyboardKeyUp(Elite::InputScancode key) const = 0; virtual bool Input_IsMouseButtonDown(Elite::InputMouseButton button) const = 0; virtual bool Input_IsMouseButtonUp(Elite::InputMouseButton button) const = 0; virtual Elite::MouseData Input_GetMouseData(Elite::InputType type, Elite::InputMouseButton button = Elite::InputMouseButton(0)) const = 0; //EVENT virtual void RequestShutdown() const = 0; };