@@ -139,16 +139,18 @@ namespace MWLua
139
139
}));
140
140
141
141
api[" actions" ] = std::ref (context.mLuaManager ->inputActions ());
142
- api[" registerAction" ] = [manager = context.mLuaManager ](sol::table options) {
143
- LuaUtil::InputAction::Info parsedOptions;
144
- parsedOptions.mKey = options[" key" ].get <std::string_view>();
145
- parsedOptions.mType = options[" type" ].get <LuaUtil::InputAction::Type>();
146
- parsedOptions.mL10n = options[" l10n" ].get <std::string_view>();
147
- parsedOptions.mName = options[" name" ].get <std::string_view>();
148
- parsedOptions.mDescription = options[" description" ].get <std::string_view>();
149
- parsedOptions.mDefaultValue = options[" defaultValue" ].get <sol::main_object>();
150
- manager->inputActions ().insert (std::move (parsedOptions));
151
- };
142
+ api[" registerAction" ]
143
+ = [manager = context.mLuaManager , persistent = context.mType == Context::Menu](sol::table options) {
144
+ LuaUtil::InputAction::Info parsedOptions;
145
+ parsedOptions.mKey = options[" key" ].get <std::string_view>();
146
+ parsedOptions.mType = options[" type" ].get <LuaUtil::InputAction::Type>();
147
+ parsedOptions.mL10n = options[" l10n" ].get <std::string_view>();
148
+ parsedOptions.mName = options[" name" ].get <std::string_view>();
149
+ parsedOptions.mDescription = options[" description" ].get <std::string_view>();
150
+ parsedOptions.mDefaultValue = options[" defaultValue" ].get <sol::main_object>();
151
+ parsedOptions.mPersistent = persistent;
152
+ manager->inputActions ().insert (std::move (parsedOptions));
153
+ };
152
154
api[" bindAction" ] = [manager = context.mLuaManager ](
153
155
std::string_view key, const sol::table& callback, sol::table dependencies) {
154
156
std::vector<std::string_view> parsedDependencies;
@@ -178,14 +180,16 @@ namespace MWLua
178
180
};
179
181
180
182
api[" triggers" ] = std::ref (context.mLuaManager ->inputTriggers ());
181
- api[" registerTrigger" ] = [manager = context.mLuaManager ](sol::table options) {
182
- LuaUtil::InputTrigger::Info parsedOptions;
183
- parsedOptions.mKey = options[" key" ].get <std::string_view>();
184
- parsedOptions.mL10n = options[" l10n" ].get <std::string_view>();
185
- parsedOptions.mName = options[" name" ].get <std::string_view>();
186
- parsedOptions.mDescription = options[" description" ].get <std::string_view>();
187
- manager->inputTriggers ().insert (std::move (parsedOptions));
188
- };
183
+ api[" registerTrigger" ]
184
+ = [manager = context.mLuaManager , persistent = context.mType == Context::Menu](sol::table options) {
185
+ LuaUtil::InputTrigger::Info parsedOptions;
186
+ parsedOptions.mKey = options[" key" ].get <std::string_view>();
187
+ parsedOptions.mL10n = options[" l10n" ].get <std::string_view>();
188
+ parsedOptions.mName = options[" name" ].get <std::string_view>();
189
+ parsedOptions.mDescription = options[" description" ].get <std::string_view>();
190
+ parsedOptions.mPersistent = persistent;
191
+ manager->inputTriggers ().insert (std::move (parsedOptions));
192
+ };
189
193
api[" registerTriggerHandler" ]
190
194
= [manager = context.mLuaManager ](std::string_view key, const sol::table& callback) {
191
195
manager->inputTriggers ().registerHandler (key, LuaUtil::Callback::fromLua (callback));
0 commit comments