-
-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathassetmanager.h
More file actions
140 lines (84 loc) · 3.1 KB
/
assetmanager.h
File metadata and controls
140 lines (84 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#ifndef ASSETMANAGER_H
#define ASSETMANAGER_H
#include <QObject>
#include <QTimer>
#include <QImage>
#include <engine.h>
#include <module.h>
#include <url.h>
#include <editor/assetconverter.h>
#include <systems/resourcesystem.h>
class ProjectSettings;
class CodeBuilder;
class BaseAssetProvider;
class ENGINE_EXPORT AssetManager : public QObject {
Q_OBJECT
public:
typedef std::map<TString, AssetConverter *> ConverterMap;
typedef std::map<TString, AssetConverterSettings *> SettingsMap;
public:
static AssetManager *instance();
static void destroy();
void init();
void rescan();
TString assetTypeName(const TString &source);
void removeResource(const TString &source);
void renameResource(const TString &oldName, const TString &newName);
void duplicateResource(const TString &source);
void makePrefab(const TString &source, const TString &target);
bool pushToImport(const TString &source);
bool import(const TString &source, const TString &target);
void registerConverter(AssetConverter *converter);
static void findFreeName(TString &name, const TString &path, const TString &suff = TString());
TString guidToPath(const TString &guid) const;
TString pathToGuid(const TString &path) const;
bool isPersistent(const TString &path) const;
QImage icon(const TString &source);
Actor *createActor(const TString &source);
std::set<TString> labels() const;
AssetConverterSettings *fetchSettings(const TString &source);
AssetConverter *getConverter(const TString &source);
StringList templates() const;
std::list<CodeBuilder *> builders() const;
bool pushToImport(AssetConverterSettings *settings);
void createFromTemplate(const TString &destination);
public slots:
void reimport();
void onBuildSuccessful(CodeBuilder *builder);
void checkImportSettings(AssetConverterSettings *settings);
signals:
void ready();
void directoryChanged(const QString &path);
void fileChanged(const QString &path);
void imported(const TString &path);
void importStarted(int count, const TString &stage);
void importFinished();
void iconUpdated(const TString &guid);
void prefabCreated(uint32_t uuid, uint32_t clone);
void buildSuccessful();
protected slots:
void onPerform();
private:
AssetManager();
~AssetManager();
static AssetManager *m_instance;
protected:
friend class BaseAssetProvider;
ConverterMap m_converters;
std::list<CodeBuilder *> m_builders;
SettingsMap m_converterSettings;
VariantMap m_paths;
std::set<TString> m_labels;
std::list<AssetConverterSettings *> m_importQueue;
BaseAssetProvider *m_assetProvider;
ResourceSystem::DictionaryMap &m_indices;
ProjectSettings *m_projectManager;
QTimer *m_timer;
protected:
void dumpBundle();
void convert(AssetConverterSettings *settings);
TString pathToLocal(const TString &source) const;
void registerAsset(const TString &source, const TString &guid, const TString &type);
TString unregisterAsset(const TString &source);
};
#endif // ASSETMANAGER_H