From 7e91a787fb89e782382bf98c026d8f22d25691a1 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 4 Nov 2012 22:01:34 +0100
Subject: Add a method to query all registered script constants to allow
 non-XEngine script engines to use them.

---
 .../Region/Framework/Interfaces/IScriptModuleComms.cs    |  2 ++
 .../ScriptModuleComms/ScriptModuleCommsModule.cs         | 16 ++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
index ed71a95..a76ffde 100644
--- a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
+++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs
@@ -27,6 +27,7 @@
 
 using System;
 using System.Reflection;
+using System.Collections.Generic;
 using OpenMetaverse;
 
 namespace OpenSim.Region.Framework.Interfaces
@@ -70,6 +71,7 @@ namespace OpenSim.Region.Framework.Interfaces
         /// For constants
         void RegisterConstant(string cname, object value);
         object LookupModConstant(string cname);
+        Dictionary<string, object> GetConstants();
 
         // For use ONLY by the script API
         void RaiseEvent(UUID script, string id, string module, string command, string key);
diff --git a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
index 705a847..c5c96a9 100644
--- a/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/ScriptModuleComms/ScriptModuleCommsModule.cs
@@ -302,6 +302,22 @@ namespace OpenSim.Region.OptionalModules.Scripting.ScriptModuleComms
             return null;
         }
 
+        /// <summary>
+        /// Get all registered constants
+        /// </summary>
+        public Dictionary<string, object> GetConstants()
+        {
+            Dictionary<string, object> ret = new Dictionary<string, object>();
+
+            lock (m_constants)
+            {
+                foreach (KeyValuePair<string, object> kvp in m_constants)
+                    ret[kvp.Key] = kvp.Value;
+            }
+
+            return ret;
+        }
+
 #endregion
 
     }
-- 
cgit v1.1