aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorHomer Horwitz2008-10-16 21:46:03 +0000
committerHomer Horwitz2008-10-16 21:46:03 +0000
commitae9e38bf3fdc27144e0f3fa377c60506526e4c13 (patch)
treedb9515714c731464576c415d8d37021abbe9f469 /OpenSim
parentSplit the currency module into currency and a new Combat module, because (diff)
downloadopensim-SC_OLD-ae9e38bf3fdc27144e0f3fa377c60506526e4c13.zip
opensim-SC_OLD-ae9e38bf3fdc27144e0f3fa377c60506526e4c13.tar.gz
opensim-SC_OLD-ae9e38bf3fdc27144e0f3fa377c60506526e4c13.tar.bz2
opensim-SC_OLD-ae9e38bf3fdc27144e0f3fa377c60506526e4c13.tar.xz
Fixed (mono-)script handling for SL viewer 1.21:
- Added two missing caps (UpdateScriptAgent, UpdateScriptTask) - Added one missing EventQueue event (ScriptRunningReply) - Changed DNE and XEngine to use this new event As we only use the mono engine anyway, the "Mono" checkbox is set by default but doesn't have any function.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Communications/Capabilities/Caps.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs17
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs14
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs13
4 files changed, 42 insertions, 4 deletions
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs
index 0c52e5e..fd43e89 100644
--- a/OpenSim/Framework/Communications/Capabilities/Caps.cs
+++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs
@@ -171,6 +171,8 @@ namespace OpenSim.Framework.Communications.Capabilities
171 m_capsHandlers["UpdateScriptAgentInventory"] = m_capsHandlers["UpdateNotecardAgentInventory"]; 171 m_capsHandlers["UpdateScriptAgentInventory"] = m_capsHandlers["UpdateNotecardAgentInventory"];
172 m_capsHandlers["UpdateScriptTaskInventory"] = 172 m_capsHandlers["UpdateScriptTaskInventory"] =
173 new RestStreamHandler("POST", capsBase + m_notecardTaskUpdatePath, ScriptTaskInventory); 173 new RestStreamHandler("POST", capsBase + m_notecardTaskUpdatePath, ScriptTaskInventory);
174 m_capsHandlers["UpdateScriptAgent"] = m_capsHandlers["UpdateScriptAgentInventory"];
175 m_capsHandlers["UpdateScriptTask"] = m_capsHandlers["UpdateScriptTaskInventory"];
174 176
175 // justincc: I've disabled the CAPS service for now to fix problems with selecting textures, and 177 // justincc: I've disabled the CAPS service for now to fix problems with selecting textures, and
176 // subsequent inventory breakage, in the edit object pane (such as mantis 1085). This requires 178 // subsequent inventory breakage, in the edit object pane (such as mantis 1085). This requires
diff --git a/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs b/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
index 93ee4f8..1e7eb59 100644
--- a/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
+++ b/OpenSim/Region/Environment/Modules/Framework/EventQueueHelper.cs
@@ -146,6 +146,23 @@ namespace OpenSim.Region.Environment
146 return buildEvent("TeleportFinish", body); 146 return buildEvent("TeleportFinish", body);
147 } 147 }
148 148
149 public static LLSD ScriptRunningReplyEvent(UUID objectID, UUID itemID, bool running, bool mono)
150 {
151 LLSDMap script = new LLSDMap();
152 script.Add("ObjectID", LLSD.FromUUID(objectID));
153 script.Add("ItemID", LLSD.FromUUID(itemID));
154 script.Add("Running", LLSD.FromBoolean(running));
155 script.Add("Mono", LLSD.FromBoolean(mono));
156
157 LLSDArray scriptArr = new LLSDArray();
158 scriptArr.Add(script);
159
160 LLSDMap body = new LLSDMap();
161 body.Add("Script", scriptArr);
162
163 return buildEvent("ScriptRunningReply", body);
164 }
165
149 public static LLSD KeepAliveEvent() 166 public static LLSD KeepAliveEvent()
150 { 167 {
151 return buildEvent("FAKEEVENT", new LLSDMap()); 168 return buildEvent("FAKEEVENT", new LLSDMap());
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
index 1c1d42f..d3269e1 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
@@ -32,6 +32,7 @@ using log4net;
32using Nini.Config; 32using Nini.Config;
33using OpenSim.Region.Interfaces; 33using OpenSim.Region.Interfaces;
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Region.Environment;
35using OpenSim.Region.Environment.Interfaces; 36using OpenSim.Region.Environment.Interfaces;
36using OpenSim.Region.Environment.Scenes; 37using OpenSim.Region.Environment.Scenes;
37using OpenSim.Region.ScriptEngine.Interfaces; 38using OpenSim.Region.ScriptEngine.Interfaces;
@@ -369,8 +370,17 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
369 if (id == null) 370 if (id == null)
370 return; 371 return;
371 372
372 controllingClient.SendScriptRunningReply(objectID, itemID, 373 IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
373 id.Running); 374 if (eq == null)
375 {
376 controllingClient.SendScriptRunningReply(objectID, itemID,
377 id.Running);
378 }
379 else
380 {
381 eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, id.Running, true),
382 controllingClient.AgentId);
383 }
374 } 384 }
375 385
376 public IScriptApi GetApi(UUID itemID, string name) 386 public IScriptApi GetApi(UUID itemID, string name)
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 9b78d53..86dc824 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -972,8 +972,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
972 IScriptInstance instance = GetInstance(itemID); 972 IScriptInstance instance = GetInstance(itemID);
973 if (instance == null) 973 if (instance == null)
974 return; 974 return;
975 controllingClient.SendScriptRunningReply(objectID, itemID, 975 IEventQueue eq = World.RequestModuleInterface<IEventQueue>();
976 GetScriptState(itemID)); 976 if (eq == null)
977 {
978 controllingClient.SendScriptRunningReply(objectID, itemID,
979 GetScriptState(itemID));
980 }
981 else
982 {
983 eq.Enqueue(EventQueueHelper.ScriptRunningReplyEvent(objectID, itemID, GetScriptState(itemID), true),
984 controllingClient.AgentId);
985 }
977 } 986 }
978 } 987 }
979} 988}