27 auto& lua = core::ServiceLocator<sol::state>::ref();
29 auto camera_controller = lua.new_usertype<
input::CameraController>(
"CameraController", sol::constructors<input::CameraController(graphics::Camera&)>());
32 auto clipboard_type = lua.new_usertype<input::Clipboard>(
"Clipboard", sol::no_constructor);
33 clipboard_type[
"set"] = &input::Clipboard::set;
34 clipboard_type[
"get"] = &input::Clipboard::get;
36 auto cursor_type = lua.new_usertype<input::Cursor>(
"Cursor", sol::no_constructor);
37 cursor_type[
"toggle"] = &input::Cursor::toggle;
38 cursor_type[
"load_custom"] = &input::Cursor::load_custom;
39 cursor_type[
"load_custom_mem"] = &input::Cursor::load_custom_mem;
40 cursor_type[
"use_custom"] = &input::Cursor::use_custom;
41 cursor_type[
"use_pointer"] = &input::Cursor::use_pointer;
42 cursor_type[
"use_hand"] = &input::Cursor::use_hand;
43 cursor_type[
"use_cross"] = &input::Cursor::use_cross;
44 cursor_type[
"use_text"] = &input::Cursor::use_text;
45 cursor_type[
"use_custom_else_pointer"] = &input::Cursor::use_custom_else_pointer;
46 cursor_type[
"within_window"] = &input::Cursor::within_window;
47 cursor_type[
"destroy"] = &input::Cursor::destroy;
49 lua.set_function(
"galaxy_input_key_down", &input::Input::key_down);
50 lua.set_function(
"galaxy_input_mouse_down", &input::Input::mouse_button_down);
51 lua.set_function(
"galaxy_input_cursor_pos", &input::Input::get_cursor_pos);
53 lua.set(
"galaxy_camera_forward", &input::CameraKeys::FORWARD);
54 lua.set(
"galaxy_camera_backward", &input::CameraKeys::BACKWARD);
55 lua.set(
"galaxy_camera_left", &input::CameraKeys::LEFT);
56 lua.set(
"galaxy_camera_right", &input::CameraKeys::RIGHT);
57 lua.set(
"galaxy_camera_rotate_left", &input::CameraKeys::ROTATE_LEFT);
58 lua.set(
"galaxy_camera_rotate_right", &input::CameraKeys::ROTATE_RIGHT);
61 lua.new_enum<input::InputMods>(
"InputMods",
63 {
"UNKNOWN", input::InputMods::UNKNOWN},
64 {
"SHIFT", input::InputMods::SHIFT},
65 {
"CONTROL", input::InputMods::CONTROL},
66 {
"ALT", input::InputMods::ALT},
67 {
"SUPER", input::InputMods::SUPER},
68 {
"CAPS_LOCK", input::InputMods::CAPS_LOCK},
69 {
"NUM_LOCK", input::InputMods::NUM_LOCK}
73 lua.set_function(
"galaxy_int_to_mod", &input::int_to_mod);
74 lua.set_function(
"galaxy_mod_to_int", &input::mod_to_int);
76 auto keyboard_type = lua.new_usertype<input::Keyboard>(
"Keyboard", sol::no_constructor);
77 keyboard_type[
"begin_text_input"] = &input::Keyboard::begin_text_input;
78 keyboard_type[
"end_text_input"] = &input::Keyboard::end_text_input;
79 keyboard_type[
"enable_sticky_keys"] = &input::Keyboard::enable_sticky_keys;
80 keyboard_type[
"disable_sticky_keys"] = &input::Keyboard::disable_sticky_keys;
81 keyboard_type[
"is_text_input_enabled"] = &input::Keyboard::is_text_input_enabled;
82 keyboard_type[
"get_scancode"] = &input::Keyboard::get_scancode;
83 keyboard_type[
"get_key_name"] = &input::Keyboard::get_key_name;
84 keyboard_type[
"get_scancode_name"] = &input::Keyboard::get_scancode_name;
87 lua.new_enum<input::Keys>(
"Keys",
89 {
"KEY_UNKNOWN", input::Keys::KEY_UNKNOWN},
90 {
"KEY_SPACE", input::Keys::KEY_SPACE},
91 {
"KEY_APOSTROPHE", input::Keys::KEY_APOSTROPHE},
92 {
"KEY_COMMA", input::Keys::KEY_COMMA},
93 {
"KEY_MINUS", input::Keys::KEY_MINUS},
94 {
"KEY_PERIOD", input::Keys::KEY_PERIOD},
95 {
"KEY_SLASH", input::Keys::KEY_SLASH},
96 {
"KEY_0", input::Keys::KEY_0},
97 {
"KEY_1", input::Keys::KEY_1},
98 {
"KEY_2", input::Keys::KEY_2},
99 {
"KEY_3", input::Keys::KEY_3},
100 {
"KEY_4", input::Keys::KEY_4},
101 {
"KEY_5", input::Keys::KEY_5},
102 {
"KEY_6", input::Keys::KEY_6},
103 {
"KEY_7", input::Keys::KEY_7},
104 {
"KEY_8", input::Keys::KEY_8},
105 {
"KEY_9", input::Keys::KEY_9},
106 {
"KEY_SEMICOLON", input::Keys::KEY_SEMICOLON},
107 {
"KEY_EQUAL", input::Keys::KEY_EQUAL},
108 {
"KEY_A", input::Keys::KEY_A},
109 {
"KEY_B", input::Keys::KEY_B},
110 {
"KEY_C", input::Keys::KEY_C},
111 {
"KEY_D", input::Keys::KEY_D},
112 {
"KEY_E", input::Keys::KEY_E},
113 {
"KEY_F", input::Keys::KEY_F},
114 {
"KEY_G", input::Keys::KEY_G},
115 {
"KEY_H", input::Keys::KEY_H},
116 {
"KEY_I", input::Keys::KEY_I},
117 {
"KEY_J", input::Keys::KEY_J},
118 {
"KEY_K", input::Keys::KEY_K},
119 {
"KEY_L", input::Keys::KEY_L},
120 {
"KEY_M", input::Keys::KEY_M},
121 {
"KEY_N", input::Keys::KEY_N},
122 {
"KEY_O", input::Keys::KEY_O},
123 {
"KEY_P", input::Keys::KEY_P},
124 {
"KEY_Q", input::Keys::KEY_Q},
125 {
"KEY_R", input::Keys::KEY_R},
126 {
"KEY_S", input::Keys::KEY_S},
127 {
"KEY_T", input::Keys::KEY_T},
128 {
"KEY_U", input::Keys::KEY_U},
129 {
"KEY_V", input::Keys::KEY_V},
130 {
"KEY_W", input::Keys::KEY_W},
131 {
"KEY_X", input::Keys::KEY_X},
132 {
"KEY_Y", input::Keys::KEY_Y},
133 {
"KEY_Z", input::Keys::KEY_Z},
134 {
"KEY_LEFT_BRACKET", input::Keys::KEY_LEFT_BRACKET},
135 {
"KEY_BACKSLASH", input::Keys::KEY_BACKSLASH},
136 {
"KEY_RIGHT_BRACKET", input::Keys::KEY_RIGHT_BRACKET},
137 {
"KEY_GRAVE_ACCENT", input::Keys::KEY_GRAVE_ACCENT},
138 {
"KEY_WORLD_1", input::Keys::KEY_WORLD_1},
139 {
"KEY_WORLD_2", input::Keys::KEY_WORLD_2},
140 {
"KEY_ESCAPE", input::Keys::KEY_ESCAPE},
141 {
"KEY_ENTER", input::Keys::KEY_ENTER},
142 {
"KEY_TAB", input::Keys::KEY_TAB},
143 {
"KEY_BACKSPACE", input::Keys::KEY_BACKSPACE},
144 {
"KEY_INSERT", input::Keys::KEY_INSERT},
145 {
"KEY_DELETE", input::Keys::KEY_DELETE},
146 {
"KEY_RIGHT", input::Keys::KEY_RIGHT},
147 {
"KEY_LEFT", input::Keys::KEY_LEFT},
148 {
"KEY_DOWN", input::Keys::KEY_DOWN},
149 {
"KEY_UP", input::Keys::KEY_UP},
150 {
"KEY_PAGE_UP", input::Keys::KEY_PAGE_UP},
151 {
"KEY_PAGE_DOWN", input::Keys::KEY_PAGE_DOWN},
152 {
"KEY_HOME", input::Keys::KEY_HOME},
153 {
"KEY_END", input::Keys::KEY_END},
154 {
"KEY_CAPS_LOCK", input::Keys::KEY_CAPS_LOCK},
155 {
"KEY_SCROLL_LOCK", input::Keys::KEY_SCROLL_LOCK},
156 {
"KEY_NUM_LOCK", input::Keys::KEY_NUM_LOCK},
157 {
"KEY_PRINT_SCREEN", input::Keys::KEY_PRINT_SCREEN},
158 {
"KEY_PAUSE", input::Keys::KEY_PAUSE},
159 {
"KEY_F1", input::Keys::KEY_F1},
160 {
"KEY_F2", input::Keys::KEY_F2},
161 {
"KEY_F3", input::Keys::KEY_F3},
162 {
"KEY_F4", input::Keys::KEY_F4},
163 {
"KEY_F5", input::Keys::KEY_F5},
164 {
"KEY_F6", input::Keys::KEY_F6},
165 {
"KEY_F7", input::Keys::KEY_F7},
166 {
"KEY_F8", input::Keys::KEY_F8},
167 {
"KEY_F9", input::Keys::KEY_F9},
168 {
"KEY_F10", input::Keys::KEY_F10},
169 {
"KEY_F11", input::Keys::KEY_F11},
170 {
"KEY_F12", input::Keys::KEY_F12},
171 {
"KEY_F13", input::Keys::KEY_F13},
172 {
"KEY_F14", input::Keys::KEY_F14},
173 {
"KEY_F15", input::Keys::KEY_F15},
174 {
"KEY_F16", input::Keys::KEY_F16},
175 {
"KEY_F17", input::Keys::KEY_F17},
176 {
"KEY_F18", input::Keys::KEY_F18},
177 {
"KEY_F19", input::Keys::KEY_F19},
178 {
"KEY_F20", input::Keys::KEY_F20},
179 {
"KEY_F21", input::Keys::KEY_F21},
180 {
"KEY_F22", input::Keys::KEY_F22},
181 {
"KEY_F23", input::Keys::KEY_F23},
182 {
"KEY_F24", input::Keys::KEY_F24},
183 {
"KEY_F25", input::Keys::KEY_F25},
184 {
"KEY_KP_0", input::Keys::KEY_KP_0},
185 {
"KEY_KP_1", input::Keys::KEY_KP_1},
186 {
"KEY_KP_2", input::Keys::KEY_KP_2},
187 {
"KEY_KP_3", input::Keys::KEY_KP_3},
188 {
"KEY_KP_4", input::Keys::KEY_KP_4},
189 {
"KEY_KP_5", input::Keys::KEY_KP_5},
190 {
"KEY_KP_6", input::Keys::KEY_KP_6},
191 {
"KEY_KP_7", input::Keys::KEY_KP_7},
192 {
"KEY_KP_8", input::Keys::KEY_KP_8},
193 {
"KEY_KP_9", input::Keys::KEY_KP_9},
194 {
"KEY_KP_DECIMAL", input::Keys::KEY_KP_DECIMAL},
195 {
"KEY_KP_DIVIDE", input::Keys::KEY_KP_DIVIDE},
196 {
"KEY_KP_MULTIPLY", input::Keys::KEY_KP_MULTIPLY},
197 {
"KEY_KP_SUBTRACT", input::Keys::KEY_KP_SUBTRACT},
198 {
"KEY_KP_ADD", input::Keys::KEY_KP_ADD},
199 {
"KEY_KP_ENTER", input::Keys::KEY_KP_ENTER},
200 {
"KEY_KP_EQUAL", input::Keys::KEY_KP_EQUAL},
201 {
"KEY_LEFT_SHIFT", input::Keys::KEY_LEFT_SHIFT},
202 {
"KEY_LEFT_CONTROL", input::Keys::KEY_LEFT_CONTROL},
203 {
"KEY_LEFT_ALT", input::Keys::KEY_LEFT_ALT},
204 {
"KEY_LEFT_SUPER", input::Keys::KEY_LEFT_SUPER},
205 {
"KEY_RIGHT_SHIFT", input::Keys::KEY_RIGHT_SHIFT},
206 {
"KEY_RIGHT_CONTROL", input::Keys::KEY_RIGHT_CONTROL},
207 {
"KEY_RIGHT_ALT", input::Keys::KEY_RIGHT_ALT},
208 {
"KEY_RIGHT_SUPER", input::Keys::KEY_RIGHT_SUPER},
209 {
"KEY_MENU", input::Keys::KEY_MENU}
213 lua.set_function(
"galaxy_int_to_key", &input::int_to_key);
214 lua.set_function(
"galaxy_key_to_int", &input::key_to_int);
216 auto mouse_type = lua.new_usertype<input::Mouse>(
"Mouse", sol::no_constructor);
217 mouse_type[
"disable_sticky_mouse"] = &input::Mouse::disable_sticky_mouse;
218 mouse_type[
"enable_sticky_mouse"] = &input::Mouse::enable_sticky_mouse;
219 mouse_type[
"get_pos"] = &input::Mouse::get_pos;
222 lua.new_enum<input::MouseButtons>(
"MouseButtons",
224 {
"UNKNOWN", input::MouseButtons::UNKNOWN},
225 {
"BTN_1", input::MouseButtons::BTN_1},
226 {
"BTN_2", input::MouseButtons::BTN_2},
227 {
"BTN_3", input::MouseButtons::BTN_3},
228 {
"BTN_4", input::MouseButtons::BTN_4},
229 {
"BTN_5", input::MouseButtons::BTN_5},
230 {
"BTN_6", input::MouseButtons::BTN_6},
231 {
"BTN_7", input::MouseButtons::BTN_7},
232 {
"BTN_8", input::MouseButtons::BTN_8},
233 {
"BTN_LAST", input::MouseButtons::BTN_LAST},
234 {
"BTN_LEFT", input::MouseButtons::BTN_LEFT},
235 {
"BTN_RIGHT", input::MouseButtons::BTN_RIGHT},
236 {
"BTN_MIDDLE", input::MouseButtons::BTN_MIDDLE}
240 lua.set_function(
"galaxy_int_to_mouse", &input::int_to_mouse);
241 lua.set_function(
"galaxy_mouse_to_int", &input::mouse_to_int);