//
// Created by jovian on 18/07/17.
//

#ifndef TINYSHOOTER_CONTROLLER_H
#define TINYSHOOTER_CONTROLLER_H

// todo Use HardContacts with scopes like Visuals in Renderer

#include <box2d/box2d.h>

class Controller {
public:
    Controller();

    virtual void refresh() = 0; // Read input and modify behaviour

    bool isBoosting() const;
    bool isFiring() const;
    bool isShielded() const;
    const b2Vec2 &getVisor() const;
    float getAcceleration() const;
    float getTorque() const;

    float getZoomScale() const;

protected:
    bool m_boost;
    bool m_firing;
    bool m_shield;
    b2Vec2 m_visor;
    float m_acceleration;
    float m_torque;

    float m_zoomScale;
};


#endif //TINYSHOOTER_CONTROLLER_H