#pragma once #include "core/inputtype.h" #include "core/updatedata.h" #include class Game : public sf::Drawable { public: virtual ~Game() = default; virtual void run() = 0; virtual void input(PlayerInput&& inputdata) = 0; virtual void update(UpdateData&& updatedata) = 0; // Separate CORE from SFML in the future virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const = 0; };