diff options
Diffstat (limited to 'OpenSim/Region/Framework/Interfaces')
10 files changed, 319 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs index 90a13a7..d781eae 100644 --- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | |||
@@ -114,6 +114,15 @@ namespace OpenSim.Region.Framework.Interfaces | |||
114 | void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID); | 114 | void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID); |
115 | 115 | ||
116 | /// <summary> | 116 | /// <summary> |
117 | /// Detach the given item to the ground at the specified coordinates & rotation | ||
118 | /// </summary> | ||
119 | /// <param name="sp"></param> | ||
120 | /// <param name="objectLocalID"></param> | ||
121 | /// <param name="absolutePos"></param> | ||
122 | /// <param name="absoluteRot"></param> | ||
123 | void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID, Vector3 absolutePos, Quaternion absoluteRot); | ||
124 | |||
125 | /// <summary> | ||
117 | /// Detach the given attachment so that it remains in the user's inventory. | 126 | /// Detach the given attachment so that it remains in the user's inventory. |
118 | /// </summary> | 127 | /// </summary> |
119 | /// <param name="sp">/param> | 128 | /// <param name="sp">/param> |
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs index 8954513..6df5cc2 100644 --- a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs +++ b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs | |||
@@ -25,6 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | ||
29 | using System.Drawing; | ||
28 | using System.IO; | 30 | using System.IO; |
29 | using OpenMetaverse; | 31 | using OpenMetaverse; |
30 | 32 | ||
@@ -33,7 +35,14 @@ namespace OpenSim.Region.Framework.Interfaces | |||
33 | public interface IDynamicTextureManager | 35 | public interface IDynamicTextureManager |
34 | { | 36 | { |
35 | void RegisterRender(string handleType, IDynamicTextureRender render); | 37 | void RegisterRender(string handleType, IDynamicTextureRender render); |
36 | void ReturnData(UUID id, byte[] data); | 38 | |
39 | /// <summary> | ||
40 | /// Used by IDynamicTextureRender implementations to return renders | ||
41 | /// </summary> | ||
42 | /// <param name='id'></param> | ||
43 | /// <param name='data'></param> | ||
44 | /// <param name='isReuseable'></param> | ||
45 | void ReturnData(UUID id, IDynamicTexture texture); | ||
37 | 46 | ||
38 | UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, | 47 | UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, |
39 | int updateTimer); | 48 | int updateTimer); |
@@ -113,11 +122,65 @@ namespace OpenSim.Region.Framework.Interfaces | |||
113 | string GetName(); | 122 | string GetName(); |
114 | string GetContentType(); | 123 | string GetContentType(); |
115 | bool SupportsAsynchronous(); | 124 | bool SupportsAsynchronous(); |
116 | byte[] ConvertUrl(string url, string extraParams); | 125 | |
117 | byte[] ConvertStream(Stream data, string extraParams); | 126 | // /// <summary> |
127 | // /// Return true if converting the input body and extra params data will always result in the same byte[] array | ||
128 | // /// </summary> | ||
129 | // /// <remarks> | ||
130 | // /// This method allows the caller to use a previously generated asset if it has one. | ||
131 | // /// </remarks> | ||
132 | // /// <returns></returns> | ||
133 | // /// <param name='bodyData'></param> | ||
134 | // /// <param name='extraParams'></param> | ||
135 | // bool AlwaysIdenticalConversion(string bodyData, string extraParams); | ||
136 | |||
137 | IDynamicTexture ConvertUrl(string url, string extraParams); | ||
138 | IDynamicTexture ConvertData(string bodyData, string extraParams); | ||
139 | |||
118 | bool AsyncConvertUrl(UUID id, string url, string extraParams); | 140 | bool AsyncConvertUrl(UUID id, string url, string extraParams); |
119 | bool AsyncConvertData(UUID id, string bodyData, string extraParams); | 141 | bool AsyncConvertData(UUID id, string bodyData, string extraParams); |
142 | |||
120 | void GetDrawStringSize(string text, string fontName, int fontSize, | 143 | void GetDrawStringSize(string text, string fontName, int fontSize, |
121 | out double xSize, out double ySize); | 144 | out double xSize, out double ySize); |
122 | } | 145 | } |
146 | |||
147 | public interface IDynamicTexture | ||
148 | { | ||
149 | /// <summary> | ||
150 | /// Input commands used to generate this data. | ||
151 | /// </summary> | ||
152 | /// <remarks> | ||
153 | /// Null if input commands were not used. | ||
154 | /// </remarks> | ||
155 | string InputCommands { get; } | ||
156 | |||
157 | /// <summary> | ||
158 | /// Uri used to generate this data. | ||
159 | /// </summary> | ||
160 | /// <remarks> | ||
161 | /// Null if a uri was not used. | ||
162 | /// </remarks> | ||
163 | Uri InputUri { get; } | ||
164 | |||
165 | /// <summary> | ||
166 | /// Extra input params used to generate this data. | ||
167 | /// </summary> | ||
168 | string InputParams { get; } | ||
169 | |||
170 | /// <summary> | ||
171 | /// Texture data. | ||
172 | /// </summary> | ||
173 | byte[] Data { get; } | ||
174 | |||
175 | /// <summary> | ||
176 | /// Size of texture. | ||
177 | /// </summary> | ||
178 | Size Size { get; } | ||
179 | |||
180 | /// <summary> | ||
181 | /// Signal whether the texture is reuseable (i.e. whether the same input data will always generate the same | ||
182 | /// texture). | ||
183 | /// </summary> | ||
184 | bool IsReuseable { get; } | ||
185 | } | ||
123 | } | 186 | } |
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs index 4274cbe..8028d87 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs | |||
@@ -152,6 +152,19 @@ namespace OpenSim.Region.Framework.Interfaces | |||
152 | void StopScriptInstance(UUID itemId); | 152 | void StopScriptInstance(UUID itemId); |
153 | 153 | ||
154 | /// <summary> | 154 | /// <summary> |
155 | /// Try to get the script running status. | ||
156 | /// </summary> | ||
157 | /// <returns> | ||
158 | /// Returns true if a script for the item was found in one of the simulator's script engines. In this case, | ||
159 | /// the running parameter will reflect the running status. | ||
160 | /// Returns false if the item could not be found, if the item is not a script or if a script instance for the | ||
161 | /// item was not found in any of the script engines. In this case, running status is irrelevant. | ||
162 | /// </returns> | ||
163 | /// <param name='itemId'></param> | ||
164 | /// <param name='running'></param> | ||
165 | bool TryGetScriptInstanceRunning(UUID itemId, out bool running); | ||
166 | |||
167 | /// <summary> | ||
155 | /// Add an item to this entity's inventory. If an item with the same name already exists, then an alternative | 168 | /// Add an item to this entity's inventory. If an item with the same name already exists, then an alternative |
156 | /// name is chosen. | 169 | /// name is chosen. |
157 | /// </summary> | 170 | /// </summary> |
@@ -270,17 +283,25 @@ namespace OpenSim.Region.Framework.Interfaces | |||
270 | void ApplyGodPermissions(uint perms); | 283 | void ApplyGodPermissions(uint perms); |
271 | 284 | ||
272 | /// <summary> | 285 | /// <summary> |
286 | /// Number of items in this inventory. | ||
287 | /// </summary> | ||
288 | int Count { get; } | ||
289 | |||
290 | /// <summary> | ||
273 | /// Returns true if this inventory contains any scripts | 291 | /// Returns true if this inventory contains any scripts |
274 | /// </summary></returns> | 292 | /// </summary></returns> |
275 | bool ContainsScripts(); | 293 | bool ContainsScripts(); |
276 | 294 | ||
277 | /// <summary> | 295 | /// <summary> |
278 | /// Returns the count of scripts contained | 296 | /// Number of scripts in this inventory. |
279 | /// </summary></returns> | 297 | /// </summary> |
298 | /// <remarks> | ||
299 | /// Includes both running and non running scripts. | ||
300 | /// </remarks> | ||
280 | int ScriptCount(); | 301 | int ScriptCount(); |
281 | 302 | ||
282 | /// <summary> | 303 | /// <summary> |
283 | /// Returns the count of running scripts contained | 304 | /// Number of running scripts in this inventory. |
284 | /// </summary></returns> | 305 | /// </summary></returns> |
285 | int RunningScriptCount(); | 306 | int RunningScriptCount(); |
286 | 307 | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs index ca2ad94..292efa4 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs | |||
@@ -46,6 +46,10 @@ namespace OpenSim.Region.Framework.Interfaces | |||
46 | /// </summary> | 46 | /// </summary> |
47 | void sendRegionHandshakeToAll(); | 47 | void sendRegionHandshakeToAll(); |
48 | void TriggerEstateInfoChange(); | 48 | void TriggerEstateInfoChange(); |
49 | |||
50 | /// <summary> | ||
51 | /// Fires the OnRegionInfoChange event. | ||
52 | /// </summary> | ||
49 | void TriggerRegionInfoChange(); | 53 | void TriggerRegionInfoChange(); |
50 | 54 | ||
51 | void setEstateTerrainBaseTexture(int level, UUID texture); | 55 | void setEstateTerrainBaseTexture(int level, UUID texture); |
diff --git a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs index baac6e8..da39e95 100644 --- a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs | |||
@@ -35,7 +35,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
35 | 35 | ||
36 | public interface IJsonStoreModule | 36 | public interface IJsonStoreModule |
37 | { | 37 | { |
38 | bool CreateStore(string value, out UUID result); | 38 | bool CreateStore(string value, ref UUID result); |
39 | bool DestroyStore(UUID storeID); | 39 | bool DestroyStore(UUID storeID); |
40 | bool TestPath(UUID storeID, string path, bool useJson); | 40 | bool TestPath(UUID storeID, string path, bool useJson); |
41 | bool SetValue(UUID storeID, string path, string value, bool useJson); | 41 | bool SetValue(UUID storeID, string path, string value, bool useJson); |
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs index a76ffde..70ff954 100644 --- a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs +++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs | |||
@@ -47,9 +47,46 @@ namespace OpenSim.Region.Framework.Interfaces | |||
47 | /// </summary> | 47 | /// </summary> |
48 | event ScriptCommand OnScriptCommand; | 48 | event ScriptCommand OnScriptCommand; |
49 | 49 | ||
50 | /// <summary> | ||
51 | /// Register an instance method as a script call by method name | ||
52 | /// </summary> | ||
53 | /// <param name="target"></param> | ||
54 | /// <param name="method"></param> | ||
50 | void RegisterScriptInvocation(object target, string method); | 55 | void RegisterScriptInvocation(object target, string method); |
56 | |||
57 | /// <summary> | ||
58 | /// Register a static or instance method as a script call by method info | ||
59 | /// </summary> | ||
60 | /// <param name="target">If target is a Type object, will assume method is static.</param> | ||
61 | /// <param name="method"></param> | ||
51 | void RegisterScriptInvocation(object target, MethodInfo method); | 62 | void RegisterScriptInvocation(object target, MethodInfo method); |
63 | |||
64 | /// <summary> | ||
65 | /// Register one or more instance methods as script calls by method name | ||
66 | /// </summary> | ||
67 | /// <param name="target"></param> | ||
68 | /// <param name="methods"></param> | ||
52 | void RegisterScriptInvocation(object target, string[] methods); | 69 | void RegisterScriptInvocation(object target, string[] methods); |
70 | |||
71 | /// <summary> | ||
72 | /// Register one or more static methods as script calls by method name | ||
73 | /// </summary> | ||
74 | /// <param name="target"></param> | ||
75 | /// <param name="methods"></param> | ||
76 | void RegisterScriptInvocation(Type target, string[] methods); | ||
77 | |||
78 | /// <summary> | ||
79 | /// Automatically register script invocations by checking for methods | ||
80 | /// with <see cref="ScriptInvocationAttribute"/>. Should only check | ||
81 | /// public methods. | ||
82 | /// </summary> | ||
83 | /// <param name="target"></param> | ||
84 | void RegisterScriptInvocations(IRegionModuleBase target); | ||
85 | |||
86 | /// <summary> | ||
87 | /// Returns an array of all registered script calls | ||
88 | /// </summary> | ||
89 | /// <returns></returns> | ||
53 | Delegate[] GetScriptInvocationList(); | 90 | Delegate[] GetScriptInvocationList(); |
54 | 91 | ||
55 | Delegate LookupScriptInvocation(string fname); | 92 | Delegate LookupScriptInvocation(string fname); |
@@ -68,12 +105,44 @@ namespace OpenSim.Region.Framework.Interfaces | |||
68 | /// <param name="key"></param> | 105 | /// <param name="key"></param> |
69 | void DispatchReply(UUID scriptId, int code, string text, string key); | 106 | void DispatchReply(UUID scriptId, int code, string text, string key); |
70 | 107 | ||
71 | /// For constants | 108 | /// <summary> |
109 | /// Operation to for a region module to register a constant to be used | ||
110 | /// by the script engine | ||
111 | /// </summary> | ||
112 | /// <param name="cname"> | ||
113 | /// The name of the constant. LSL convention is for constant names to | ||
114 | /// be uppercase. | ||
115 | /// </param> | ||
116 | /// <param name="value"> | ||
117 | /// The value of the constant. Should be of a type that can be | ||
118 | /// converted to one of <see cref="OpenSim.Region.ScriptEngine.Shared.LSL_Types"/> | ||
119 | /// </param> | ||
72 | void RegisterConstant(string cname, object value); | 120 | void RegisterConstant(string cname, object value); |
121 | |||
122 | /// <summary> | ||
123 | /// Automatically register all constants on a region module by | ||
124 | /// checking for fields with <see cref="ScriptConstantAttribute"/>. | ||
125 | /// </summary> | ||
126 | /// <param name="target"></param> | ||
127 | void RegisterConstants(IRegionModuleBase target); | ||
128 | |||
129 | /// <summary> | ||
130 | /// Operation to check for a registered constant | ||
131 | /// </summary> | ||
132 | /// <param name="cname">Name of constant</param> | ||
133 | /// <returns>Value of constant or null if none found.</returns> | ||
73 | object LookupModConstant(string cname); | 134 | object LookupModConstant(string cname); |
74 | Dictionary<string, object> GetConstants(); | 135 | Dictionary<string, object> GetConstants(); |
75 | 136 | ||
76 | // For use ONLY by the script API | 137 | // For use ONLY by the script API |
77 | void RaiseEvent(UUID script, string id, string module, string command, string key); | 138 | void RaiseEvent(UUID script, string id, string module, string command, string key); |
78 | } | 139 | } |
140 | |||
141 | [AttributeUsage(AttributeTargets.Method)] | ||
142 | public class ScriptInvocationAttribute : Attribute | ||
143 | { } | ||
144 | |||
145 | [AttributeUsage(AttributeTargets.Field)] | ||
146 | public class ScriptConstantAttribute : Attribute | ||
147 | { } | ||
79 | } | 148 | } |
diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs index 6117a80..68af492 100644 --- a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs | |||
@@ -32,9 +32,96 @@ namespace OpenSim.Region.Framework.Interfaces | |||
32 | { | 32 | { |
33 | public interface ISoundModule | 33 | public interface ISoundModule |
34 | { | 34 | { |
35 | void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID, double gain, Vector3 position, byte flags, float radius); | 35 | /// <summary> |
36 | 36 | /// Maximum distance between a sound source and a recipient. | |
37 | /// </summary> | ||
38 | float MaxDistance { get; } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Play a sound from an object. | ||
42 | /// </summary> | ||
43 | /// <param name="soundID">Sound asset ID</param> | ||
44 | /// <param name="ownerID">Sound source owner</param> | ||
45 | /// <param name="objectID">Sound source ID</param> | ||
46 | /// <param name="gain">Sound volume</param> | ||
47 | /// <param name="position">Sound source position</param> | ||
48 | /// <param name="flags">Sound flags</param> | ||
49 | /// <param name="radius"> | ||
50 | /// Radius used to affect gain over distance. | ||
51 | /// </param> | ||
52 | void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID, | ||
53 | double gain, Vector3 position, byte flags, float radius); | ||
54 | |||
55 | /// <summary> | ||
56 | /// Trigger a sound in the scene. | ||
57 | /// </summary> | ||
58 | /// <param name="soundId">Sound asset ID</param> | ||
59 | /// <param name="ownerID">Sound source owner</param> | ||
60 | /// <param name="objectID">Sound source ID</param> | ||
61 | /// <param name="parentID">Sound source parent.</param> | ||
62 | /// <param name="gain">Sound volume</param> | ||
63 | /// <param name="position">Sound source position</param> | ||
64 | /// <param name="handle"></param> | ||
65 | /// <param name="radius"> | ||
66 | /// Radius used to affect gain over distance. | ||
67 | /// </param> | ||
37 | void TriggerSound( | 68 | void TriggerSound( |
38 | UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle, float radius); | 69 | UUID soundId, UUID ownerID, UUID objectID, UUID parentID, |
70 | double gain, Vector3 position, UInt64 handle, float radius); | ||
71 | |||
72 | /// <summary> | ||
73 | /// Stop sounds eminating from an object. | ||
74 | /// </summary> | ||
75 | /// <param name="objectID">Sound source ID</param> | ||
76 | void StopSound(UUID objectID); | ||
77 | |||
78 | /// <summary> | ||
79 | /// Preload sound to viewers within range. | ||
80 | /// </summary> | ||
81 | /// <param name="objectID">Sound source ID</param> | ||
82 | /// <param name="soundID">Sound asset ID</param> | ||
83 | /// <param name="radius"> | ||
84 | /// Radius used to determine which viewers should preload the sound. | ||
85 | /// </param> | ||
86 | void PreloadSound(UUID objectID, UUID soundID, float radius); | ||
87 | |||
88 | /// <summary> | ||
89 | /// Loop specified sound at specified volume with specified radius, | ||
90 | /// optionally declaring object as new sync master. | ||
91 | /// </summary> | ||
92 | /// <param name="objectID">Sound source ID</param> | ||
93 | /// <param name="soundID">Sound asset ID</param> | ||
94 | /// <param name="gain">Sound volume</param> | ||
95 | /// <param name="radius">Sound radius</param> | ||
96 | /// <param name="isMaster">Set object to sync master if true</param> | ||
97 | void LoopSound(UUID objectID, UUID soundID, double gain, | ||
98 | double radius, bool isMaster); | ||
99 | |||
100 | /// <summary> | ||
101 | /// Trigger or play an attached sound in this part's inventory. | ||
102 | /// </summary> | ||
103 | /// <param name="objectID">Sound source ID</param> | ||
104 | /// <param name="sound">Sound asset ID</param> | ||
105 | /// <param name="volume">Sound volume</param> | ||
106 | /// <param name="triggered">Triggered or not.</param> | ||
107 | /// <param name="flags"></param> | ||
108 | /// <param name="radius">Sound radius</param> | ||
109 | /// <param name="useMaster">Play using sound master</param> | ||
110 | /// <param name="isMaster">Play as sound master</param> | ||
111 | void SendSound(UUID objectID, UUID sound, double volume, | ||
112 | bool triggered, byte flags, float radius, bool useMaster, | ||
113 | bool isMaster); | ||
114 | |||
115 | /// <summary> | ||
116 | /// Trigger a sound to be played to all agents within an axis-aligned | ||
117 | /// bounding box. | ||
118 | /// </summary> | ||
119 | /// <param name="objectID">Sound source ID</param> | ||
120 | /// <param name="sound">Sound asset ID</param> | ||
121 | /// <param name="volume">Sound volume</param> | ||
122 | /// <param name="min">AABB bottom south-west corner</param> | ||
123 | /// <param name="max">AABB top north-east corner</param> | ||
124 | void TriggerSoundLimited(UUID objectID, UUID sound, double volume, | ||
125 | Vector3 min, Vector3 max); | ||
39 | } | 126 | } |
40 | } \ No newline at end of file | 127 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs index 457444c..79e9f9d 100644 --- a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs | |||
@@ -39,6 +39,8 @@ namespace OpenSim.Region.Framework.Interfaces | |||
39 | UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID); | 39 | UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID); |
40 | void ReleaseURL(string url); | 40 | void ReleaseURL(string url); |
41 | void HttpResponse(UUID request, int status, string body); | 41 | void HttpResponse(UUID request, int status, string body); |
42 | void HttpContentType(UUID request, string type); | ||
43 | |||
42 | string GetHttpHeader(UUID request, string header); | 44 | string GetHttpHeader(UUID request, string header); |
43 | int GetFreeUrls(); | 45 | int GetFreeUrls(); |
44 | 46 | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IUserManagement.cs b/OpenSim/Region/Framework/Interfaces/IUserManagement.cs index 24cd069..f8088c3 100644 --- a/OpenSim/Region/Framework/Interfaces/IUserManagement.cs +++ b/OpenSim/Region/Framework/Interfaces/IUserManagement.cs | |||
@@ -1,4 +1,31 @@ | |||
1 | using System; | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
2 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
3 | 30 | ||
4 | using OpenMetaverse; | 31 | using OpenMetaverse; |
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs index e8e375e..20e0199 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs | |||
@@ -45,6 +45,13 @@ namespace OpenSim.Region.Framework.Interfaces | |||
45 | void Deactivate(); | 45 | void Deactivate(); |
46 | void Activate(); | 46 | void Activate(); |
47 | UUID GetID(); | 47 | UUID GetID(); |
48 | |||
49 | /// <summary> | ||
50 | /// Bitfield indicating which strings should be processed as regex. | ||
51 | /// 1 corresponds to IWorldCommListenerInfo::GetName() | ||
52 | /// 2 corresponds to IWorldCommListenerInfo::GetMessage() | ||
53 | /// </summary> | ||
54 | int RegexBitfield { get; } | ||
48 | } | 55 | } |
49 | 56 | ||
50 | public interface IWorldComm | 57 | public interface IWorldComm |
@@ -60,7 +67,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
60 | /// the script during 'peek' time. Parameter hostID is needed to | 67 | /// the script during 'peek' time. Parameter hostID is needed to |
61 | /// determine the position of the script. | 68 | /// determine the position of the script. |
62 | /// </summary> | 69 | /// </summary> |
63 | /// <param name="localID">localID of the script engine</param> | 70 | /// <param name="LocalID">localID of the script engine</param> |
64 | /// <param name="itemID">UUID of the script engine</param> | 71 | /// <param name="itemID">UUID of the script engine</param> |
65 | /// <param name="hostID">UUID of the SceneObjectPart</param> | 72 | /// <param name="hostID">UUID of the SceneObjectPart</param> |
66 | /// <param name="channel">channel to listen on</param> | 73 | /// <param name="channel">channel to listen on</param> |
@@ -70,6 +77,23 @@ namespace OpenSim.Region.Framework.Interfaces | |||
70 | /// <returns>number of the scripts handle</returns> | 77 | /// <returns>number of the scripts handle</returns> |
71 | int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg); | 78 | int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg); |
72 | 79 | ||
80 | /// <summary> | ||
81 | /// Create a listen event callback with the specified filters. | ||
82 | /// The parameters localID,itemID are needed to uniquely identify | ||
83 | /// the script during 'peek' time. Parameter hostID is needed to | ||
84 | /// determine the position of the script. | ||
85 | /// </summary> | ||
86 | /// <param name="LocalID">localID of the script engine</param> | ||
87 | /// <param name="itemID">UUID of the script engine</param> | ||
88 | /// <param name="hostID">UUID of the SceneObjectPart</param> | ||
89 | /// <param name="channel">channel to listen on</param> | ||
90 | /// <param name="name">name to filter on</param> | ||
91 | /// <param name="id">key to filter on (user given, could be totally faked)</param> | ||
92 | /// <param name="msg">msg to filter on</param> | ||
93 | /// <param name="regexBitfield">Bitfield indicating which strings should be processed as regex.</param> | ||
94 | /// <returns>number of the scripts handle</returns> | ||
95 | int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg, int regexBitfield); | ||
96 | |||
73 | /// <summary> | 97 | /// <summary> |
74 | /// This method scans over the objects which registered an interest in listen callbacks. | 98 | /// This method scans over the objects which registered an interest in listen callbacks. |
75 | /// For everyone it finds, it checks if it fits the given filter. If it does, then | 99 | /// For everyone it finds, it checks if it fits the given filter. If it does, then |