1234567891011121314151617181920212223242526272829 |
- #include "common/block/BlockRegistry.h"
- BlockRegistry::BlockRegistry() {
- add("air", BlockBuilder().test());
- add("stone", BlockBuilder().test());
- add("dirt", BlockBuilder().test());
- add("grass", BlockBuilder().test());
- }
- void BlockRegistry::add(const char* registry, const BlockBuilder& builder) {
- u16 id = blocks.size();
- blocks.emplace_back(id, registry, builder);
- registryToId[registry] = id;
- }
- const Block& BlockRegistry::getBlock(const HashedString& registry) const {
- auto iter = registryToId.find(registry);
- if(iter == registryToId.end()) {
- return blocks[0];
- }
- return getBlock(iter->second);
- }
- const Block& BlockRegistry::getBlock(u16 id) const {
- if(id < blocks.size()) {
- return blocks[id];
- }
- return blocks[0];
- }
|