summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2026-08-12 20:02:58 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2026-08-12 20:02:58 +0300
commitc9bd8abe872e586d37459465d42f653fc4557a9a (patch)
tree8c29ac2ed929f458f306977fecec292607a80a22 /indra
parentf6fa702706aeba8c5a3760a98883943cba3c973b (diff)
#5574 Add Lua recompilation menu options
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llviewermenu.cpp37
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml18
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