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

Method DungeonDefinition

source/game/StarDungeonGenerator.cpp:1340–1372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1338}
1339
1340DungeonDefinition::DungeonDefinition(JsonObject const& definition, String const& directory) {
1341 m_directory = directory;
1342 m_metadata = definition.get("metadata").toObject();
1343 m_name = m_metadata.get("name").toString();
1344 m_displayName = m_metadata.contains("displayName") ? m_metadata.get("displayName").toString() : "";
1345 m_species = m_metadata.get("species").toString();
1346 m_isProtected = m_metadata.contains("protected") ? m_metadata.get("protected").toBool() : false;
1347 if (m_metadata.contains("rules"))
1348 m_rules = Dungeon::Rule::readRules(m_metadata.get("rules"));
1349
1350 m_maxRadius = m_metadata.value("maxRadius", 100).toInt();
1351 m_maxParts = m_metadata.value("maxParts", 100).toInt();
1352 m_extendSurfaceFreeSpace = m_metadata.value("extendSurfaceFreeSpace", 0).toInt();
1353
1354 m_anchors = jsonToStringList(m_metadata.get("anchor"));
1355
1356 auto tileset = definition.maybe("tiles").apply([](Json const& tileset) {
1357 return make_shared<const Dungeon::ImageTileset>(tileset);
1358 });
1359
1360 for (auto const& partsDefMap : definition.get("parts").iterateArray()) {
1361 Dungeon::PartConstPtr part = parsePart(this, partsDefMap, tileset);
1362 if (m_parts.contains(part->name()))
1363 throw DungeonException::format("Duplicate dungeon part name: {}", part->name());
1364 m_parts.insert(part->name(), part);
1365 }
1366
1367 if (m_metadata.contains("gravity"))
1368 m_gravity = m_metadata.get("gravity").toFloat();
1369
1370 if (m_metadata.contains("breathable"))
1371 m_breathable = m_metadata.get("breathable").toBool();
1372}
1373
1374JsonObject DungeonDefinition::metadata() const {
1375 return m_metadata;

Callers

nothing calls this directly

Calls 15

jsonToStringListFunction · 0.85
parsePartFunction · 0.85
toObjectMethod · 0.80
toBoolMethod · 0.80
toIntMethod · 0.80
iterateArrayMethod · 0.80
toFloatMethod · 0.80
formatFunction · 0.50
getMethod · 0.45
toStringMethod · 0.45
containsMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected