summaryrefslogtreecommitdiff
path: root/Source/Samples/LuaxTest/main.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-17 10:49:50 +0800
committerchai <chaifix@163.com>2019-03-17 10:49:50 +0800
commitad2805aa839892589c13a615730da52f6e474709 (patch)
treef818bbacee347f8d64d9134ffe4fbda366ba87fe /Source/Samples/LuaxTest/main.cpp
parentfb830270c5269a22819a0c0f1ee280f9aa3f1b39 (diff)
*luax
Diffstat (limited to 'Source/Samples/LuaxTest/main.cpp')
-rw-r--r--Source/Samples/LuaxTest/main.cpp31
1 files changed, 12 insertions, 19 deletions
diff --git a/Source/Samples/LuaxTest/main.cpp b/Source/Samples/LuaxTest/main.cpp
index d9bd315..65cdaa1 100644
--- a/Source/Samples/LuaxTest/main.cpp
+++ b/Source/Samples/LuaxTest/main.cpp
@@ -16,7 +16,9 @@ using namespace Luax;
//----------------------------------------------------------------------------------------------------------------
-class School : Singleton<School>
+class School
+ : public Singleton<School>
+ , public LuaxClass<School>
{
public:
@@ -153,13 +155,16 @@ int Boy::l_Write(lua_State* L)
void Boy::RegisterLuaxClass(LuaxState& state)
{
- state.SetField(-1, "Class", 101); // 101
- state.SetField(-1, "Gender", "Male"); // 101
-
luaL_Reg regTable[] = {
+ // class functions
{ "New", l_New },
{ "GetGender", l_GetGender },
- {NULL, NULL}
+ // members
+ { "GetAge", l_GetAge },
+ { "GetName", l_GetName },
+ { "Write", l_Write },
+ { "Speak", l_Speak },
+ { 0, 0}
};
state.RegisterMethods(regTable);
@@ -176,19 +181,6 @@ void Boy::RegisterLuaxClass(LuaxState& state)
state.RegisterEnum("EHabits", EHabits);
}
-void Boy::RegisterLuaxInterface(LuaxState& state)
-{
- luaL_Reg regTable[] = {
- { "GetAge", l_GetAge },
- { "GetName", l_GetName },
- { "Write", l_Write },
- { "Speak", l_Speak },
- {NULL, NULL}
- };
-
- state.RegisterMethods(regTable);
-}
-
void Boy::RegisterLuaxPostprocess(LuaxState& state)
{
// boyİ
@@ -231,7 +223,8 @@ int main()
state.OpenLibs();
state.PushGlobalNamespace();
state.PushNamespace("Asura");
-
+ state.RegisterPlainClassRegistry("Class"); // Asura.Class("Foo")
+ state.RegisterPlainEnumRegistry("Enum"); // Asura.Enum("EFoo", { ... });
//עenum
LuaxEnum EGender[] = {
{ "BOY", 7 },