diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-20 12:52:08 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-20 12:52:08 +1000 |
commit | 3aa45ab7995c000432bba8ee1335ff7db923ac41 (patch) | |
tree | d038fa458c15d49f89655d8486ee9ecbd26089e6 /source/game/scripting/StarInputLuaBindings.cpp | |
parent | db3d004d3008f10f133c8a1eb8f0200f0b05eea1 (diff) |
Add voice muting, add input key and mouse functions
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)); |