mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-03 08:15:35 +00:00
55 lines
2.2 KiB
C++
55 lines
2.2 KiB
C++
// BeamMP, the BeamNG.drive multiplayer mod.
|
|
// Copyright (C) 2024 BeamMP Ltd., BeamMP team and contributors.
|
|
//
|
|
// BeamMP Ltd. can be contacted by electronic mail via contact@beammp.com.
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as published
|
|
// by the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
#include "TResourceManager.h"
|
|
|
|
#include <algorithm>
|
|
#include <filesystem>
|
|
|
|
namespace fs = std::filesystem;
|
|
|
|
TResourceManager::TResourceManager() {
|
|
Application::SetSubsystemStatus("ResourceManager", Application::Status::Starting);
|
|
std::string Path = Application::Settings.Resource + "/Client";
|
|
if (!fs::exists(Path))
|
|
fs::create_directories(Path);
|
|
for (const auto& entry : fs::directory_iterator(Path)) {
|
|
std::string File(entry.path().string());
|
|
if (auto pos = File.find(".zip"); pos != std::string::npos) {
|
|
if (File.length() - pos == 4) {
|
|
std::replace(File.begin(), File.end(), '\\', '/');
|
|
mFileList += File + ';';
|
|
if (auto i = File.find_last_of('/'); i != std::string::npos) {
|
|
++i;
|
|
File = File.substr(i, pos - i);
|
|
}
|
|
mTrimmedList += "/" + fs::path(File).filename().string() + ';';
|
|
mFileSizes += std::to_string(size_t(fs::file_size(entry.path()))) + ';';
|
|
mMaxModSize += size_t(fs::file_size(entry.path()));
|
|
mModsLoaded++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (mModsLoaded) {
|
|
beammp_info("Loaded " + std::to_string(mModsLoaded) + " Mods");
|
|
}
|
|
|
|
Application::SetSubsystemStatus("ResourceManager", Application::Status::Good);
|
|
}
|