2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-03-06 21:13:02 +00:00
Files
OpenAssetTools/src/ZoneCodeGeneratorLib/Generating/CodeGenerator.h
2026-03-05 20:30:36 +01:00

29 lines
921 B
C++

#pragma once
#include "ICodeTemplate.h"
#include "Utils/FileUtils.h"
#include "ZoneCodeGeneratorArguments.h"
#include <memory>
#include <string>
#include <unordered_map>
class CodeGenerator
{
public:
explicit CodeGenerator(const ZoneCodeGeneratorArguments* args);
bool GenerateCode(const IDataRepository* repository);
private:
void SetupTemplates();
utils::TextFileCheckDirtyResult GenerateCodeOncePerTemplate(const OncePerTemplateRenderingContext& context, ICodeTemplate* codeTemplate) const;
utils::TextFileCheckDirtyResult GenerateCodeOncePerAsset(const OncePerAssetRenderingContext& context, ICodeTemplate* codeTemplate) const;
static bool GetAssetWithName(const IDataRepository* repository, const std::string& name, StructureInformation*& asset);
const ZoneCodeGeneratorArguments* m_args;
std::unordered_map<std::string, std::unique_ptr<ICodeTemplate>> m_template_mapping;
};