#pragma once

#include "adapters/eft/runtime/EftGameContext.h"
#include "features/aimbot/IAimbotGateway.h"

namespace ta::adapters::eft::aimbot
{
class EftAimbotGateway final : public ta::features::aimbot::IAimbotGateway
{
public:
    explicit EftAimbotGateway(ta::adapters::eft::runtime::EftGameContext& context);
    void application_tick(const ta::features::aimbot::AimbotSettings& settings) override;
    void game_tick(const ta::features::aimbot::AimbotSettings& settings) override;
    void reset_session() noexcept override;

private:
    void gameworld_update(
        const ta::adapters::eft::runtime::EftGameContextSnapshot& context,
        const ta::features::aimbot::AimbotSettings& settings);

    ta::adapters::eft::runtime::EftGameContext& context_;
};
}
