#pragma once #include #include namespace MC::World { class BlockType { public: enum Value : uint8_t { Air, Dirt, Grass, Stone, Sand, Snow, Wood, Leaves, Water, }; static constexpr uint8_t Size = Water + 1; BlockType() : m_block(Air) {} BlockType(Value block) : m_block(block) {} operator Value() const { return m_block; } static std::vector all() { return { Air, Dirt, Grass, Stone, Sand, Snow, Water, }; } private: Value m_block; }; }