summaryrefslogtreecommitdiff
path: root/Runtime/Mono/MonoScriptManager.h
blob: fc05127ca974a2710f55afc6e379e49833ecb8e3 (plain)
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
#ifndef _MONOSCRIPTMANAGER_H_
#define _MONOSCRIPTMANAGER_H_ 

class MonoScript;
class MonoManager;

class MonoScriptManager
{
public:
	void RegisterRuntimeScript (MonoScript& script);
	void RegisterEditorScript (MonoScript& script);
	
	typedef UNITY_SET(kMemScriptManager, MonoScript*) AllScripts;
	typedef UNITY_SET(kMemScriptManager, PPtr<MonoScript>) Scripts;
	
	MonoScript* FindRuntimeScript (const std::string& className);
	MonoScript* FindRuntimeScript (const std::string& className, std::string const& nameSpace, std::string const& assembly);
	MonoScript* FindRuntimeScript (ScriptingClassPtr klass);
	AllScripts GetAllRuntimeScripts ();

#if UNITY_EDITOR
	AllScripts GetAllRuntimeAndEditorScripts ();
	MonoScript* FindEditorScript (MonoClass* klass);
	MonoScript* FindEditorScript (const std::string& className);
#else
	MonoScript* FindEditorScript (ScriptingClassPtr klass) { return NULL; }
#endif


private:

	Scripts                      m_RuntimeScripts;
#if UNITY_EDITOR
	Scripts                      m_EditorScripts;
#endif
	
	friend class MonoManager;
};

#endif