mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-09 20:24:16 +00:00
format codebase
This commit is contained in:
@@ -4,25 +4,24 @@
|
||||
#include "BrickDatabase.h"
|
||||
#include "Game.h"
|
||||
|
||||
std::vector<Brick> BrickDatabase::emptyCache {};
|
||||
std::vector<Brick> BrickDatabase::emptyCache{};
|
||||
BrickDatabase* BrickDatabase::m_Address = nullptr;
|
||||
|
||||
BrickDatabase::BrickDatabase() = default;
|
||||
BrickDatabase::~BrickDatabase() = default;
|
||||
|
||||
std::vector<Brick>& BrickDatabase::GetBricks(const std::string& lxfmlPath)
|
||||
{
|
||||
const auto cached = m_Cache.find(lxfmlPath);
|
||||
std::vector<Brick>& BrickDatabase::GetBricks(const std::string& lxfmlPath) {
|
||||
const auto cached = m_Cache.find(lxfmlPath);
|
||||
|
||||
if (cached != m_Cache.end()) {
|
||||
return cached->second;
|
||||
}
|
||||
if (cached != m_Cache.end()) {
|
||||
return cached->second;
|
||||
}
|
||||
|
||||
std::ifstream file(lxfmlPath);
|
||||
std::ifstream file(lxfmlPath);
|
||||
if (!file.good()) {
|
||||
return emptyCache;
|
||||
}
|
||||
|
||||
|
||||
std::stringstream data;
|
||||
data << file.rdbuf();
|
||||
if (data.str().empty()) {
|
||||
@@ -40,53 +39,53 @@ std::vector<Brick>& BrickDatabase::GetBricks(const std::string& lxfmlPath)
|
||||
auto* lxfml = doc->FirstChildElement("LXFML");
|
||||
auto* bricks = lxfml->FirstChildElement("Bricks");
|
||||
std::string searchTerm = "Brick";
|
||||
|
||||
|
||||
if (!bricks) {
|
||||
searchTerm = "Part";
|
||||
bricks = lxfml->FirstChildElement("Scene")->FirstChildElement("Model")->FirstChildElement("Group");
|
||||
|
||||
|
||||
if (!bricks) {
|
||||
return emptyCache;
|
||||
return emptyCache;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
auto* currentBrick = bricks->FirstChildElement(searchTerm.c_str());
|
||||
while (currentBrick != nullptr) {
|
||||
|
||||
auto* part = currentBrick->FirstChildElement("Part");
|
||||
auto* part = currentBrick->FirstChildElement("Part");
|
||||
if (part == nullptr) part = currentBrick;
|
||||
|
||||
if (part->Attribute("designID") != nullptr) {
|
||||
Brick brick { static_cast<uint32_t>(part->IntAttribute("designID")) };
|
||||
Brick brick{ static_cast<uint32_t>(part->IntAttribute("designID")) };
|
||||
|
||||
// Depends on the file, some don't specify a list but just a single material
|
||||
const auto* materialList = part->Attribute("materials");
|
||||
const auto* materialID = part->Attribute("materialID");
|
||||
// Depends on the file, some don't specify a list but just a single material
|
||||
const auto* materialList = part->Attribute("materials");
|
||||
const auto* materialID = part->Attribute("materialID");
|
||||
|
||||
if (materialList != nullptr) {
|
||||
std::string materialString(materialList);
|
||||
const auto materials = GeneralUtils::SplitString(materialString, ',');
|
||||
if (materialList != nullptr) {
|
||||
std::string materialString(materialList);
|
||||
const auto materials = GeneralUtils::SplitString(materialString, ',');
|
||||
|
||||
if (!materials.empty()) {
|
||||
brick.materialID = std::stoi(materials[0]);
|
||||
} else {
|
||||
brick.materialID = 0;
|
||||
}
|
||||
} else if (materialID != nullptr) {
|
||||
brick.materialID = std::stoi(materialID);
|
||||
} else {
|
||||
brick.materialID = 0; // This is bad, makes it so the minigame can't be played
|
||||
}
|
||||
if (!materials.empty()) {
|
||||
brick.materialID = std::stoi(materials[0]);
|
||||
} else {
|
||||
brick.materialID = 0;
|
||||
}
|
||||
} else if (materialID != nullptr) {
|
||||
brick.materialID = std::stoi(materialID);
|
||||
} else {
|
||||
brick.materialID = 0; // This is bad, makes it so the minigame can't be played
|
||||
}
|
||||
|
||||
parts.push_back(brick);
|
||||
}
|
||||
|
||||
|
||||
currentBrick = currentBrick->NextSiblingElement(searchTerm.c_str());
|
||||
}
|
||||
|
||||
m_Cache[lxfmlPath] = parts;
|
||||
m_Cache[lxfmlPath] = parts;
|
||||
|
||||
delete doc;
|
||||
|
||||
return m_Cache[lxfmlPath];
|
||||
return m_Cache[lxfmlPath];
|
||||
}
|
||||
|
Reference in New Issue
Block a user