#pragma once #include #include namespace MC::World { class BiomeType { public: enum Value : uint8_t { Plains, Forest, Alpine, Desert, Jungle, Beach, River, Ocean, }; static constexpr uint8_t Size = Ocean + 1; BiomeType() : m_biome(Plains) {} BiomeType(const Value biome) : m_biome(biome) {} operator Value() const { return m_biome; } static std::vector all() { return { Plains, Forest, Alpine, Desert, Jungle, Beach, River, Ocean }; } static std::vector all_ground() { return { Plains, Forest, Alpine, Desert, Jungle, Beach }; } private: Value m_biome; }; }