Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ImporterManager.hpp
1#pragma once
2
3#include <Common/HashedString.hpp>
4#include <Common/Editor/Importer.hpp>
5#include <Editor/AssetRegistry.hpp>
6#include <EngineCore/Assets/AssetManager.hpp>
7
8#include <filesystem>
9#include <map>
10#include <string>
11
12namespace Grindstone::Importers {
14 public:
15 void Initialize();
16 bool Import(const std::filesystem::path& path);
17 void MapExtensionToImporterType(const std::string& extension, Grindstone::HashedString importerType);
18 void AddImporterFactory(Grindstone::HashedString importerType, Grindstone::Editor::ImporterData importerData);
19 void UnmapExtensionToImporterType(const std::string& extension);
20 void RemoveImporterFactory(Grindstone::HashedString importerType);
21
22 Grindstone::Editor::ImporterVersion GetImporterVersion(Grindstone::HashedString importerType) const;
23 Grindstone::Editor::ImporterVersion GetImporterVersionByExtension(const std::string& extension) const;
24 Grindstone::Editor::ImporterVersion GetImporterVersionByPath(const std::filesystem::path& path) const;
25
26 bool HasImporter(Grindstone::HashedString importerType) const;
27 bool HasImporterForExtension(const std::string& extension) const;
28 bool HasImporterForPath(const std::filesystem::path& path) const;
29
30 Grindstone::Editor::ImporterData GetImporterFactoryByName(Grindstone::HashedString importerType) const;
31 Grindstone::Editor::ImporterData GetImporterFactoryByExtension(const std::string& extension) const;
32 Grindstone::Editor::ImporterData GetImporterFactoryByPath(const std::filesystem::path& path) const;
33 private:
34 std::map<std::string, Grindstone::HashedString> extensionsToImporterFactories;
35 std::map<Grindstone::HashedString, Grindstone::Editor::ImporterData> importerFactoriesMap;
36 };
37}
Definition HashedString.hpp:9
Definition ImporterManager.hpp:13
Definition Importer.hpp:16