std::shared_ptr<Terrain> Generator::terrain() const { auto terrain = std::make_shared<Terrain>(this->spec->get_terrain_meta(), true); for (auto &r : this->regions) { for (auto &tile : r.get_tiles()) { TerrainChunk *chunk = terrain->get_create_chunk(tile); chunk->get_data(tile)->terrain_id = r.terrain_id; } } return terrain; }
std::shared_ptr<Terrain> Generator::terrain() const { auto terrain = std::make_shared<Terrain>(this->spec->get_terrain_meta(), true); for (auto &r : this->regions) { for (auto &tile : r.get_tiles()) { TerrainChunk *chunk = terrain->get_create_chunk(tile); chunk->get_data(tile.get_pos_on_chunk())->terrain_id = r.terrain_id; } } // mark the 0, 0 tile. coord::tile debug_tile_pos{0, 0}; terrain->get_data(debug_tile_pos)->terrain_id = 6; return terrain; }