#ifndef Hero_hpp
#define Hero_hpp

#include <input/Input.hpp>
#include "Object.hpp"

struct Hero : Object, Input {
  const double getRxz() const override;
  const double getRy() const override;
  Object& setActive(const bool active) override;
  Input& onKey(
    const Key key,
    const bool isDown
  ) override;
protected:
  Object& simulate(const Time dt) override;
private:
  double step = 0;
  double side = 0;
  double turn = 0;
  bool jump = false;
  const Object& render() const override;
};

#endif
