From 2386a9534289baf73ce299f33e110f612ff55e38 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Sun, 2 Jul 2023 17:19:54 +1000 Subject: Input Binding support --- source/game/scripting/StarInputLuaBindings.cpp | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 source/game/scripting/StarInputLuaBindings.cpp (limited to 'source/game/scripting/StarInputLuaBindings.cpp') diff --git a/source/game/scripting/StarInputLuaBindings.cpp b/source/game/scripting/StarInputLuaBindings.cpp new file mode 100644 index 0000000..5195e31 --- /dev/null +++ b/source/game/scripting/StarInputLuaBindings.cpp @@ -0,0 +1,36 @@ +#include "StarInputLuaBindings.hpp" +#include "StarLuaGameConverters.hpp" +#include "StarInput.hpp" + +namespace Star { + +LuaCallbacks LuaBindings::makeInputCallbacks() { + LuaCallbacks callbacks; + + auto input = Input::singletonPtr(); + + callbacks.registerCallbackWithSignature, String, String>("bindDown", bind(mem_fn(&Input::bindDown), input, _1, _2)); + callbacks.registerCallbackWithSignature("bindHeld", bind(mem_fn(&Input::bindHeld), input, _1, _2)); + callbacks.registerCallbackWithSignature, String, String>("bindUp", bind(mem_fn(&Input::bindUp), input, _1, _2)); + + callbacks.registerCallbackWithSignature("resetBinds", bind(mem_fn(&Input::resetBinds), input, _1, _2)); + callbacks.registerCallbackWithSignature("setBinds", bind(mem_fn(&Input::setBinds), input, _1, _2, _3)); + callbacks.registerCallbackWithSignature("getDefaultBinds", bind(mem_fn(&Input::getDefaultBinds), input, _1, _2)); + callbacks.registerCallbackWithSignature("getBinds", bind(mem_fn(&Input::getBinds), input, _1, _2)); + + callbacks.registerCallback("events", [input]() -> Json { + JsonArray result; + + for (auto& pair : input->inputEventsThisFrame()) { + if (auto jEvent = Input::inputEventToJson(pair.first)) + result.emplace_back(jEvent.set("processed", pair.second)); + } + + return move(result); + }); + + return callbacks; +} + + +} -- cgit v1.2.3