MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / generateQueue

Method generateQueue

source/game/StarWorldStorage.cpp:251–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

249}
250
251void WorldStorage::generateQueue(Maybe<size_t> sectorGenerationLevelLimit, function<bool(Sector, Sector)> sectorOrdering) {
252 try {
253 if (sectorOrdering) {
254 m_generationQueue.sort([&sectorOrdering](auto const& a, auto const& b) {
255 return sectorOrdering(a.first, b.first);
256 });
257 }
258
259 while (!m_generationQueue.empty()) {
260 if (sectorGenerationLevelLimit && *sectorGenerationLevelLimit == 0)
261 break;
262
263 auto p = generateSectorToLevel(m_generationQueue.firstKey(), SectorGenerationLevel::Complete, sectorGenerationLevelLimit.value(NPos));
264 if (p.first)
265 m_generationQueue.removeFirst();
266 if (sectorGenerationLevelLimit)
267 *sectorGenerationLevelLimit -= p.second;
268 }
269 } catch (std::exception const& e) {
270 m_db.rollback();
271 m_db.close();
272 throw WorldStorageException("WorldStorage generation failed while generating from queue", e);
273 }
274}
275
276void WorldStorage::tick(float dt, String const* worldId) {
277 try {

Callers 1

updateMethod · 0.80

Calls 7

firstKeyMethod · 0.80
rollbackMethod · 0.80
sortMethod · 0.45
emptyMethod · 0.45
valueMethod · 0.45
removeFirstMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected