Refactor BlockType

This commit is contained in:
Elnu 2022-03-10 22:25:29 -08:00
parent e88ff1ebe6
commit c6308d5388
3 changed files with 97 additions and 75 deletions

View file

@ -1,17 +1,19 @@
#pragma once
#include <TileType.hpp>
#include <vector>
class BlockType {
public:
static BlockType i, j, l, o, s, t, z;
static BlockType* list[];
static BlockType* random() {
return list[rand() % 7];
}
TileType* tile_type;
std::vector<std::vector<bool>> grid;
uint width, height, starting_line;
bool rotate;
BlockType(TileType* _tile_type, const std::vector<std::vector<bool>> _grid, bool _rotate = true);
static BlockType* random();
static void init();
private:
inline static std::vector<BlockType> list = {};
inline static bool inited = false;
};