diff options
| author | Andrey Lihatskiy <118752495+marchcat@users.noreply.github.com> | 2026-08-14 22:14:30 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-14 22:14:30 +0300 |
| commit | 305bebbdb3b16b10b6011b5b3b5d63ee7c7334be (patch) | |
| tree | e06956ad5a89c9b5efc82b191e9357521ccbfdab /indra/newview/llviewermenu.cpp | |
| parent | 5b2090ee2aca6436cc262c1cd20cb14f6cdb5e3e (diff) | |
| parent | da1983fbdfa5a41fa6ba1d6fbefa073a53c4a282 (diff) | |
Merge pull request #6124 from secondlife/marchcat/5574
#5574 Add Lua and LSL-on-Luau options to Build - Scripts - Recompile Scripts.
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7131d84a4e..13d57a4ad2 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" @@ -8086,6 +8087,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"; @@ -8508,6 +8523,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; @@ -10430,5 +10466,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"); } |
