Lua/LuaClass: Add Reset method and default constructor

This commit is contained in:
Lynix 2016-10-19 22:48:46 +02:00
parent f3e1b19326
commit baf4cb0e16
2 changed files with 20 additions and 3 deletions

View File

@ -34,6 +34,7 @@ namespace Nz
using StaticIndexFunc = std::function<bool(LuaInstance& lua)>; using StaticIndexFunc = std::function<bool(LuaInstance& lua)>;
using StaticFunc = std::function<int(LuaInstance& lua)>; using StaticFunc = std::function<int(LuaInstance& lua)>;
LuaClass() = default;
LuaClass(const String& name); LuaClass(const String& name);
void BindDefaultConstructor(); void BindDefaultConstructor();
@ -50,6 +51,9 @@ namespace Nz
template<class P> void Inherit(LuaClass<P>& parent); template<class P> void Inherit(LuaClass<P>& parent);
template<class P> void Inherit(LuaClass<P>& parent, ConvertToParent<P> convertFunc); template<class P> void Inherit(LuaClass<P>& parent, ConvertToParent<P> convertFunc);
void Reset();
void Reset(const String& name);
void Register(LuaInstance& lua); void Register(LuaInstance& lua);
void PushGlobalTable(LuaInstance& lua); void PushGlobalTable(LuaInstance& lua);

View File

@ -10,10 +10,9 @@
namespace Nz namespace Nz
{ {
template<class T> template<class T>
LuaClass<T>::LuaClass(const String& name) : LuaClass<T>::LuaClass(const String& name)
m_info(new ClassInfo)
{ {
m_info->name = name; Reset(name);
} }
template<class T> template<class T>
@ -58,6 +57,20 @@ namespace Nz
}); });
} }
template<class T>
void LuaClass<T>::Reset()
{
m_info.reset();
}
template<class T>
void LuaClass<T>::Reset(const String& name)
{
m_info = std::make_shared<ClassInfo>();
m_info->name = name;
}
template<class T> template<class T>
void LuaClass<T>::Register(LuaInstance& lua) void LuaClass<T>::Register(LuaInstance& lua)
{ {