#pragma once #include "DeerCore/Log.h" #include "DeerCore/ScriptSystem.h" #include "angelscript.h" namespace Deer { namespace ScriptSystem { extern asIScriptEngine* scriptEngine; } Scope ScriptSystem::createScriptEnvironment(const char* baseTypeName) { asITypeInfo* baseType = scriptEngine->GetTypeInfoByDecl(baseTypeName); if (!baseType) { DEER_CORE_ERROR("Base type {} not found", baseTypeName); return nullptr; } if (baseType->GetModule()) { DEER_CORE_ERROR("Base type {} must be a engine type", baseTypeName); return nullptr; } Scope environment = MakeScope(baseType); return environment; } ScriptEnvironment::ScriptEnvironment(asITypeInfo* _baseType) : baseType(_baseType), baseTypeName(_baseType->GetName()) { ScriptSystem::scriptEngine->GetTypedefCount(); } } // namespace Deer