export interface TetrominoData {
  matrix: {
    w: number;
    h: number;
    dx: number;
    dy: number;
    data: [number, number, number][][];
  };
  preview: {
    w: number;
    h: number;
    data: [number, number, number][];
  };
  xweight?: number;
}

export const tetrominoes: { [k: string]: TetrominoData } = {
  i1: {
    matrix: {
      w: 1,
      h: 1,
      dx: 0,
      dy: 1,
      data: [[[0, 0, 255]], [[0, 0, 255]], [[0, 0, 255]], [[0, 0, 255]]]
    },
    preview: { w: 1, h: 1, data: [[0, 0, 255]] }
  },
  i2: {
    matrix: {
      w: 2,
      h: 2,
      dx: 0,
      dy: 1,
      data: [
        [
          [0, 0, 199],
          [1, 0, 124]
        ],
        [
          [1, 0, 241],
          [1, 1, 31]
        ],
        [
          [1, 1, 124],
          [0, 1, 199]
        ],
        [
          [0, 1, 31],
          [0, 0, 241]
        ]
      ]
    },
    preview: {
      w: 2,
      h: 1,
      data: [
        [0, 0, 199],
        [1, 0, 124]
      ]
    }
  },
  i3: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [0, 1, 199],
          [1, 1, 68],
          [2, 1, 124]
        ],
        [
          [1, 0, 241],
          [1, 1, 17],
          [1, 2, 31]
        ],
        [
          [2, 1, 124],
          [1, 1, 68],
          [0, 1, 199]
        ],
        [
          [1, 2, 31],
          [1, 1, 17],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 1,
      data: [
        [0, 0, 199],
        [1, 0, 68],
        [2, 0, 124]
      ]
    }
  },
  l3: {
    matrix: {
      w: 2,
      h: 2,
      dx: 0,
      dy: 1,
      data: [
        [
          [0, 0, 241],
          [0, 1, 39],
          [1, 1, 124]
        ],
        [
          [1, 0, 124],
          [0, 0, 201],
          [0, 1, 31]
        ],
        [
          [1, 1, 31],
          [1, 0, 114],
          [0, 0, 199]
        ],
        [
          [0, 1, 199],
          [1, 1, 156],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 2,
      h: 2,
      data: [
        [0, 0, 241],
        [0, 1, 39],
        [1, 1, 124]
      ]
    }
  },
  i5: {
    matrix: {
      w: 5,
      h: 5,
      dx: 2,
      dy: 2,
      data: [
        [
          [0, 2, 199],
          [1, 2, 68],
          [2, 2, 68],
          [3, 2, 68],
          [4, 2, 124]
        ],
        [
          [2, 0, 241],
          [2, 1, 17],
          [2, 2, 17],
          [2, 3, 17],
          [2, 4, 31]
        ],
        [
          [4, 2, 124],
          [3, 2, 68],
          [2, 2, 68],
          [1, 2, 68],
          [0, 2, 199]
        ],
        [
          [2, 4, 31],
          [2, 3, 17],
          [2, 2, 17],
          [2, 1, 17],
          [2, 0, 241]
        ]
      ]
    },
    preview: {
      w: 5,
      h: 1,
      data: [
        [0, 0, 199],
        [1, 0, 68],
        [2, 0, 68],
        [3, 0, 68],
        [4, 0, 124]
      ]
    }
  },
  z: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [0, 0, 199],
          [1, 0, 114],
          [1, 1, 39],
          [2, 1, 124]
        ],
        [
          [2, 0, 241],
          [2, 1, 156],
          [1, 1, 201],
          [1, 2, 31]
        ],
        [
          [2, 2, 124],
          [1, 2, 39],
          [1, 1, 114],
          [0, 1, 199]
        ],
        [
          [0, 2, 31],
          [0, 1, 201],
          [1, 1, 156],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 2,
      data: [
        [0, 0, 199],
        [1, 0, 114],
        [1, 1, 39],
        [2, 1, 124]
      ]
    }
  },
  l: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [2, 0, 241],
          [0, 1, 199],
          [1, 1, 68],
          [2, 1, 156]
        ],
        [
          [2, 2, 124],
          [1, 0, 241],
          [1, 1, 17],
          [1, 2, 39]
        ],
        [
          [0, 2, 31],
          [2, 1, 124],
          [1, 1, 68],
          [0, 1, 201]
        ],
        [
          [0, 0, 199],
          [1, 2, 31],
          [1, 1, 17],
          [1, 0, 114]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 2,
      data: [
        [2, 0, 241],
        [0, 1, 199],
        [1, 1, 68],
        [2, 1, 156]
      ]
    }
  },
  o: {
    matrix: {
      w: 2,
      h: 2,
      dx: 0,
      dy: 1,
      data: [
        [
          [0, 0, 193],
          [1, 0, 112],
          [0, 1, 7],
          [1, 1, 28]
        ],
        [
          [1, 0, 112],
          [1, 1, 28],
          [0, 0, 193],
          [0, 1, 7]
        ],
        [
          [1, 1, 28],
          [0, 1, 7],
          [1, 0, 112],
          [0, 0, 193]
        ],
        [
          [0, 1, 7],
          [0, 0, 193],
          [1, 1, 28],
          [1, 0, 112]
        ]
      ]
    },
    preview: {
      w: 2,
      h: 2,
      data: [
        [0, 0, 193],
        [1, 0, 112],
        [0, 1, 7],
        [1, 1, 28]
      ]
    }
  },
  s: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [1, 0, 201],
          [2, 0, 124],
          [0, 1, 199],
          [1, 1, 156]
        ],
        [
          [2, 1, 114],
          [2, 2, 31],
          [1, 0, 241],
          [1, 1, 39]
        ],
        [
          [1, 2, 156],
          [0, 2, 199],
          [2, 1, 124],
          [1, 1, 201]
        ],
        [
          [0, 1, 39],
          [0, 0, 241],
          [1, 2, 31],
          [1, 1, 114]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 2,
      data: [
        [1, 0, 201],
        [2, 0, 124],
        [0, 1, 199],
        [1, 1, 156]
      ]
    }
  },
  i: {
    matrix: {
      w: 4,
      h: 4,
      dx: 1,
      dy: 1,
      data: [
        [
          [0, 1, 199],
          [1, 1, 68],
          [2, 1, 68],
          [3, 1, 124]
        ],
        [
          [2, 0, 241],
          [2, 1, 17],
          [2, 2, 17],
          [2, 3, 31]
        ],
        [
          [3, 2, 124],
          [2, 2, 68],
          [1, 2, 68],
          [0, 2, 199]
        ],
        [
          [1, 3, 31],
          [1, 2, 17],
          [1, 1, 17],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 4,
      h: 1,
      data: [
        [0, 0, 199],
        [1, 0, 68],
        [2, 0, 68],
        [3, 0, 124]
      ]
    }
  },
  j: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [0, 0, 241],
          [0, 1, 39],
          [1, 1, 68],
          [2, 1, 124]
        ],
        [
          [2, 0, 124],
          [1, 0, 201],
          [1, 1, 17],
          [1, 2, 31]
        ],
        [
          [2, 2, 31],
          [2, 1, 114],
          [1, 1, 68],
          [0, 1, 199]
        ],
        [
          [0, 2, 199],
          [1, 2, 156],
          [1, 1, 17],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 2,
      data: [
        [0, 0, 241],
        [0, 1, 39],
        [1, 1, 68],
        [2, 1, 124]
      ]
    }
  },
  t: {
    matrix: {
      w: 3,
      h: 3,
      dx: 1,
      dy: 1,
      data: [
        [
          [1, 0, 241],
          [0, 1, 199],
          [1, 1, 164],
          [2, 1, 124]
        ],
        [
          [2, 1, 124],
          [1, 0, 241],
          [1, 1, 41],
          [1, 2, 31]
        ],
        [
          [1, 2, 31],
          [2, 1, 124],
          [1, 1, 74],
          [0, 1, 199]
        ],
        [
          [0, 1, 199],
          [1, 2, 31],
          [1, 1, 146],
          [1, 0, 241]
        ]
      ]
    },
    preview: {
      w: 3,
      h: 2,
      data: [
        [1, 0, 241],
        [0, 1, 199],
        [1, 1, 164],
        [2, 1, 124]
      ]
    }
  },
  oo: {
    matrix: {
      w: 4,
      h: 4,
      dx: 1,
      dy: 1,
      data: [
        [
          [0, 1, 193],
          [1, 1, 64],
          [2, 1, 64],
          [3, 1, 112],
          [0, 2, 7],
          [1, 2, 4],
          [2, 2, 4],
          [3, 2, 28]
        ],
        [
          [2, 0, 112],
          [2, 1, 16],
          [2, 2, 16],
          [2, 3, 28],
          [1, 0, 193],
          [1, 1, 1],
          [1, 2, 1],
          [1, 3, 7]
        ],
        [
          [3, 2, 28],
          [2, 2, 68],
          [1, 2, 68],
          [0, 2, 7],
          [3, 1, 112],
          [2, 1, 64],
          [1, 1, 64],
          [0, 1, 193]
        ],
        [
          [1, 3, 7],
          [1, 2, 1],
          [1, 1, 1],
          [1, 0, 193],
          [2, 3, 28],
          [2, 2, 16],
          [2, 1, 16],
          [2, 0, 112]
        ]
      ]
    },
    preview: {
      w: 4,
      h: 2,
      data: [
        [0, 0, 193],
        [1, 0, 64],
        [2, 0, 64],
        [3, 0, 112],
        [0, 1, 7],
        [1, 1, 4],
        [2, 1, 4],
        [3, 1, 28]
      ]
    },
    xweight: 1
  }
};
