#pragma once

#include <SDL3/SDL.h>

namespace Game {
    class Input {
        public:
            Input() = delete;

            static void update();
            static bool isKeyPressed(SDL_Scancode key);
            static bool isKeyJustPressed(SDL_Scancode key);
            static bool isKeyJustReleased(SDL_Scancode key);
            static bool isMouseButtonPressed(Uint8 button);
            static bool isMouseButtonJustPressed(Uint8 button);
            static bool isMouseButtonJustReleased(Uint8 button);
            static float getMouseX();
            static float getMouseY();
        private:
            static const bool* mCurrentKeyStates;
            static const bool* mPreviousKeyStates;
            static int mNumKeys;
            static SDL_MouseButtonFlags mCurrentMouseButtonStates;
            static SDL_MouseButtonFlags mPreviousMouseButtonStates;
            static float mMouseX;
            static float mMouseY;
    };
}