use crate::states::play_state::tetromino::PieceShape;

// define all of our shapes & rotations
pub const O_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 0],
     [0, 0, 4, 4],
     [0, 0, 4, 4],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 0, 4, 4],
     [0, 0, 4, 4],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 0, 4, 4],
     [0, 0, 4, 4],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 0, 4, 4],
     [0, 0, 4, 4],
     [0, 0, 0, 0]],
];
pub const J_SHAPES: [PieceShape; 4] = [
    [[0, 0, 2, 0],
     [0, 0, 2, 0],
     [0, 2, 2, 0],
     [0, 0, 0, 0]],
    [[0, 2, 0, 0],
     [0, 2, 2, 2],
     [0, 0, 0, 0],
     [0, 0, 0, 0]],
    [[0, 0, 2, 2],
     [0, 0, 2, 0],
     [0, 0, 2, 0],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 2, 2, 2],
     [0, 0, 0, 2],
     [0, 0, 0, 0]],
];
pub const L_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 3],
     [0, 3, 3, 3],
     [0, 0, 0, 0],
     [0, 0, 0, 0]],
    [[0, 0, 3, 0],
     [0, 0, 3, 0],
     [0, 0, 3, 3],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 3, 3, 3],
     [0, 3, 0, 0],
     [0, 0, 0, 0]],
    [[0, 3, 3, 0],
     [0, 0, 3, 0],
     [0, 0, 3, 0],
     [0, 0, 0, 0]],
];
pub const I_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 0],
     [1, 1, 1, 1],
     [0, 0, 0, 0],
     [0, 0, 0, 0]],
    [[0, 0, 1, 0],
     [0, 0, 1, 0],
     [0, 0, 1, 0],
     [0, 0, 1, 0]],
    [[0, 0, 0, 0],
     [1, 1, 1, 1],
     [0, 0, 0, 0],
     [0, 0, 0, 0]],
    [[0, 0, 1, 0],
     [0, 0, 1, 0],
     [0, 0, 1, 0],
     [0, 0, 1, 0]],
];
pub const S_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 0],
     [0, 0, 5, 5],
     [0, 5, 5, 0],
     [0, 0, 0, 0]],
    [[0, 0, 5, 0],
     [0, 0, 5, 5],
     [0, 0, 0, 5],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 0, 5, 5],
     [0, 5, 5, 0],
     [0, 0, 0, 0]],
    [[0, 0, 5, 0],
     [0, 0, 5, 5],
     [0, 0, 0, 5],
     [0, 0, 0, 0]],
];
pub const Z_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 0],
     [0, 7, 7, 0],
     [0, 0, 7, 7],
     [0, 0, 0, 0]],
    [[0, 0, 0, 7],
     [0, 0, 7, 7],
     [0, 0, 7, 0],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 7, 7, 0],
     [0, 0, 7, 7],
     [0, 0, 0, 0]],
    [[0, 0, 0, 7],
     [0, 0, 7, 7],
     [0, 0, 7, 0],
     [0, 0, 0, 0]],
];
pub const T_SHAPES: [PieceShape; 4] = [
    [[0, 0, 0, 0],
     [0, 0, 6, 0],
     [0, 6, 6, 6],
     [0, 0, 0, 0]],
    [[0, 0, 0, 0],
     [0, 0, 6, 0],
     [0, 0, 6, 6],
     [0, 0, 6, 0]],
    [[0, 0, 0, 0],
     [0, 0, 0, 0],
     [0, 6, 6, 6],
     [0, 0, 6, 0]],
    [[0, 0, 0, 0],
     [0, 0, 6, 0],
     [0, 6, 6, 0],
     [0, 0, 6, 0]],
];
