/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Core/Scripting/ScriptClassResource.h
37 строк
2 KB
Jan Krassnigg
Improved code documentation: Core, Texture, Utilities (#1666)
23 сен 2025, 09:56
Не верифицирован
23 сен 2025, 09:56
a9f6901
Код
Авторство
О чём код?
#pragma once #include <Core/ResourceManager/Resource.h> #include <Core/Scripting/ScriptCoroutine.h> #include <Core/Scripting/ScriptRTTI.h> class ezWorld; using ezScriptClassResourceHandle = ezTypedResourceHandle<class ezScriptClassResource>; /// \brief Resource representing a script class with its type information and instantiation capabilities. /// /// Base class for script resources that define class types for scripting languages. Manages /// script type creation, instantiation, and coroutine type handling. Derived classes implement /// language-specific instantiation logic. class EZ_CORE_DLL ezScriptClassResource : public ezResource { EZ_ADD_DYNAMIC_REFLECTION(ezScriptClassResource, ezResource); EZ_RESOURCE_DECLARE_COMMON_CODE(ezScriptClassResource); public: ezScriptClassResource(); ~ezScriptClassResource(); const ezSharedPtr<ezScriptRTTI>& GetType() const { return m_pType; } virtual ezUniquePtr<ezScriptInstance> Instantiate(ezReflectedClass& inout_owner, ezWorld* pWorld) const = 0; protected: ezSharedPtr<ezScriptRTTI> CreateScriptType(ezStringView sName, const ezRTTI* pBaseType, ezScriptRTTI::FunctionList&& functions, ezScriptRTTI::MessageHandlerList&& messageHandlers); void DeleteScriptType(); ezSharedPtr<ezScriptCoroutineRTTI> CreateScriptCoroutineType(ezStringView sScriptClassName, ezStringView sFunctionName, ezUniquePtr<ezRTTIAllocator>&& pAllocator); void DeleteAllScriptCoroutineTypes(); ezSharedPtr<ezScriptRTTI> m_pType; ezDynamicArray<ezSharedPtr<ezScriptCoroutineRTTI>> m_CoroutineTypes; };