#pragma once
#include "gamematrix.h"
#include "raylib.h"
#include <rlgl.h>

struct Vec3
{
    float x, y, z;
};

class gamecube
{
public:
    gamecube(const Vec3 &pos, Color col);
    void Update(float flipSpeed);
    void FlipForward();
    void FlipBackward();
    bool IsFlipped() const;
    bool IsMatched() const;
    void SetMatched(bool m);
    void Draw() const;
    Vec3 GetPosition() const;
    float GetRotationY() const;
    Color GetColor() const { return color; }

private:
    Vec3 position;
    Color color;
    bool flipped = false;
    bool matched = false;
    bool flippingForward = false;
    bool flippingBackward = false;
    float rotation = 0.0f;
};