#ifndef BLOCKREGISTRY_H #define BLOCKREGISTRY_H #include "common/block/Block.h" #include "common/block/BlockTypes.h" #include "utils/HashMap.h" #include "utils/List.h" class BlockRegistry final { List blocks; HashMap registryToId; public: BlockRegistry(); void forEach(void (*f)(const Block&)) const; const Block& getBlock(const BlockName& registry) const; const Block& getBlock(BlockId id) const; private: void add(const char* registry); }; #endif