lua_keyboard.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. /*
  2. * Copyright (c) 2012-2015 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "lua_stack.h"
  6. #include "lua_environment.h"
  7. #include "input.h"
  8. #include "keyboard.h"
  9. namespace crown
  10. {
  11. using namespace input_globals;
  12. static int keyboard_modifier_pressed(lua_State* L)
  13. {
  14. LuaStack stack(L);
  15. stack.push_bool(keyboard().modifier_pressed((ModifierButton::Enum) stack.get_int(1)));
  16. return 1;
  17. }
  18. static int keyboard_button_pressed(lua_State* L)
  19. {
  20. LuaStack stack(L);
  21. stack.push_bool(keyboard().button_pressed((KeyboardButton::Enum) stack.get_int(1)));
  22. return 1;
  23. }
  24. static int keyboard_button_released(lua_State* L)
  25. {
  26. LuaStack stack(L);
  27. stack.push_bool(keyboard().button_released((KeyboardButton::Enum) stack.get_int(1)));
  28. return 1;
  29. }
  30. static int keyboard_any_pressed(lua_State* L)
  31. {
  32. LuaStack stack(L);
  33. stack.push_bool(keyboard().any_pressed());
  34. return 1;
  35. }
  36. static int keyboard_any_released(lua_State* L)
  37. {
  38. LuaStack stack(L);
  39. stack.push_bool(keyboard().any_released());
  40. return 1;
  41. }
  42. void load_keyboard(LuaEnvironment& env)
  43. {
  44. env.load_module_function("Keyboard", "modifier_pressed", keyboard_modifier_pressed);
  45. env.load_module_function("Keyboard", "button_pressed", keyboard_button_pressed);
  46. env.load_module_function("Keyboard", "button_released", keyboard_button_released);
  47. env.load_module_function("Keyboard", "any_pressed", keyboard_any_pressed);
  48. env.load_module_function("Keyboard", "any_released", keyboard_any_released);
  49. env.load_module_enum("Keyboard", "TAB", KeyboardButton::TAB);
  50. env.load_module_enum("Keyboard", "ENTER", KeyboardButton::ENTER);
  51. env.load_module_enum("Keyboard", "ESCAPE", KeyboardButton::ESCAPE);
  52. env.load_module_enum("Keyboard", "SPACE", KeyboardButton::SPACE);
  53. env.load_module_enum("Keyboard", "BACKSPACE", KeyboardButton::BACKSPACE);
  54. env.load_module_enum("Keyboard", "KP_0", KeyboardButton::KP_0);
  55. env.load_module_enum("Keyboard", "KP_1", KeyboardButton::KP_1);
  56. env.load_module_enum("Keyboard", "KP_2", KeyboardButton::KP_2);
  57. env.load_module_enum("Keyboard", "KP_3", KeyboardButton::KP_3);
  58. env.load_module_enum("Keyboard", "KP_4", KeyboardButton::KP_4);
  59. env.load_module_enum("Keyboard", "KP_5", KeyboardButton::KP_5);
  60. env.load_module_enum("Keyboard", "KP_6", KeyboardButton::KP_6);
  61. env.load_module_enum("Keyboard", "KP_7", KeyboardButton::KP_7);
  62. env.load_module_enum("Keyboard", "KP_8", KeyboardButton::KP_8);
  63. env.load_module_enum("Keyboard", "KP_9", KeyboardButton::KP_9);
  64. env.load_module_enum("Keyboard", "F1", KeyboardButton::F1);
  65. env.load_module_enum("Keyboard", "F2", KeyboardButton::F2);
  66. env.load_module_enum("Keyboard", "F3", KeyboardButton::F3);
  67. env.load_module_enum("Keyboard", "F4", KeyboardButton::F4);
  68. env.load_module_enum("Keyboard", "F5", KeyboardButton::F5);
  69. env.load_module_enum("Keyboard", "F6", KeyboardButton::F6);
  70. env.load_module_enum("Keyboard", "F7", KeyboardButton::F7);
  71. env.load_module_enum("Keyboard", "F8", KeyboardButton::F8);
  72. env.load_module_enum("Keyboard", "F9", KeyboardButton::F9);
  73. env.load_module_enum("Keyboard", "F10", KeyboardButton::F10);
  74. env.load_module_enum("Keyboard", "F11", KeyboardButton::F11);
  75. env.load_module_enum("Keyboard", "F12", KeyboardButton::F12);
  76. env.load_module_enum("Keyboard", "HOME", KeyboardButton::HOME);
  77. env.load_module_enum("Keyboard", "LEFT", KeyboardButton::LEFT);
  78. env.load_module_enum("Keyboard", "UP", KeyboardButton::UP);
  79. env.load_module_enum("Keyboard", "RIGHT", KeyboardButton::RIGHT);
  80. env.load_module_enum("Keyboard", "DOWN", KeyboardButton::DOWN);
  81. env.load_module_enum("Keyboard", "PAGE_UP", KeyboardButton::PAGE_UP);
  82. env.load_module_enum("Keyboard", "PAGE_DOWN", KeyboardButton::PAGE_DOWN);
  83. env.load_module_enum("Keyboard", "LCONTROL", KeyboardButton::LCONTROL);
  84. env.load_module_enum("Keyboard", "RCONTROL", KeyboardButton::RCONTROL);
  85. env.load_module_enum("Keyboard", "LSHIFT", KeyboardButton::LSHIFT);
  86. env.load_module_enum("Keyboard", "RSHIFT", KeyboardButton::RSHIFT);
  87. env.load_module_enum("Keyboard", "CAPS_LOCK", KeyboardButton::CAPS_LOCK);
  88. env.load_module_enum("Keyboard", "LALT", KeyboardButton::LALT);
  89. env.load_module_enum("Keyboard", "RALT", KeyboardButton::RALT);
  90. env.load_module_enum("Keyboard", "LSUPER", KeyboardButton::LSUPER);
  91. env.load_module_enum("Keyboard", "RSUPER", KeyboardButton::RSUPER);
  92. env.load_module_enum("Keyboard", "NUM_0", KeyboardButton::NUM_0);
  93. env.load_module_enum("Keyboard", "NUM_1", KeyboardButton::NUM_1);
  94. env.load_module_enum("Keyboard", "NUM_2", KeyboardButton::NUM_2);
  95. env.load_module_enum("Keyboard", "NUM_3", KeyboardButton::NUM_3);
  96. env.load_module_enum("Keyboard", "NUM_4", KeyboardButton::NUM_4);
  97. env.load_module_enum("Keyboard", "NUM_5", KeyboardButton::NUM_5);
  98. env.load_module_enum("Keyboard", "NUM_6", KeyboardButton::NUM_6);
  99. env.load_module_enum("Keyboard", "NUM_7", KeyboardButton::NUM_7);
  100. env.load_module_enum("Keyboard", "NUM_8", KeyboardButton::NUM_8);
  101. env.load_module_enum("Keyboard", "NUM_9", KeyboardButton::NUM_9);
  102. env.load_module_enum("Keyboard", "A", KeyboardButton::A);
  103. env.load_module_enum("Keyboard", "B", KeyboardButton::B);
  104. env.load_module_enum("Keyboard", "C", KeyboardButton::C);
  105. env.load_module_enum("Keyboard", "D", KeyboardButton::D);
  106. env.load_module_enum("Keyboard", "E", KeyboardButton::E);
  107. env.load_module_enum("Keyboard", "F", KeyboardButton::F);
  108. env.load_module_enum("Keyboard", "G", KeyboardButton::G);
  109. env.load_module_enum("Keyboard", "H", KeyboardButton::H);
  110. env.load_module_enum("Keyboard", "I", KeyboardButton::I);
  111. env.load_module_enum("Keyboard", "J", KeyboardButton::J);
  112. env.load_module_enum("Keyboard", "K", KeyboardButton::K);
  113. env.load_module_enum("Keyboard", "L", KeyboardButton::L);
  114. env.load_module_enum("Keyboard", "M", KeyboardButton::M);
  115. env.load_module_enum("Keyboard", "N", KeyboardButton::N);
  116. env.load_module_enum("Keyboard", "O", KeyboardButton::O);
  117. env.load_module_enum("Keyboard", "P", KeyboardButton::P);
  118. env.load_module_enum("Keyboard", "Q", KeyboardButton::Q);
  119. env.load_module_enum("Keyboard", "R", KeyboardButton::R);
  120. env.load_module_enum("Keyboard", "S", KeyboardButton::S);
  121. env.load_module_enum("Keyboard", "T", KeyboardButton::T);
  122. env.load_module_enum("Keyboard", "U", KeyboardButton::U);
  123. env.load_module_enum("Keyboard", "V", KeyboardButton::V);
  124. env.load_module_enum("Keyboard", "W", KeyboardButton::W);
  125. env.load_module_enum("Keyboard", "X", KeyboardButton::X);
  126. env.load_module_enum("Keyboard", "Y", KeyboardButton::Y);
  127. env.load_module_enum("Keyboard", "Z", KeyboardButton::Z);
  128. }
  129. } // namespace crown