Compare commits
2 Commits
3cad3af3fe
...
527415677f
Author | SHA1 | Date |
---|---|---|
Sara | 527415677f | |
Sara | 41f5c440c4 |
|
@ -14,14 +14,14 @@ void PlayerInput::_bind_methods() {
|
|||
gd::Vector2 PlayerInput::lastMouseMotion{0.f, 0.f};
|
||||
bool PlayerInput::primaryExists{false};
|
||||
|
||||
PlayerInput::Listener::Listener(gd::String positive, gd::String negative, gd::Callable callable)
|
||||
PlayerInput::Listener::Listener(gd::String negative, gd::String positive, gd::Callable callable)
|
||||
: actionNegative{negative}
|
||||
, actionPositive{positive}
|
||||
, callable{callable}
|
||||
, isMouseEvent{positive.begins_with("_mouse_") || negative.begins_with("_mouse_")} {}
|
||||
|
||||
PlayerInput::Listener::Listener(gd::String action, gd::Callable callable)
|
||||
: PlayerInput::Listener::Listener(action, gd::String(), callable) {}
|
||||
: PlayerInput::Listener::Listener(gd::String(), action, callable) {}
|
||||
|
||||
std::optional<float> PlayerInput::Listener::evaluate_action(gd::String const &action) {
|
||||
gd::Input *input = gd::Input::get_singleton();
|
||||
|
@ -107,6 +107,14 @@ void PlayerInput::listen_to(Listener const& listener) {
|
|||
this->listeners.push_back(listener);
|
||||
}
|
||||
|
||||
void PlayerInput::listen_to(gd::String action, gd::Callable callable) {
|
||||
this->listeners.push_back(Listener(action, callable));
|
||||
}
|
||||
|
||||
void PlayerInput::listen_to(gd::String negative, gd::String positive, gd::Callable callable) {
|
||||
this->listeners.push_back(Listener(negative, positive, callable));
|
||||
}
|
||||
|
||||
void PlayerInput::stop_listening(Node *node) {
|
||||
for(size_t i = 0; i < this->listeners.size(); ++i) {
|
||||
Listener l = this->listeners.get(i);
|
||||
|
|
|
@ -40,7 +40,7 @@ public:
|
|||
|
||||
public:
|
||||
Listener() = default;
|
||||
Listener(gd::String positive, gd::String negative, gd::Callable callable);
|
||||
Listener(gd::String negative, gd::String positive, gd::Callable callable);
|
||||
Listener(gd::String action, gd::Callable callable);
|
||||
// evaluate the current state of an action.
|
||||
static std::optional<float> evaluate_action(gd::String const &action);
|
||||
|
@ -73,6 +73,9 @@ public:
|
|||
virtual void _process(double deltaTime) override;
|
||||
|
||||
void listen_to(Listener const &listener);
|
||||
void listen_to(gd::String action, gd::Callable callable);
|
||||
void listen_to(gd::String negative, gd::String positive, gd::Callable callable);
|
||||
|
||||
void stop_listening(Node *node);
|
||||
void stop_listening(Listener const &listener);
|
||||
void clear_listeners();
|
||||
|
|
Loading…
Reference in New Issue