2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-02 15:07:26 +00:00

feat: dump leaderboard definitions on T6

This commit is contained in:
2024-05-19 09:30:19 +02:00
parent 4139253aac
commit 4fe852b162
8 changed files with 240 additions and 2 deletions

View File

@@ -0,0 +1,29 @@
#include "AssetDumperLeaderboardDef.h"
#include "Game/T6/LeaderboardDef/JsonLeaderboardDefWriter.h"
#include <format>
#include <ranges>
using namespace T6;
std::string AssetDumperLeaderboardDef::GetFileNameForAsset(const std::string& assetName)
{
return std::format("leaderboards/{}.json", assetName);
}
bool AssetDumperLeaderboardDef::ShouldDump(XAssetInfo<LeaderboardDef>* asset)
{
return true;
}
void AssetDumperLeaderboardDef::DumpAsset(AssetDumpingContext& context, XAssetInfo<LeaderboardDef>* asset)
{
const auto assetFile = context.OpenAssetFile(GetFileNameForAsset(asset->m_name));
if (!assetFile)
return;
DumpLeaderboardDefAsJson(*assetFile, asset->Asset());
}

View File

@@ -0,0 +1,16 @@
#pragma once
#include "Dumping/AbstractAssetDumper.h"
#include "Game/T6/T6.h"
namespace T6
{
class AssetDumperLeaderboardDef final : public AbstractAssetDumper<LeaderboardDef>
{
static std::string GetFileNameForAsset(const std::string& assetName);
protected:
_NODISCARD bool ShouldDump(XAssetInfo<LeaderboardDef>* asset) override;
void DumpAsset(AssetDumpingContext& context, XAssetInfo<LeaderboardDef>* asset) override;
};
} // namespace T6