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

Method AiDatabase

source/game/StarAiDatabase.cpp:9–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7namespace Star {
8
9AiDatabase::AiDatabase() {
10 auto assets = Root::singleton().assets();
11 auto config = assets->json("/ai/ai.config");
12
13 auto& missions = assets->scanExtension("aimission");
14 assets->queueJsons(missions);
15
16 for (auto const& file : missions) {
17 if (auto config = assets->json(file)) {
18 auto mission = parseMission(config);
19 m_missions[mission.missionName] = mission;
20 }
21 }
22
23 for (auto const& speciesPair : config.get("species").iterateObject())
24 m_speciesParameters[speciesPair.first] = parseSpeciesParameters(speciesPair.second);
25
26 for (auto const& p : config.get("shipStatus").iterateObject())
27 m_shipStatus[lexicalCast<unsigned>(p.first)] = parseSpeech(p.second);
28
29 m_noMissionsSpeech = parseSpeech(config.get("noMissionsSpeech"));
30 m_noCrewSpeech = parseSpeech(config.get("noCrewSpeech"));
31
32 m_animationConfig.charactersPerSecond = config.getFloat("charactersPerSecond");
33 m_animationConfig.defaultAnimation = config.getString("defaultAnimation");
34 m_animationConfig.staticAnimation = Animation("/ai/ai.config:staticAnimation");
35 m_animationConfig.staticOpacity = config.getFloat("staticOpacity");
36 m_animationConfig.scanlineAnimation = Animation("/ai/ai.config:scanlineAnimation");
37 m_animationConfig.scanlineOpacity = config.getFloat("scanlineOpacity");
38
39 for (auto const& pair : config.get("aiAnimations").iterateObject())
40 m_animationConfig.aiAnimations[pair.first] = Animation(pair.second, "/ai/");
41}
42
43AiMission AiDatabase::mission(String const& missionName) const {
44 return m_missions.get(missionName);

Callers

nothing calls this directly

Calls 9

singletonClass · 0.85
AnimationClass · 0.85
assetsMethod · 0.80
jsonMethod · 0.80
queueJsonsMethod · 0.80
iterateObjectMethod · 0.80
getFloatMethod · 0.80
getStringMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected