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

Method CodexDatabase

source/game/StarCodexDatabase.cpp:8–29  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6namespace Star {
7
8CodexDatabase::CodexDatabase() {
9 auto assets = Root::singleton().assets();
10 auto& files = assets->scanExtension("codex");
11 auto codexConfig = assets->json("/codex.config");
12 assets->queueJsons(files);
13 for (auto& file : files) {
14 try {
15 auto codexJson = assets->json(file);
16 codexJson = codexJson.set("icon",
17 AssetPath::relativeTo(AssetPath::directory(file), codexJson.getString("icon", codexConfig.getString("defaultIcon"))));
18
19 auto codex = make_shared<Codex>(codexJson, file);
20
21 if (m_codexes.contains(codex->id()))
22 throw CodexDatabaseException::format("Duplicate codex named '{}', config file '{}'", codex->id(), file);
23
24 m_codexes[codex->id()] = codex;
25 } catch (std::exception const& e) {
26 throw CodexDatabaseException(strf("Error reading codex config {}", file), e);
27 }
28 }
29}
30
31StringMap<CodexConstPtr> CodexDatabase::codexes() const {
32 return m_codexes;

Callers

nothing calls this directly

Calls 10

singletonClass · 0.85
strfFunction · 0.85
assetsMethod · 0.80
jsonMethod · 0.80
queueJsonsMethod · 0.80
getStringMethod · 0.80
formatFunction · 0.50
setMethod · 0.45
containsMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected