Unravel Engine C++ Reference
Loading...
Searching...
No Matches
input_bindings.cpp
Go to the documentation of this file.
2#include "script_bindings.h"
3
4#include "../script_interop.h"
5
7
8namespace unravel
9{
10namespace
11{
12
13auto internal_m2n_input_get_analog_value(const std::string& name) -> float
14{
15 auto& ctx = engine::context();
16 auto& input = ctx.get_cached<input_system>();
17 return input.get_analog_value(name);
18}
19
20auto internal_m2n_input_get_digital_value(const std::string& name) -> bool
21{
22 auto& ctx = engine::context();
23 auto& input = ctx.get_cached<input_system>();
24 return input.get_digital_value(name);
25}
26
27auto internal_m2n_input_is_pressed(const std::string& name) -> bool
28{
29 auto& ctx = engine::context();
30 auto& input = ctx.get_cached<input_system>();
31 return input.is_pressed(name);
32}
33
34auto internal_m2n_input_is_released(const std::string& name) -> bool
35{
36 auto& ctx = engine::context();
37 auto& input = ctx.get_cached<input_system>();
38 return input.is_released(name);
39}
40
41auto internal_m2n_input_is_down(const std::string& name) -> bool
42{
43 auto& ctx = engine::context();
44 auto& input = ctx.get_cached<input_system>();
45 return input.is_down(name);
46}
47
48auto internal_m2n_input_is_key_pressed(input::key_code code) -> bool
49{
50 auto& ctx = engine::context();
51 auto& input = ctx.get_cached<input_system>();
52 return input.manager.get_keyboard().is_pressed(code);
53}
54
55auto internal_m2n_input_is_key_released(input::key_code code) -> bool
56{
57 auto& ctx = engine::context();
58 auto& input = ctx.get_cached<input_system>();
59 return input.manager.get_keyboard().is_released(code);
60}
61
62auto internal_m2n_input_is_key_down(input::key_code code) -> bool
63{
64 auto& ctx = engine::context();
65 auto& input = ctx.get_cached<input_system>();
66 return input.manager.get_keyboard().is_down(code);
67}
68
69auto internal_m2n_input_is_mouse_button_pressed(int32_t button) -> bool
70{
71 auto& ctx = engine::context();
72 auto& input = ctx.get_cached<input_system>();
73 return input.manager.get_mouse().is_pressed(button);
74}
75
76auto internal_m2n_input_is_mouse_button_released(int32_t button) -> bool
77{
78 auto& ctx = engine::context();
79 auto& input = ctx.get_cached<input_system>();
80 return input.manager.get_mouse().is_released(button);
81}
82
83auto internal_m2n_input_is_mouse_button_down(int32_t button) -> bool
84{
85 auto& ctx = engine::context();
86 auto& input = ctx.get_cached<input_system>();
87 return input.manager.get_mouse().is_down(button);
88}
89
90auto internal_m2n_input_get_mouse_position() -> math::vec2
91{
92 auto& ctx = engine::context();
93 auto& input = ctx.get_cached<input_system>();
94 auto coord = input.manager.get_mouse().get_position();
95 return {coord.x, coord.y};
96}
97
98} // namespace
99
101{
102 APPLOG_TRACE("{}", __func__);
103
104 auto reg = dotnet::internal_call_registry("Unravel.Core.Input");
105 reg.add_internal_call("internal_m2n_input_get_analog_value",
106 dotnet_internal_call(internal_m2n_input_get_analog_value));
107 reg.add_internal_call("internal_m2n_input_get_digital_value",
108 dotnet_internal_call(internal_m2n_input_get_analog_value));
109 reg.add_internal_call("internal_m2n_input_is_pressed", dotnet_internal_call(internal_m2n_input_is_pressed));
110 reg.add_internal_call("internal_m2n_input_is_released", dotnet_internal_call(internal_m2n_input_is_released));
111 reg.add_internal_call("internal_m2n_input_is_down", dotnet_internal_call(internal_m2n_input_is_down));
112 reg.add_internal_call("internal_m2n_input_is_key_pressed", dotnet_internal_call(internal_m2n_input_is_key_pressed));
113 reg.add_internal_call("internal_m2n_input_is_key_released", dotnet_internal_call(internal_m2n_input_is_key_released));
114 reg.add_internal_call("internal_m2n_input_is_key_down", dotnet_internal_call(internal_m2n_input_is_key_down));
115 reg.add_internal_call("internal_m2n_input_is_mouse_button_pressed",
116 dotnet_internal_call(internal_m2n_input_is_mouse_button_pressed));
117 reg.add_internal_call("internal_m2n_input_is_mouse_button_released",
118 dotnet_internal_call(internal_m2n_input_is_mouse_button_released));
119 reg.add_internal_call("internal_m2n_input_is_mouse_button_down",
120 dotnet_internal_call(internal_m2n_input_is_mouse_button_down));
121 reg.add_internal_call("internal_m2n_input_get_mouse_position",
122 dotnet_internal_call(internal_m2n_input_get_mouse_position));
123}
124
125} // namespace unravel
std::string name
Definition hub.cpp:33
#define APPLOG_TRACE(...)
Definition logging.h:17
key_code
Definition key.hpp:6
void register_input_script_bindings()
static auto context() -> rtti::context &
Definition engine.cpp:111