diff options
Diffstat (limited to 'Source/Samples/LuaxTest')
-rw-r--r-- | Source/Samples/LuaxTest/main.cpp | 31 | ||||
-rw-r--r-- | Source/Samples/LuaxTest/script.lua | 19 |
2 files changed, 30 insertions, 20 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 }, diff --git a/Source/Samples/LuaxTest/script.lua b/Source/Samples/LuaxTest/script.lua index 32bd8e8..97890c0 100644 --- a/Source/Samples/LuaxTest/script.lua +++ b/Source/Samples/LuaxTest/script.lua @@ -63,7 +63,24 @@ function main() return "kid:Write() 2" end ) print(kid:Speak()) - + +------------------- plain class test + local Foo = Asura.Class("Foo") + Foo.Ctor = function(self, age, name, boy) + self.age = age + self.name = boy:GetName() + self.boy = boy + end + Foo.GetAge = function(self) + return self.age + end + Foo.GetName = function(self) + return self.name + end + local foo = Foo.New(10, "lee", kid) + print(foo:GetName()) + print(Foo.GetClassName()) + print(foo.boy:GetAge()) end function err(msg) print(msg) |