#pragma once
#include "mof/EventCondition.hpp"
#include "mof/InputReceiver.hpp"
#include "memory"

namespace mof{


    class KeyPressedEventCondition : public EventCondition{
        mof::InputReceiver::Key m_key;
        std::shared_ptr<mof::InputReceiver> m_pInputReceiver;
        bool m_oldState;
        bool m_currentState;
    public:
        KeyPressedEventCondition
        (
            mof::InputReceiver::Key key , 
            const std::shared_ptr<mof::InputReceiver>& pInputReceiver 
        );

        virtual ~KeyPressedEventCondition();
        virtual bool test();
        virtual void update();
        virtual bool isDisposable();
    };


}

