32 lines
994 B
C++
32 lines
994 B
C++
#pragma once
|
|
#include "angelscript.h"
|
|
#include "scriptbuilder.h"
|
|
#include <string>
|
|
|
|
class ScriptEngine {
|
|
public:
|
|
ScriptEngine();
|
|
~ScriptEngine();
|
|
|
|
bool Initialize();
|
|
void Shutdown();
|
|
bool CompileScript(const std::string& filename);
|
|
void CallScriptFunction(asIScriptFunction* func, float dt = 0.0f);
|
|
void GarbageCollect();
|
|
|
|
asIScriptEngine* GetEngine() const { return engine; }
|
|
asIScriptFunction* GetUpdateFunction() const { return updateFunc; }
|
|
asIScriptFunction* GetDrawFunction() const { return drawFunc; }
|
|
|
|
private:
|
|
asIScriptEngine* engine;
|
|
asIScriptFunction* updateFunc;
|
|
asIScriptFunction* drawFunc;
|
|
asIScriptModule* currentModule;
|
|
bool hasValidScript;
|
|
|
|
static void MessageCallback(const asSMessageInfo* msg, void* param);
|
|
static int IncludeCallback(const char* include, const char* from, CScriptBuilder* builder, void* userParam);
|
|
std::string ReadFile(const std::string& filename);
|
|
void ClearCachedFunctions();
|
|
}; |