diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2026-08-12 20:02:58 +0300 |
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2026-08-12 20:02:58 +0300 |
| commit | c9bd8abe872e586d37459465d42f653fc4557a9a (patch) | |
| tree | 8c29ac2ed929f458f306977fecec292607a80a22 /indra | |
| parent | f6fa702706aeba8c5a3760a98883943cba3c973b (diff) | |
#5574 Add Lua recompilation menu options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 37 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 18 |
2 files changed, 55 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index dc509479c4..b940b8d47d 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -124,6 +124,7 @@ #include "llviewernetwork.h" #include "llviewerobjectlist.h" #include "llviewerparcelmgr.h" +#include "llviewerregion.h" #include "llviewerstats.h" #include "llviewerstatsrecorder.h" #include "llvlcomposition.h" @@ -8037,6 +8038,20 @@ class LLToolsSelectedScriptAction : public view_listener_t msg = "Recompile"; title = LLTrans::getString("CompileQueueTitle"); } + else if (action == "compile lua") + { + name = "compile_queue"; + target = "luau"; + msg = "Recompile"; + title = LLTrans::getString("CompileQueueTitle"); + } + else if (action == "compile lsl-luau") + { + name = "compile_queue"; + target = "lsl-luau"; + msg = "Recompile"; + title = LLTrans::getString("CompileQueueTitle"); + } else if (action == "reset") { name = "reset_queue"; @@ -8459,6 +8474,27 @@ class LLEditableSelectedMono : public view_listener_t } }; +static bool is_lua_scripts_enabled() +{ + LLViewerRegion* region = gAgent.getRegion(); + if (!region || region->getCapability("UpdateScriptTask").empty() || !region->simulatorFeaturesReceived()) + { + return false; + } + + LLSD simulator_features; + region->getSimulatorFeatures(simulator_features); + return simulator_features["LuaScriptsEnabled"].asBoolean(); +} + +class LLEditableSelectedLua : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + return is_editable_selected() && is_lua_scripts_enabled(); + } +}; + bool enable_object_take_copy() { bool all_valid = false; @@ -10383,5 +10419,6 @@ void initialize_menus() view_listener_t::addMenu(new LLSomethingSelectedNoHUD(), "SomethingSelectedNoHUD"); view_listener_t::addMenu(new LLEditableSelected(), "EditableSelected"); view_listener_t::addMenu(new LLEditableSelectedMono(), "EditableSelectedMono"); + view_listener_t::addMenu(new LLEditableSelectedLua(), "EditableSelectedLua"); view_listener_t::addMenu(new LLToggleUIHints(), "ToggleUIHints"); } diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 34b30e424d..e73a5bcad4 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1366,6 +1366,24 @@ function="World.EnvPreset" function="EditableSelected" /> </menu_item_call> <menu_item_call + label="Recompile Scripts (Lua)" + name="Lua"> + <menu_item_call.on_click + function="Tools.SelectedScriptAction" + parameter="compile lua" /> + <menu_item_call.on_enable + function="EditableSelectedLua" /> + </menu_item_call> + <menu_item_call + label="Recompile Scripts (LSL on Luau)" + name="LSL on Luau"> + <menu_item_call.on_click + function="Tools.SelectedScriptAction" + parameter="compile lsl-luau" /> + <menu_item_call.on_enable + function="EditableSelectedLua" /> + </menu_item_call> + <menu_item_call label="Reset Scripts" name="Reset Scripts"> <menu_item_call.on_click |
