diff options
author | chai <chaifix@163.com> | 2018-12-20 18:34:50 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-20 18:34:50 +0800 |
commit | ee8ef0433e36bf354a717bd4af679a0a5af2e6be (patch) | |
tree | 2fc748510200f8bc24928d1938300eecc0604deb /src/lua/modules/event/je_lua_event.cpp | |
parent | 7ae40127f15f8f2cb963a7efeb018f7887ebc1ea (diff) |
*修改文件结构
Diffstat (limited to 'src/lua/modules/event/je_lua_event.cpp')
-rw-r--r-- | src/lua/modules/event/je_lua_event.cpp | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/lua/modules/event/je_lua_event.cpp b/src/lua/modules/event/je_lua_event.cpp deleted file mode 100644 index 8a550d6..0000000 --- a/src/lua/modules/event/je_lua_event.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/** -* Event module -*/ -#include "common/je_lua_common.h" -#include "common/je_lua.h" -#include "libjin/jin.h" - -using namespace JinEngine; -using namespace JinEngine::Input; - -namespace JinEngine -{ - namespace Lua - { - - /** - * Load event poll, return a iterator(a table). - */ - LUA_IMPLEMENT int l_event_poll(lua_State *L) - { - /* table to store events */ - luax_newtable(L); - static Event e; - int i = 1; - poll: - while (pollEvent(&e)) - { - /** - * TODO: ڴСıʱҪtransform - * - */ - luax_newtable(L); - switch (e.type) - { - case EventType::QUIT: - luax_setfieldstring(L, "type", "Quit"); - break; - - case EventType::KEY_DOWN: - case EventType::KEY_UP: - luax_setfieldstring(L, "type", e.type == EventType::KEY_DOWN ? "KeyDown" : "KeyUp"); - luax_setfieldstring(L, "key", getKeyName(e.key.keysym.sym)); - break; - - case EventType::MOUSE_MOTION: - luax_setfieldstring(L, "type", "MouseMotion"); - luax_setfieldnumber(L, "x", e.motion.x); - luax_setfieldnumber(L, "y", e.motion.y); - break; - - case EventType::MOUSE_BUTTON_DOWN: - case EventType::MOUSE_BUTTON_UP: - luax_setfieldstring(L, "type", e.type == EventType::MOUSE_BUTTON_DOWN ? "MouseButtonDown" : "MouseButtonUp"); - luax_setfieldstring(L, "button", getButtonName(e.button.button)); - luax_setfieldnumber(L, "x", e.button.x); - luax_setfieldnumber(L, "y", e.button.y); - break; - - case EventType::MOUSE_WHEEL: - luax_setfieldstring(L, "type", "Wheel"); - if(e.wheel.x == -1) - luax_setfieldstring(L, "x", "Left"); - else if(e.wheel.x == 1) - luax_setfieldstring(L, "x", "Right"); - else - luax_setfieldstring(L, "x", "None"); - if (e.wheel.y == -1) - luax_setfieldstring(L, "y", "Near"); - else if (e.wheel.y == 1) - luax_setfieldstring(L, "y", "Far"); - else - luax_setfieldstring(L, "y", "None"); - break; - - case EventType::JOYBUTTONDOWN: - case EventType::JOYBUTTONUP: - luax_setfieldstring(L, "type", e.type == EventType::JOYBUTTONDOWN ? "JoyButtonDown" : "JoyButtonUp"); - luax_setfieldinteger(L, "which", e.jbutton.which); - luax_setfieldstring(L, "button", Input::getJoyButtonName(e.jbutton.button)); - break; - - case EventType::JOYAXISMOTION: - luax_setfieldstring(L, "type", "JoyAxisMotion"); - luax_setfieldinteger(L, "which", e.jaxis.which); - luax_setfieldfstring(L, "axis", Input::getJoyAxisName(e.jaxis.axis)); - break; - - case EventType::JOYBALLMOTION: - case EventType::JOYHATMOTION: - - case EventType::JOYDEVICEADDED: - case EventType::JOYDEVICEREMOVED: - luax_setfieldfstring(L, "type", e.type == EventType::JOYDEVICEADDED ? "JoyDeviceAdded" : "JoyDeviceRemoved"); - luax_setfieldinteger(L, "which", e.jdevice.which); - break; - - //https://stackoverflow.com/questions/50022316/what-is-sdl-joystick-and-what-is-sdl-gamecontroller-what-are-the-relationships - case EventType::CONTROLLERBUTTONDOWN: - case EventType::CONTROLLERBUTTONUP: - - - case EventType::CONTROLLERAXISMOTION: - - default: - // Ignore oter events and pop up the event table. - luax_pop(L, 1); - goto poll; - break; - } - luax_rawseti(L, -2, i++); - } - return 1; - } - - /** - * load event module - */ - LUA_EXPORT int luaopen_event(lua_State* L) - { - luaL_Reg methods[] = { - { "poll", l_event_poll }, - { 0, 0 } - }; - luax_newlib(L, methods); - - return 1; - } - - } // namespace Lua -} // namespace JinEngine
\ No newline at end of file |