diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-20 15:00:59 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-20 15:00:59 +1000 |
commit | c1ae23808677028ef6ac1b7f0b19b298d78affc2 (patch) | |
tree | 0310c9d5e4673ea49add9791713fdd83b81ed87f /source/game/scripting/StarInputLuaBindings.cpp | |
parent | 9d66acde2ae6896607da953e20ba5bbfc23948f6 (diff) | |
parent | 043db1841ee46ace0f6919bfdf6ac20a539faaca (diff) |
Merge branch 'voice'
Diffstat (limited to 'source/game/scripting/StarInputLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarInputLuaBindings.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/game/scripting/StarInputLuaBindings.cpp b/source/game/scripting/StarInputLuaBindings.cpp index 5195e31..9f58a40 100644 --- a/source/game/scripting/StarInputLuaBindings.cpp +++ b/source/game/scripting/StarInputLuaBindings.cpp @@ -13,6 +13,23 @@ LuaCallbacks LuaBindings::makeInputCallbacks() { callbacks.registerCallbackWithSignature<bool, String, String>("bindHeld", bind(mem_fn(&Input::bindHeld), input, _1, _2)); callbacks.registerCallbackWithSignature<Maybe<unsigned>, String, String>("bindUp", bind(mem_fn(&Input::bindUp), input, _1, _2)); + callbacks.registerCallback("keyDown", [input](String const& keyName, Maybe<StringList>& const modNames) -> Maybe<unsigned> { + Key key = KeyNames.getLeft(keyName); + Maybe<KeyMod> mod; + if (modNames) { + mod = KeyMod::NoMod; + for (auto& modName : *modNames) + *mod |= KeyModNames.getLeft(modName); + } + return input->keyDown(key, mod); + }); + callbacks.registerCallback("keyHeld", [input](String const& keyName) -> bool { return input->keyHeld(KeyNames.getLeft(keyName)); }); + callbacks.registerCallback("keyUp", [input](String const& keyName) -> Maybe<unsigned> { return input->keyUp( KeyNames.getLeft(keyName)); }); + + callbacks.registerCallback("mouseDown", [input](String const& buttonName) -> Maybe<List<Vec2I>> { return input->mouseDown(MouseButtonNames.getLeft(buttonName)); }); + callbacks.registerCallback("mouseHeld", [input](String const& buttonName) -> bool { return input->mouseHeld(MouseButtonNames.getLeft(buttonName)); }); + callbacks.registerCallback("mouseUp", [input](String const& buttonName) -> Maybe<List<Vec2I>> { return input->mouseUp( MouseButtonNames.getLeft(buttonName)); }); + callbacks.registerCallbackWithSignature<void, String, String>("resetBinds", bind(mem_fn(&Input::resetBinds), input, _1, _2)); callbacks.registerCallbackWithSignature<void, String, String, Json>("setBinds", bind(mem_fn(&Input::setBinds), input, _1, _2, _3)); callbacks.registerCallbackWithSignature<Json, String, String>("getDefaultBinds", bind(mem_fn(&Input::getDefaultBinds), input, _1, _2)); |