diff options
Diffstat (limited to 'OpenSim/Region/Framework/Interfaces')
80 files changed, 6072 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs new file mode 100644 index 0000000..0cc8fb6 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs | |||
@@ -0,0 +1,48 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | using OpenSim.Region.Framework.Scenes; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public interface IAgentAssetTransactions | ||
35 | { | ||
36 | void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID, | ||
37 | InventoryItemBase item); | ||
38 | |||
39 | void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID, | ||
40 | uint callbackID, string description, string name, sbyte invType, | ||
41 | sbyte type, byte wearableType, uint nextOwnerMask); | ||
42 | |||
43 | void HandleTaskItemUpdateFromTransaction( | ||
44 | IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item); | ||
45 | |||
46 | void RemoveAgentAssetTransactions(UUID userID); | ||
47 | } | ||
48 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs b/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs new file mode 100644 index 0000000..ccb2a03 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IAgentStatefulModule.cs | |||
@@ -0,0 +1,61 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public interface IAgentStatefulModule | ||
35 | { | ||
36 | /// <summary> | ||
37 | /// Returns a list of all the formats (by UUID) that this module | ||
38 | /// can render agent state in. | ||
39 | /// </summary> | ||
40 | List<UUID> GetRenderStateFormats(); | ||
41 | |||
42 | /// <summary> | ||
43 | /// Returns a list (by UUID) of all formats this module can decode | ||
44 | /// to populate it's internal agent-related state. | ||
45 | /// </summary> | ||
46 | List<UUID> GetAcceptStateFormats(); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Render all internally held state for the given agent in the | ||
50 | /// requested format. | ||
51 | /// </summary> | ||
52 | string RenderState(UUID agentID, UUID format); | ||
53 | |||
54 | /// <summary> | ||
55 | /// Populate the internal state for the given agent from the | ||
56 | /// data argument, which is in the specified format. All prior | ||
57 | /// state relating to this agent is removed by this operation. | ||
58 | /// </summary> | ||
59 | bool ReceiveState(UUID agentID, UUID format, string data); | ||
60 | } | ||
61 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs new file mode 100644 index 0000000..d9901bd --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs | |||
@@ -0,0 +1,140 @@ | |||
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 OpenSim 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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | public interface IAttachmentsModule | ||
37 | { | ||
38 | /// <summary> | ||
39 | /// Copy attachment data from a ScenePresence into the AgentData structure for transmission to another simulator | ||
40 | /// </summary> | ||
41 | /// <param name='sp'></param> | ||
42 | /// <param name='ad'></param> | ||
43 | void CopyAttachments(IScenePresence sp, AgentData ad); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Copy attachment data from an AgentData structure into a ScenePresence. | ||
47 | /// </summary> | ||
48 | /// <param name='ad'></param> | ||
49 | /// <param name='sp'></param> | ||
50 | void CopyAttachments(AgentData ad, IScenePresence sp); | ||
51 | |||
52 | /// <summary> | ||
53 | /// RezAttachments. This should only be called upon login on the first region. | ||
54 | /// Attachment rezzings on crossings and TPs are done in a different way. | ||
55 | /// </summary> | ||
56 | /// <remarks> | ||
57 | /// This is only actually necessary for viewers which do not have a current outfit folder (these viewers make | ||
58 | /// their own attachment calls on login) and agents which have attachments but no viewer (e.g. NPCs). | ||
59 | /// </remarks> | ||
60 | /// <param name="sp"></param> | ||
61 | void RezAttachments(IScenePresence sp); | ||
62 | |||
63 | /// <summary> | ||
64 | /// Derez the attachements for a scene presence that is closing. | ||
65 | /// </summary> | ||
66 | /// <remarks> | ||
67 | /// Attachment changes are saved. | ||
68 | /// </remarks> | ||
69 | /// <param name="sp">The presence closing</param> | ||
70 | /// <param name="saveChanged">Save changed attachments.</param> | ||
71 | /// <param name="saveAllScripted">Save attachments with scripts even if they haven't changed.</para> | ||
72 | void DeRezAttachments(IScenePresence sp); | ||
73 | |||
74 | /// <summary> | ||
75 | /// Delete all the presence's attachments from the scene | ||
76 | /// This is done when a root agent leaves/is demoted to child (for instance, on logout, teleport or region cross). | ||
77 | /// </summary> | ||
78 | /// <param name="sp"></param> | ||
79 | /// <param name="silent"></param> | ||
80 | void DeleteAttachmentsFromScene(IScenePresence sp, bool silent); | ||
81 | |||
82 | /// <summary> | ||
83 | /// Attach an object to an avatar. | ||
84 | /// </summary> | ||
85 | /// <param name="sp"></param> | ||
86 | /// <param name="grp"></param> | ||
87 | /// <param name="AttachmentPt"></param> | ||
88 | /// <param name="silent"></param> | ||
89 | /// <param name="addToInventory">If true then add object to user inventory</param> | ||
90 | /// <param name="append">Append to attachment point rather than replace.</param> | ||
91 | /// <returns>true if the object was successfully attached, false otherwise</returns> | ||
92 | bool AttachObject(IScenePresence sp, SceneObjectGroup grp, uint AttachmentPt, bool silent, bool addToInventory, bool append); | ||
93 | |||
94 | /// <summary> | ||
95 | /// Rez an attachment from user inventory and change inventory status to match. | ||
96 | /// </summary> | ||
97 | /// <param name="sp"></param> | ||
98 | /// <param name="itemID"></param> | ||
99 | /// <param name="AttachmentPt"></param> | ||
100 | /// <returns>The scene object that was attached. Null if the scene object could not be found</returns> | ||
101 | SceneObjectGroup RezSingleAttachmentFromInventory(IScenePresence sp, UUID itemID, uint AttachmentPt); | ||
102 | |||
103 | /// <summary> | ||
104 | /// Rez multiple attachments from a user's inventory | ||
105 | /// </summary> | ||
106 | /// <param name="sp"></param> | ||
107 | /// <param name="rezlist"></param> | ||
108 | void RezMultipleAttachmentsFromInventory(IScenePresence sp,List<KeyValuePair<UUID, uint>> rezlist); | ||
109 | |||
110 | /// <summary> | ||
111 | /// Detach the given item to the ground. | ||
112 | /// </summary> | ||
113 | /// <param name="sp"></param> | ||
114 | /// <param name="objectLocalID"></param> | ||
115 | void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID); | ||
116 | |||
117 | /// <summary> | ||
118 | /// Detach the given item to the ground at the specified coordinates & rotation | ||
119 | /// </summary> | ||
120 | /// <param name="sp"></param> | ||
121 | /// <param name="objectLocalID"></param> | ||
122 | /// <param name="absolutePos"></param> | ||
123 | /// <param name="absoluteRot"></param> | ||
124 | void DetachSingleAttachmentToGround(IScenePresence sp, uint objectLocalID, Vector3 absolutePos, Quaternion absoluteRot); | ||
125 | |||
126 | /// <summary> | ||
127 | /// Detach the given attachment so that it remains in the user's inventory. | ||
128 | /// </summary> | ||
129 | /// <param name="sp">/param> | ||
130 | /// <param name="grp">The attachment to detach.</param> | ||
131 | void DetachSingleAttachmentToInv(IScenePresence sp, SceneObjectGroup grp); | ||
132 | |||
133 | /// <summary> | ||
134 | /// Update the position of an attachment. | ||
135 | /// </summary> | ||
136 | /// <param name="sog"></param> | ||
137 | /// <param name="pos"></param> | ||
138 | void UpdateAttachmentPosition(SceneObjectGroup sog, Vector3 pos); | ||
139 | } | ||
140 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs new file mode 100644 index 0000000..d25c930 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IAvatarFactoryModule.cs | |||
@@ -0,0 +1,104 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public delegate void ReportOutputAction(string format, params object[] args); | ||
35 | |||
36 | public interface IAvatarFactoryModule | ||
37 | { | ||
38 | void SetAppearance(IScenePresence sp, AvatarAppearance appearance, WearableCacheItem[] cacheItems); | ||
39 | void SetAppearance(IScenePresence sp, Primitive.TextureEntry textureEntry, byte[] visualParams, WearableCacheItem[] cacheItems); | ||
40 | |||
41 | /// <summary> | ||
42 | /// Send the appearance of an avatar to others in the scene. | ||
43 | /// </summary> | ||
44 | /// <param name="agentId"></param> | ||
45 | /// <returns></returns> | ||
46 | bool SendAppearance(UUID agentId); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Return the baked texture ids of the given agent. | ||
50 | /// </summary> | ||
51 | /// <param name="agentId"></param> | ||
52 | /// <returns>An empty list if this agent has no baked textures (e.g. because it's a child agent)</returns> | ||
53 | Dictionary<BakeType, Primitive.TextureEntryFace> GetBakedTextureFaces(UUID agentId); | ||
54 | |||
55 | |||
56 | WearableCacheItem[] GetCachedItems(UUID agentId); | ||
57 | /// <summary> | ||
58 | /// Save the baked textures for the given agent permanently in the asset database. | ||
59 | /// </summary> | ||
60 | /// <remarks> | ||
61 | /// This is used to preserve apperance textures for NPCs | ||
62 | /// </remarks> | ||
63 | /// <param name="agentId"></param> | ||
64 | /// <returns>true if a valid agent was found, false otherwise</returns> | ||
65 | bool SaveBakedTextures(UUID agentId); | ||
66 | |||
67 | /// <summary> | ||
68 | /// Validate that OpenSim can find the baked textures need to display a given avatar | ||
69 | /// </summary> | ||
70 | /// <param name="client"></param> | ||
71 | /// <param name="checkonly"></param> | ||
72 | /// <returns> | ||
73 | /// true if all the baked textures referenced by the texture IDs exist or the appearance is only using default textures. false otherwise. | ||
74 | /// </returns> | ||
75 | bool ValidateBakedTextureCache(IScenePresence sp); | ||
76 | |||
77 | /// <summary> | ||
78 | /// Request a rebake of textures for an avatar. | ||
79 | /// </summary> | ||
80 | /// <remarks> | ||
81 | /// This will send the request to the viewer, since it's there that the rebake is done. | ||
82 | /// </remarks> | ||
83 | /// <param name="sp">Avatar to rebake.</param> | ||
84 | /// <param name="missingTexturesOnly"> | ||
85 | /// If true, only request a rebake for the textures that are missing. | ||
86 | /// If false then we request a rebake of all textures for which we already have references. | ||
87 | /// </param> | ||
88 | /// <returns> | ||
89 | /// Number of rebake requests made. This will depend upon whether we've previously received texture IDs. | ||
90 | /// </returns> | ||
91 | int RequestRebake(IScenePresence sp, bool missingTexturesOnly); | ||
92 | |||
93 | void QueueAppearanceSend(UUID agentid); | ||
94 | void QueueAppearanceSave(UUID agentid); | ||
95 | |||
96 | /// <summary> | ||
97 | /// Get a report about the current state of a scene presence's baked appearance textures. | ||
98 | /// </summary> | ||
99 | /// <param name="sp"></param> | ||
100 | /// <param name="reportOutputAction"></param> | ||
101 | /// <returns></returns> | ||
102 | void WriteBakedTexturesReport(IScenePresence sp, ReportOutputAction reportOutputAction); | ||
103 | } | ||
104 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs new file mode 100644 index 0000000..b536a49 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs | |||
@@ -0,0 +1,40 @@ | |||
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; | ||
29 | using Nini.Config; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Services.Interfaces | ||
34 | { | ||
35 | public interface IBakedTextureModule | ||
36 | { | ||
37 | WearableCacheItem[] Get(UUID id); | ||
38 | void Store(UUID id, WearableCacheItem[] data); | ||
39 | } | ||
40 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs b/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs new file mode 100644 index 0000000..d1ce4c0 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IBuySellModule.cs | |||
@@ -0,0 +1,47 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IBuySellModule | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Try to buy an object | ||
37 | /// </summary> | ||
38 | /// <param name="remoteClient"></param> | ||
39 | /// <param name="categoryID"></param> | ||
40 | /// <param name="localID"></param> | ||
41 | /// <param name="saleType"></param> | ||
42 | /// <returns> | ||
43 | /// True on a successful purchase, false on failure | ||
44 | /// </returns> | ||
45 | bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice); | ||
46 | } | ||
47 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs b/OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs new file mode 100644 index 0000000..69682ac --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICallingCardModule.cs | |||
@@ -0,0 +1,40 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using OpenMetaverse; | ||
32 | using OpenSim.Framework; | ||
33 | |||
34 | namespace OpenSim.Framework | ||
35 | { | ||
36 | public interface ICallingCardModule | ||
37 | { | ||
38 | UUID CreateCallingCard(UUID userID, UUID creatorID, UUID folderID); | ||
39 | } | ||
40 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs new file mode 100644 index 0000000..522c82d --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICapabilitiesModule.cs | |||
@@ -0,0 +1,69 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using Caps=OpenSim.Framework.Capabilities.Caps; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface ICapabilitiesModule | ||
36 | { | ||
37 | /// <summary> | ||
38 | /// Add a caps handler for the given agent. If the CAPS handler already exists for this agent, | ||
39 | /// then it is replaced by a new CAPS handler. | ||
40 | /// </summary> | ||
41 | /// <param name="agentId"></param> | ||
42 | /// <param name="capsObjectPath"></param> | ||
43 | void CreateCaps(UUID agentId); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Remove the caps handler for a given agent. | ||
47 | /// </summary> | ||
48 | /// <param name="agentId"></param> | ||
49 | void RemoveCaps(UUID agentId); | ||
50 | |||
51 | /// <summary> | ||
52 | /// Will return null if the agent doesn't have a caps handler registered | ||
53 | /// </summary> | ||
54 | /// <param name="agentId"></param> | ||
55 | Caps GetCapsForUser(UUID agentId); | ||
56 | |||
57 | void SetAgentCapsSeeds(AgentCircuitData agent); | ||
58 | |||
59 | Dictionary<ulong, string> GetChildrenSeeds(UUID agentID); | ||
60 | |||
61 | string GetChildSeed(UUID agentID, ulong handle); | ||
62 | |||
63 | void SetChildrenSeed(UUID agentID, Dictionary<ulong, string> seeds); | ||
64 | |||
65 | void DropChildSeed(UUID agentID, ulong handle); | ||
66 | |||
67 | string GetCapsPath(UUID agentId); | ||
68 | } | ||
69 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICloudModule.cs b/OpenSim/Region/Framework/Interfaces/ICloudModule.cs new file mode 100644 index 0000000..54172bd --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICloudModule.cs | |||
@@ -0,0 +1,37 @@ | |||
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 | namespace OpenSim.Region.Framework.Interfaces | ||
29 | { | ||
30 | public interface ICloudModule | ||
31 | { | ||
32 | /// <summary> | ||
33 | /// Retrieves the cloud density at the given region coordinates | ||
34 | /// </summary> | ||
35 | float CloudCover(int x, int y, int z); | ||
36 | } | ||
37 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICommand.cs b/OpenSim/Region/Framework/Interfaces/ICommand.cs new file mode 100644 index 0000000..bf1be48 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICommand.cs | |||
@@ -0,0 +1,51 @@ | |||
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.Collections.Generic; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public enum CommandIntentions | ||
33 | { | ||
34 | COMMAND_STATISTICAL, | ||
35 | COMMAND_NON_HAZARDOUS, | ||
36 | COMMAND_HAZARDOUS | ||
37 | }; | ||
38 | |||
39 | public interface ICommand | ||
40 | { | ||
41 | void AddArgument(string name, string helptext, string type); | ||
42 | Dictionary<string, string> Arguments { get; } | ||
43 | string Help { get; } | ||
44 | string Name { get; } | ||
45 | CommandIntentions Intentions { get; } | ||
46 | |||
47 | void Run(object[] args); | ||
48 | void ShowConsoleHelp(); | ||
49 | string ShortHelp(); | ||
50 | } | ||
51 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs b/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs new file mode 100644 index 0000000..65d589c --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICommandableModule.cs | |||
@@ -0,0 +1,37 @@ | |||
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 | namespace OpenSim.Region.Framework.Interfaces | ||
29 | { | ||
30 | public interface ICommandableModule | ||
31 | { | ||
32 | ICommander CommandInterface | ||
33 | { | ||
34 | get; | ||
35 | } | ||
36 | } | ||
37 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ICommander.cs b/OpenSim/Region/Framework/Interfaces/ICommander.cs new file mode 100644 index 0000000..6b872c1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs | |||
@@ -0,0 +1,54 @@ | |||
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.Collections.Generic; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface ICommander | ||
33 | { | ||
34 | /// <value> | ||
35 | /// The name of this commander | ||
36 | /// </value> | ||
37 | string Name { get; } | ||
38 | |||
39 | /// <value> | ||
40 | /// Provide general help information about this commander. | ||
41 | /// </value> | ||
42 | string Help { get; } | ||
43 | |||
44 | /// <summary> | ||
45 | /// The commands available for this commander | ||
46 | /// </summary> | ||
47 | Dictionary<string, ICommand> Commands { get; } | ||
48 | |||
49 | void ProcessConsoleCommand(string function, string[] args); | ||
50 | void RegisterCommand(string commandName, ICommand command); | ||
51 | void Run(string function, object[] args); | ||
52 | string GenerateRuntimeAPI(); | ||
53 | } | ||
54 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs new file mode 100644 index 0000000..4d35c1c --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs | |||
@@ -0,0 +1,172 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IDialogModule | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Send a non-modal alert message to a particular user. This can | ||
37 | /// disappear from the user's view after a small interval. | ||
38 | /// </summary> | ||
39 | /// <param name="client"> | ||
40 | /// IClientAPI object representing the user. | ||
41 | /// </param> | ||
42 | /// <param name="message">Message text to send to the user.</param> | ||
43 | void SendAlertToUser(IClientAPI client, string message); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Send an alert message to a particular user. | ||
47 | /// </summary> | ||
48 | /// <param name="client"> | ||
49 | /// IClientAPI object representing the user. | ||
50 | /// </param> | ||
51 | /// <param name="message">Message text to send to the user.</param> | ||
52 | /// <param name="modal">Flag to control modality.</param> | ||
53 | void SendAlertToUser(IClientAPI client, string message, bool modal); | ||
54 | |||
55 | /// <summary> | ||
56 | /// Send a non-modal alert message to a particular user. | ||
57 | /// </summary> | ||
58 | /// <param name="agentID">UUID of agent representing the user.</param> | ||
59 | /// <param name="message">Message text to send to the user.</param> | ||
60 | void SendAlertToUser(UUID agentID, string message); | ||
61 | |||
62 | /// <summary> | ||
63 | /// Send an alert message to a particular user. | ||
64 | /// </summary> | ||
65 | /// <param name="agentID">UUID of agent representing the user.</param> | ||
66 | /// <param name="message">Message text to send to the user.</param> | ||
67 | /// <param name="modal">Flag to control modality.</param> | ||
68 | void SendAlertToUser(UUID agentID, string message, bool modal); | ||
69 | |||
70 | /// <summary> | ||
71 | /// Send an alert message to a particular user. | ||
72 | /// </summary> | ||
73 | /// <param name="firstName">Account first name</param> | ||
74 | /// <param name="lastName">Account last name</param> | ||
75 | /// <param name="message">Message text to send to the user.</param> | ||
76 | /// <param name="modal">Flag to control modality.</param> | ||
77 | void SendAlertToUser(string firstName, string lastName, | ||
78 | string message, bool modal); | ||
79 | |||
80 | /// <summary> | ||
81 | /// Send an alert message to all users in the scene. | ||
82 | /// </summary> | ||
83 | /// <param name="message">Message text to send to all users.</param> | ||
84 | void SendGeneralAlert(string message); | ||
85 | |||
86 | /// <summary> | ||
87 | /// Send a dialog box to a particular user. | ||
88 | /// </summary> | ||
89 | /// <param name="avatarID"> | ||
90 | /// UUID of the avatar representing the user. | ||
91 | /// </param> | ||
92 | /// <param name="objectName"> | ||
93 | /// Name of the object sending the dialog. | ||
94 | /// </param> | ||
95 | /// <param name="objectID"> | ||
96 | /// UUID of the object sending the dialog. | ||
97 | /// </param> | ||
98 | /// <param name="ownerID"> | ||
99 | /// UUID of the user that owns the object. | ||
100 | /// </param> | ||
101 | /// <param name="message">Message text to send to the user.</param> | ||
102 | /// <param name="textureID"> | ||
103 | /// Texture UUID to pass along with the dialog. | ||
104 | /// </param> | ||
105 | /// <param name="ch"> | ||
106 | /// Channel on which the selected button text should be broadcast. | ||
107 | /// </param> | ||
108 | /// <param name="buttonlabels">Dialog button text.</param> | ||
109 | void SendDialogToUser(UUID avatarID, string objectName, UUID objectID, | ||
110 | UUID ownerID, string message, UUID textureID, int ch, | ||
111 | string[] buttonlabels); | ||
112 | |||
113 | /// <summary> | ||
114 | /// Send a url to a particular user. | ||
115 | /// </summary> | ||
116 | /// <param name="avatarID"> | ||
117 | /// UUID of the avatar representing the user. | ||
118 | /// </param> | ||
119 | /// <param name="objectName"> | ||
120 | /// Name of the object sending the dialog. | ||
121 | /// </param> | ||
122 | /// <param name="objectID"> | ||
123 | /// UUID of the object sending the dialog. | ||
124 | /// </param> | ||
125 | /// <param name="ownerID"> | ||
126 | /// UUID of the user that owns the object. | ||
127 | /// </param> | ||
128 | /// <param name="groupOwned"> | ||
129 | /// Flag indicating whether or not the object is group-owned. | ||
130 | /// </param> | ||
131 | /// <param name="message">Message text to send to the user.</param> | ||
132 | /// <param name="url">Url to send to the user.</param> | ||
133 | void SendUrlToUser(UUID avatarID, string objectName, UUID objectID, | ||
134 | UUID ownerID, bool groupOwned, string message, string url); | ||
135 | |||
136 | /// <summary> | ||
137 | /// Send a notification to all users in the scene. This notification | ||
138 | /// should remain around until the user explicitly dismisses it. | ||
139 | /// </summary> | ||
140 | /// <remarks> | ||
141 | /// On the Linden Labs Second Client (as of 1.21), this is a big blue | ||
142 | /// box message on the upper right of the screen. | ||
143 | /// </remarks> | ||
144 | /// <param name="fromAvatarID">The user sending the message</param> | ||
145 | /// <param name="fromAvatarName"> | ||
146 | /// The name of the user doing the sending | ||
147 | /// </param> | ||
148 | /// <param name="message">The message being sent to the user</param> | ||
149 | void SendNotificationToUsersInRegion(UUID fromAvatarID, | ||
150 | string fromAvatarName, string message); | ||
151 | |||
152 | /// <summary> | ||
153 | /// Send a textbox entry for the client to respond to | ||
154 | /// </summary> | ||
155 | /// <param name="avatarID"> | ||
156 | /// UUID of the avatar representing the user. | ||
157 | /// </param> | ||
158 | /// <param name="message">Message text to send to the user.</param> | ||
159 | /// <param name="chatChannel"> | ||
160 | /// Chat channel that the user's input should be broadcast on. | ||
161 | /// </param> | ||
162 | /// <param name="name">Name of the object sending the dialog.</param> | ||
163 | /// <param name="objectid"> | ||
164 | /// UUID of the object sending the dialog. | ||
165 | /// </param> | ||
166 | /// <param name="ownerid"> | ||
167 | /// UUID of the user that owns the object. | ||
168 | /// </param> | ||
169 | void SendTextBoxToUser(UUID avatarid, string message, int chatChannel, | ||
170 | string name, UUID objectid, UUID ownerid); | ||
171 | } | ||
172 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IDwellModule.cs b/OpenSim/Region/Framework/Interfaces/IDwellModule.cs new file mode 100644 index 0000000..db50439 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IDwellModule.cs | |||
@@ -0,0 +1,37 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IDwellModule | ||
34 | { | ||
35 | int GetDwell(UUID parcelID); | ||
36 | } | ||
37 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs new file mode 100644 index 0000000..7684ce3 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IDynamicFloaterModule.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public delegate bool HandlerDelegate(IClientAPI client, FloaterData data, string[] msg); | ||
36 | |||
37 | public abstract class FloaterData | ||
38 | { | ||
39 | public abstract int Channel { get; } | ||
40 | public abstract string FloaterName { get; set; } | ||
41 | public virtual string XmlName { get; set; } | ||
42 | public virtual string XmlText { get; set; } | ||
43 | public virtual HandlerDelegate Handler { get; set; } | ||
44 | } | ||
45 | |||
46 | |||
47 | public interface IDynamicFloaterModule | ||
48 | { | ||
49 | void DoUserFloater(UUID agentID, FloaterData dialogData, string configuration); | ||
50 | void FloaterControl(ScenePresence sp, FloaterData d, string msg); | ||
51 | } | ||
52 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs new file mode 100644 index 0000000..08b71e4 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IDynamicMenuModule.cs | |||
@@ -0,0 +1,57 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public enum InsertLocation : int | ||
35 | { | ||
36 | Agent = 1, | ||
37 | World = 2, | ||
38 | Tools = 3, | ||
39 | Advanced = 4, | ||
40 | Admin = 5 | ||
41 | } | ||
42 | |||
43 | public enum UserMode : int | ||
44 | { | ||
45 | Normal = 0, | ||
46 | God = 3 | ||
47 | } | ||
48 | |||
49 | public delegate void CustomMenuHandler(string action, UUID agentID, List<uint> selection); | ||
50 | |||
51 | public interface IDynamicMenuModule | ||
52 | { | ||
53 | void AddMenuItem(UUID agentID, string title, InsertLocation location, UserMode mode, CustomMenuHandler handler); | ||
54 | void AddMenuItem(string title, InsertLocation location, UserMode mode, CustomMenuHandler handler); | ||
55 | void RemoveMenuItem(string action); | ||
56 | } | ||
57 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs new file mode 100644 index 0000000..6df5cc2 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IDynamicTextureManager.cs | |||
@@ -0,0 +1,186 @@ | |||
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; | ||
29 | using System.Drawing; | ||
30 | using System.IO; | ||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IDynamicTextureManager | ||
36 | { | ||
37 | void RegisterRender(string handleType, IDynamicTextureRender render); | ||
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); | ||
46 | |||
47 | UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, | ||
48 | int updateTimer); | ||
49 | UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, | ||
50 | int updateTimer, bool SetBlending, byte AlphaValue); | ||
51 | UUID AddDynamicTextureURL(UUID simID, UUID primID, string contentType, string url, string extraParams, | ||
52 | int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face); | ||
53 | UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, | ||
54 | int updateTimer); | ||
55 | |||
56 | /// Apply a dynamically generated texture to all sides of the given prim. The texture is not persisted to the | ||
57 | /// asset service. | ||
58 | /// </summary> | ||
59 | /// <param name="simID">The simulator in which the texture is being generated</param> | ||
60 | /// <param name="primID">The prim to which to apply the texture.</param> | ||
61 | /// <param name="contentType">The content type to create. Current choices are "vector" to create a vector | ||
62 | /// based texture or "image" to create a texture from an image at a particular URL</param> | ||
63 | /// <param name="data">The data for the generator</param> | ||
64 | /// <param name="extraParams">Parameters for the generator that don't form part of the main data.</param> | ||
65 | /// <param name="updateTimer">If zero, the image is never updated after the first generation. If positive | ||
66 | /// the image is updated at the given interval. Not implemented for </param> | ||
67 | /// <param name="SetBlending"> | ||
68 | /// If true, the newly generated texture is blended with the appropriate existing ones on the prim | ||
69 | /// </param> | ||
70 | /// <param name="AlphaValue"> | ||
71 | /// The alpha value of the generated texture. | ||
72 | /// </param> | ||
73 | /// <returns> | ||
74 | /// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need | ||
75 | /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture | ||
76 | /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID | ||
77 | /// </returns> | ||
78 | UUID AddDynamicTextureData(UUID simID, UUID primID, string contentType, string data, string extraParams, | ||
79 | int updateTimer, bool SetBlending, byte AlphaValue); | ||
80 | |||
81 | /// <summary> | ||
82 | /// Apply a dynamically generated texture to the given prim. | ||
83 | /// </summary> | ||
84 | /// <param name="simID">The simulator in which the texture is being generated</param> | ||
85 | /// <param name="primID">The prim to which to apply the texture.</param> | ||
86 | /// <param name="contentType">The content type to create. Current choices are "vector" to create a vector | ||
87 | /// based texture or "image" to create a texture from an image at a particular URL</param> | ||
88 | /// <param name="data">The data for the generator</param> | ||
89 | /// <param name="extraParams">Parameters for the generator that don't form part of the main data.</param> | ||
90 | /// <param name="updateTimer">If zero, the image is never updated after the first generation. If positive | ||
91 | /// the image is updated at the given interval. Not implemented for </param> | ||
92 | /// <param name="SetBlending"> | ||
93 | /// If true, the newly generated texture is blended with the appropriate existing ones on the prim | ||
94 | /// </param> | ||
95 | /// <param name="disp"> | ||
96 | /// Display flags. If DISP_EXPIRE then the old texture is deleted if it is replaced by a | ||
97 | /// newer generated texture (may not currently be implemented). If DISP_TEMP then the asset is flagged as | ||
98 | /// temporary, which often means that it is not persisted to the database. | ||
99 | /// </param> | ||
100 | /// <param name="AlphaValue"> | ||
101 | /// The alpha value of the generated texture. | ||
102 | /// </param> | ||
103 | /// <param name="face"> | ||
104 | /// The face of the prim on which to put the generated texture. If ALL_SIDES then all sides of the prim are | ||
105 | /// set | ||
106 | /// </param> | ||
107 | /// <returns> | ||
108 | /// The UUID of the texture updater, not the texture UUID. If you need the texture UUID then you will need | ||
109 | /// to obtain it directly from the SceneObjectPart. For instance, if ALL_SIDES is set then this texture | ||
110 | /// can be obtained as SceneObjectPart.Shape.Textures.DefaultTexture.TextureID | ||
111 | /// </returns> | ||
112 | UUID AddDynamicTextureData( | ||
113 | UUID simID, UUID primID, string contentType, string data, string extraParams, | ||
114 | int updateTimer, bool SetBlending, int disp, byte AlphaValue, int face); | ||
115 | |||
116 | void GetDrawStringSize(string contentType, string text, string fontName, int fontSize, | ||
117 | out double xSize, out double ySize); | ||
118 | } | ||
119 | |||
120 | public interface IDynamicTextureRender | ||
121 | { | ||
122 | string GetName(); | ||
123 | string GetContentType(); | ||
124 | bool SupportsAsynchronous(); | ||
125 | |||
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 | |||
140 | bool AsyncConvertUrl(UUID id, string url, string extraParams); | ||
141 | bool AsyncConvertData(UUID id, string bodyData, string extraParams); | ||
142 | |||
143 | void GetDrawStringSize(string text, string fontName, int fontSize, | ||
144 | out double xSize, out double ySize); | ||
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 | } | ||
186 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEmailModule.cs b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs new file mode 100644 index 0000000..4f1b91a --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEmailModule.cs | |||
@@ -0,0 +1,46 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public class Email | ||
33 | { | ||
34 | public string time; | ||
35 | public string sender; | ||
36 | public string subject; | ||
37 | public string message; | ||
38 | public int numLeft; | ||
39 | } | ||
40 | |||
41 | public interface IEmailModule | ||
42 | { | ||
43 | void SendEmail(UUID objectID, string address, string subject, string body); | ||
44 | Email GetNextEmail(UUID objectID, string sender, string subject); | ||
45 | } | ||
46 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs new file mode 100644 index 0000000..c39627c --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs | |||
@@ -0,0 +1,56 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | using OpenSim.Region.Framework.Scenes; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// Interface to a class that is capable of creating entities | ||
36 | /// </summary> | ||
37 | public interface IEntityCreator | ||
38 | { | ||
39 | /// <summary> | ||
40 | /// The entities that this class is capable of creating. These match the PCode format. | ||
41 | /// </summary> | ||
42 | /// <returns></returns> | ||
43 | PCode[] CreationCapabilities { get; } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Create an entity | ||
47 | /// </summary> | ||
48 | /// <param name="ownerID"></param> | ||
49 | /// <param name="groupID"></param> | ||
50 | /// <param name="pos"></param> | ||
51 | /// <param name="rot"></param> | ||
52 | /// <param name="shape"></param> | ||
53 | /// <returns>The entity created, or null if the creation failed</returns> | ||
54 | SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape); | ||
55 | } | ||
56 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs new file mode 100644 index 0000000..9ffda51 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs | |||
@@ -0,0 +1,322 @@ | |||
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.Collections.Generic; | ||
29 | using System.Collections; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | /// <summary> | ||
37 | /// Interface to an entity's (SceneObjectPart's) inventory | ||
38 | /// </summary> | ||
39 | /// | ||
40 | /// This is not a finished 1.0 candidate interface | ||
41 | public interface IEntityInventory | ||
42 | { | ||
43 | /// <summary> | ||
44 | /// Force the task inventory of this prim to persist at the next update sweep | ||
45 | /// </summary> | ||
46 | void ForceInventoryPersistence(); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Reset UUIDs for all the items in the prim's inventory. | ||
50 | /// </summary> | ||
51 | /// | ||
52 | /// This involves either generating | ||
53 | /// new ones or setting existing UUIDs to the correct parent UUIDs. | ||
54 | /// | ||
55 | /// If this method is called and there are inventory items, then we regard the inventory as having changed. | ||
56 | /// | ||
57 | /// <param name="linkNum">Link number for the part</param> | ||
58 | void ResetInventoryIDs(); | ||
59 | |||
60 | /// <summary> | ||
61 | /// Reset parent object UUID for all the items in the prim's inventory. | ||
62 | /// </summary> | ||
63 | /// | ||
64 | /// If this method is called and there are inventory items, then we regard the inventory as having changed. | ||
65 | /// | ||
66 | /// <param name="linkNum">Link number for the part</param> | ||
67 | void ResetObjectID(); | ||
68 | |||
69 | /// <summary> | ||
70 | /// Change every item in this inventory to a new owner. | ||
71 | /// </summary> | ||
72 | /// <param name="ownerId"></param> | ||
73 | void ChangeInventoryOwner(UUID ownerId); | ||
74 | |||
75 | /// <summary> | ||
76 | /// Change every item in this inventory to a new group. | ||
77 | /// </summary> | ||
78 | /// <param name="groupID"></param> | ||
79 | void ChangeInventoryGroup(UUID groupID); | ||
80 | |||
81 | /// <summary> | ||
82 | /// Start all the scripts contained in this entity's inventory | ||
83 | /// </summary> | ||
84 | /// <param name="startParam"></param> | ||
85 | /// <param name="postOnRez"></param> | ||
86 | /// <param name="engine"></param> | ||
87 | /// <param name="stateSource"></param> | ||
88 | /// <returns>Number of scripts started.</returns> | ||
89 | int CreateScriptInstances(int startParam, bool postOnRez, string engine, int stateSource); | ||
90 | |||
91 | ArrayList GetScriptErrors(UUID itemID); | ||
92 | void ResumeScripts(); | ||
93 | |||
94 | /// <summary> | ||
95 | /// Stop and remove all the scripts in this entity from the scene. | ||
96 | /// </summary> | ||
97 | /// <param name="sceneObjectBeingDeleted"> | ||
98 | /// Should be true if these scripts are being removed because the scene | ||
99 | /// object is being deleted. This will prevent spurious updates to the client. | ||
100 | /// </param> | ||
101 | void RemoveScriptInstances(bool sceneObjectBeingDeleted); | ||
102 | |||
103 | /// <summary> | ||
104 | /// Stop all the scripts in this entity. | ||
105 | /// </summary> | ||
106 | void StopScriptInstances(); | ||
107 | |||
108 | /// <summary> | ||
109 | /// Start a script which is in this entity's inventory. | ||
110 | /// </summary> | ||
111 | /// <param name="item"></param> | ||
112 | /// <param name="postOnRez"></param> | ||
113 | /// <param name="engine"></param> | ||
114 | /// <param name="stateSource"></param> | ||
115 | /// <returns> | ||
116 | /// true if the script instance was valid for starting, false otherwise. This does not guarantee | ||
117 | /// that the script was actually started, just that the script was valid (i.e. its asset data could be found, etc.) | ||
118 | /// </returns> | ||
119 | bool CreateScriptInstance( | ||
120 | TaskInventoryItem item, int startParam, bool postOnRez, string engine, int stateSource); | ||
121 | |||
122 | /// <summary> | ||
123 | /// Start a script which is in this entity's inventory. | ||
124 | /// </summary> | ||
125 | /// <param name="itemId"></param> | ||
126 | /// <param name="startParam"></param> | ||
127 | /// <param name="postOnRez"></param> | ||
128 | /// <param name="engine"></param> | ||
129 | /// <param name="stateSource"></param> | ||
130 | /// <returns> | ||
131 | /// true if the script instance was valid for starting, false otherwise. This does not guarantee | ||
132 | /// that the script was actually started, just that the script was valid (i.e. its asset data could be found, etc.) | ||
133 | /// </returns> | ||
134 | bool CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource); | ||
135 | |||
136 | /// <summary> | ||
137 | /// Stop and remove a script which is in this prim's inventory from the scene. | ||
138 | /// </summary> | ||
139 | /// <param name="itemId"></param> | ||
140 | /// <param name="sceneObjectBeingDeleted"> | ||
141 | /// Should be true if these scripts are being removed because the scene | ||
142 | /// object is being deleted. This will prevent spurious updates to the client. | ||
143 | /// </param> | ||
144 | void RemoveScriptInstance(UUID itemId, bool sceneObjectBeingDeleted); | ||
145 | |||
146 | /// <summary> | ||
147 | /// Stop a script which is in this prim's inventory. | ||
148 | /// </summary> | ||
149 | /// <param name="itemId"></param> | ||
150 | void StopScriptInstance(UUID itemId); | ||
151 | |||
152 | /// <summary> | ||
153 | /// Try to get the script running status. | ||
154 | /// </summary> | ||
155 | /// <returns> | ||
156 | /// Returns true if a script for the item was found in one of the simulator's script engines. In this case, | ||
157 | /// the running parameter will reflect the running status. | ||
158 | /// Returns false if the item could not be found, if the item is not a script or if a script instance for the | ||
159 | /// item was not found in any of the script engines. In this case, running status is irrelevant. | ||
160 | /// </returns> | ||
161 | /// <param name='itemId'></param> | ||
162 | /// <param name='running'></param> | ||
163 | bool TryGetScriptInstanceRunning(UUID itemId, out bool running); | ||
164 | |||
165 | /// <summary> | ||
166 | /// Add an item to this entity's inventory. If an item with the same name already exists, then an alternative | ||
167 | /// name is chosen. | ||
168 | /// </summary> | ||
169 | /// <param name="item"></param> | ||
170 | void AddInventoryItem(TaskInventoryItem item, bool allowedDrop); | ||
171 | |||
172 | /// <summary> | ||
173 | /// Add an item to this entity's inventory. If an item with the same name already exists, it is replaced. | ||
174 | /// </summary> | ||
175 | /// <param name="item"></param> | ||
176 | void AddInventoryItemExclusive(TaskInventoryItem item, bool allowedDrop); | ||
177 | |||
178 | /// <summary> | ||
179 | /// Restore a whole collection of items to the entity's inventory at once. | ||
180 | /// We assume that the items already have all their fields correctly filled out. | ||
181 | /// The items are not flagged for persistence to the database, since they are being restored | ||
182 | /// from persistence rather than being newly added. | ||
183 | /// </summary> | ||
184 | /// <param name="items"></param> | ||
185 | void RestoreInventoryItems(ICollection<TaskInventoryItem> items); | ||
186 | |||
187 | /// <summary> | ||
188 | /// Returns an existing inventory item. Returns the original, so any changes will be live. | ||
189 | /// </summary> | ||
190 | /// <param name="itemID"></param> | ||
191 | /// <returns>null if the item does not exist</returns> | ||
192 | TaskInventoryItem GetInventoryItem(UUID itemId); | ||
193 | |||
194 | /// <summary> | ||
195 | /// Get all inventory items. | ||
196 | /// </summary> | ||
197 | /// <param name="name"></param> | ||
198 | /// <returns> | ||
199 | /// If there are no inventory items then an empty list is returned. | ||
200 | /// </returns> | ||
201 | List<TaskInventoryItem> GetInventoryItems(); | ||
202 | |||
203 | /// <summary> | ||
204 | /// Gets an inventory item by name | ||
205 | /// </summary> | ||
206 | /// <remarks> | ||
207 | /// This method returns the first inventory item that matches the given name. In SL this is all you need | ||
208 | /// since each item in a prim inventory must have a unique name. | ||
209 | /// </remarks> | ||
210 | /// <param name='name'></param> | ||
211 | /// <returns> | ||
212 | /// The inventory item. Null if no such item was found. | ||
213 | /// </returns> | ||
214 | TaskInventoryItem GetInventoryItem(string name); | ||
215 | |||
216 | /// <summary> | ||
217 | /// Get inventory items by name. | ||
218 | /// </summary> | ||
219 | /// <param name="name"></param> | ||
220 | /// <returns> | ||
221 | /// A list of inventory items with that name. | ||
222 | /// If no inventory item has that name then an empty list is returned. | ||
223 | /// </returns> | ||
224 | List<TaskInventoryItem> GetInventoryItems(string name); | ||
225 | |||
226 | /// <summary> | ||
227 | /// Get inventory items by type. | ||
228 | /// </summary> | ||
229 | /// <param type="name"></param> | ||
230 | /// <returns> | ||
231 | /// A list of inventory items of that type. | ||
232 | /// If no inventory items of that type then an empty list is returned. | ||
233 | /// </returns> | ||
234 | List<TaskInventoryItem> GetInventoryItems(InventoryType type); | ||
235 | |||
236 | /// <summary> | ||
237 | /// Get the scene object(s) referenced by an inventory item. | ||
238 | /// </summary> | ||
239 | /// | ||
240 | /// This is returned in a 'rez ready' state. That is, name, description, permissions and other details have | ||
241 | /// been adjusted to reflect the part and item from which it originates. | ||
242 | /// | ||
243 | /// <param name="item">Inventory item</param> | ||
244 | /// <param name="objlist">The scene objects</param> | ||
245 | /// <param name="veclist">Relative offsets for each object</param> | ||
246 | /// <returns>true = success, false = the scene object asset couldn't be found</returns> | ||
247 | bool GetRezReadySceneObjects(TaskInventoryItem item, out List<SceneObjectGroup> objlist, out List<Vector3> veclist); | ||
248 | |||
249 | /// <summary> | ||
250 | /// Update an existing inventory item. | ||
251 | /// </summary> | ||
252 | /// <param name="item">The updated item. An item with the same id must already exist | ||
253 | /// in this prim's inventory.</param> | ||
254 | /// <returns>false if the item did not exist, true if the update occurred successfully</returns> | ||
255 | bool UpdateInventoryItem(TaskInventoryItem item); | ||
256 | bool UpdateInventoryItem(TaskInventoryItem item, bool fireScriptEvents); | ||
257 | bool UpdateInventoryItem(TaskInventoryItem item, bool fireScriptEvents, bool considerChanged); | ||
258 | |||
259 | /// <summary> | ||
260 | /// Remove an item from this entity's inventory | ||
261 | /// </summary> | ||
262 | /// <param name="itemID"></param> | ||
263 | /// <returns>Numeric asset type of the item removed. Returns -1 if the item did not exist | ||
264 | /// in this prim's inventory.</returns> | ||
265 | int RemoveInventoryItem(UUID itemID); | ||
266 | |||
267 | /// <summary> | ||
268 | /// Serialize all the metadata for the items in this prim's inventory ready for sending to the client | ||
269 | /// </summary> | ||
270 | /// <param name="xferManager"></param> | ||
271 | void RequestInventoryFile(IClientAPI client, IXfer xferManager); | ||
272 | |||
273 | /// <summary> | ||
274 | /// Backup the inventory to the given data store | ||
275 | /// </summary> | ||
276 | /// <param name="datastore"></param> | ||
277 | void ProcessInventoryBackup(ISimulationDataService datastore); | ||
278 | |||
279 | uint MaskEffectivePermissions(); | ||
280 | |||
281 | void ApplyNextOwnerPermissions(); | ||
282 | |||
283 | void ApplyGodPermissions(uint perms); | ||
284 | |||
285 | /// <summary> | ||
286 | /// Number of items in this inventory. | ||
287 | /// </summary> | ||
288 | int Count { get; } | ||
289 | |||
290 | /// <summary> | ||
291 | /// Returns true if this inventory contains any scripts | ||
292 | /// </summary></returns> | ||
293 | bool ContainsScripts(); | ||
294 | |||
295 | /// <summary> | ||
296 | /// Number of scripts in this inventory. | ||
297 | /// </summary> | ||
298 | /// <remarks> | ||
299 | /// Includes both running and non running scripts. | ||
300 | /// </remarks> | ||
301 | int ScriptCount(); | ||
302 | |||
303 | /// <summary> | ||
304 | /// Number of running scripts in this inventory. | ||
305 | /// </summary></returns> | ||
306 | int RunningScriptCount(); | ||
307 | |||
308 | /// <summary> | ||
309 | /// Get the uuids of all items in this inventory | ||
310 | /// </summary> | ||
311 | /// <returns></returns> | ||
312 | List<UUID> GetInventoryList(); | ||
313 | |||
314 | /// <summary> | ||
315 | /// Get the xml representing the saved states of scripts in this inventory. | ||
316 | /// </summary> | ||
317 | /// <returns> | ||
318 | /// A <see cref="Dictionary`2"/> | ||
319 | /// </returns> | ||
320 | Dictionary<UUID, string> GetScriptStates(); | ||
321 | } | ||
322 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs new file mode 100644 index 0000000..1ebef90 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs | |||
@@ -0,0 +1,109 @@ | |||
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; | ||
29 | using OpenSim.Services.Interfaces; | ||
30 | using GridRegion = OpenSim.Services.Interfaces.GridRegion; | ||
31 | |||
32 | using OpenMetaverse; | ||
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Region.Framework.Scenes; | ||
35 | |||
36 | namespace OpenSim.Region.Framework.Interfaces | ||
37 | { | ||
38 | public delegate ScenePresence CrossAgentToNewRegionDelegate(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, string version); | ||
39 | |||
40 | public interface IEntityTransferModule | ||
41 | { | ||
42 | /// <summary> | ||
43 | /// Teleport an agent within the same or to a different region. | ||
44 | /// </summary> | ||
45 | /// <param name='agent'></param> | ||
46 | /// <param name='regionHandle'> | ||
47 | /// The handle of the destination region. If it's the same as the region currently | ||
48 | /// occupied by the agent then the teleport will be within that region. | ||
49 | /// </param> | ||
50 | /// <param name='agent'></param> | ||
51 | /// <param name='regionHandle'></param> | ||
52 | /// <param name='position'></param> | ||
53 | /// <param name='lookAt'></param> | ||
54 | /// <param name='teleportFlags'></param> | ||
55 | void Teleport(ScenePresence agent, ulong regionHandle, Vector3 position, Vector3 lookAt, uint teleportFlags); | ||
56 | |||
57 | /// <summary> | ||
58 | /// Teleports the agent for the given client to their home destination. | ||
59 | /// </summary> | ||
60 | /// <param name='id'></param> | ||
61 | /// <param name='client'></param> | ||
62 | bool TeleportHome(UUID id, IClientAPI client); | ||
63 | |||
64 | /// <summary> | ||
65 | /// Teleport an agent directly to a given region without checking whether the region should be substituted. | ||
66 | /// </summary> | ||
67 | /// <remarks> | ||
68 | /// Please use Teleport() instead unless you know exactly what you're doing. | ||
69 | /// Do not use for same region teleports. | ||
70 | /// </remarks> | ||
71 | /// <param name='sp'></param> | ||
72 | /// <param name='reg'></param> | ||
73 | /// <param name='finalDestination'>/param> | ||
74 | /// <param name='position'></param> | ||
75 | /// <param name='lookAt'></param> | ||
76 | /// <param name='teleportFlags'></param> | ||
77 | void DoTeleport(ScenePresence sp, GridRegion reg, GridRegion finalDestination, | ||
78 | Vector3 position, Vector3 lookAt, uint teleportFlags); | ||
79 | |||
80 | /// <summary> | ||
81 | /// Show whether the given agent is being teleported. | ||
82 | /// </summary> | ||
83 | /// <param name='id'>The agent ID</para></param> | ||
84 | /// <returns>true if the agent is in the process of being teleported, false otherwise.</returns> | ||
85 | bool IsInTransit(UUID id); | ||
86 | |||
87 | bool Cross(ScenePresence agent, bool isFlying); | ||
88 | |||
89 | void AgentArrivedAtDestination(UUID agent); | ||
90 | |||
91 | void EnableChildAgents(ScenePresence agent); | ||
92 | |||
93 | void EnableChildAgent(ScenePresence agent, GridRegion region); | ||
94 | |||
95 | GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos, out string version, | ||
96 | out Vector3 newpos, out string reason); | ||
97 | |||
98 | void Cross(SceneObjectGroup sog, Vector3 position, bool silent); | ||
99 | |||
100 | ScenePresence CrossAgentToNewRegionAsync(ScenePresence agent, Vector3 pos, GridRegion neighbourRegion, bool isFlying, string version); | ||
101 | |||
102 | bool HandleIncomingSceneObject(SceneObjectGroup so, Vector3 newPosition); | ||
103 | } | ||
104 | |||
105 | public interface IUserAgentVerificationModule | ||
106 | { | ||
107 | bool VerifyClient(AgentCircuitData aCircuit, string token); | ||
108 | } | ||
109 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs new file mode 100644 index 0000000..7a7b782 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEnvironmentModule.cs | |||
@@ -0,0 +1,36 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface IEnvironmentModule | ||
33 | { | ||
34 | void ResetEnvironmentSettings(UUID regionUUID); | ||
35 | } | ||
36 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEstateModule.cs b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs new file mode 100644 index 0000000..461c880 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEstateModule.cs | |||
@@ -0,0 +1,70 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | using OpenSim.Services.Interfaces; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public delegate void ChangeDelegate(UUID regionID); | ||
35 | public delegate void MessageDelegate(UUID regionID, UUID fromID, string fromName, string message); | ||
36 | |||
37 | public interface IEstateModule | ||
38 | { | ||
39 | event ChangeDelegate OnRegionInfoChange; | ||
40 | event ChangeDelegate OnEstateInfoChange; | ||
41 | event MessageDelegate OnEstateMessage; | ||
42 | |||
43 | uint GetRegionFlags(); | ||
44 | bool IsManager(UUID avatarID); | ||
45 | |||
46 | string SetEstateOwner(int estateID, UserAccount account); | ||
47 | string SetEstateName(int estateID, string newName); | ||
48 | string SetRegionEstate(RegionInfo regionInfo, int estateID); | ||
49 | string CreateEstate(string estateName, UUID ownerID); | ||
50 | |||
51 | /// <summary> | ||
52 | /// Tell all clients about the current state of the region (terrain textures, water height, etc.). | ||
53 | /// </summary> | ||
54 | void sendRegionHandshakeToAll(); | ||
55 | void TriggerEstateInfoChange(); | ||
56 | |||
57 | /// <summary> | ||
58 | /// Fires the OnRegionInfoChange event. | ||
59 | /// </summary> | ||
60 | void TriggerRegionInfoChange(); | ||
61 | |||
62 | void setEstateTerrainBaseTexture(int level, UUID texture); | ||
63 | void setEstateTerrainTextureHeights(int corner, float lowValue, float highValue); | ||
64 | |||
65 | /// <summary> | ||
66 | /// Returns whether the transfer ID is being used for a terrain transfer. | ||
67 | /// </summary> | ||
68 | bool IsTerrainXfer(ulong xferID); | ||
69 | } | ||
70 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs new file mode 100644 index 0000000..dfc269e --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs | |||
@@ -0,0 +1,66 @@ | |||
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.Net; | ||
29 | using OpenMetaverse; | ||
30 | using OpenMetaverse.Packets; | ||
31 | using OpenMetaverse.Messages.Linden; | ||
32 | using OpenMetaverse.StructuredData; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | public interface IEventQueue | ||
37 | { | ||
38 | bool Enqueue(OSD o, UUID avatarID); | ||
39 | |||
40 | // These are required to decouple Scenes from EventQueueHelper | ||
41 | void DisableSimulator(ulong handle, UUID avatarID); | ||
42 | void EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY); | ||
43 | void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint, | ||
44 | string capsPath, ulong regionHandle, int regionSizeX, int regionSizeY); | ||
45 | void TeleportFinishEvent(ulong regionHandle, byte simAccess, | ||
46 | IPEndPoint regionExternalEndPoint, | ||
47 | uint locationID, uint flags, string capsURL, | ||
48 | UUID agentID, int regionSizeX, int regionSizeY); | ||
49 | void CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt, | ||
50 | IPEndPoint newRegionExternalEndPoint, | ||
51 | string capsURL, UUID avatarID, UUID sessionID, | ||
52 | int regionSizeX, int regionSizeY); | ||
53 | void ChatterboxInvitation(UUID sessionID, string sessionName, | ||
54 | UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, | ||
55 | uint timeStamp, bool offline, int parentEstateID, Vector3 position, | ||
56 | uint ttl, UUID transactionID, bool fromGroup, byte[] binaryBucket); | ||
57 | void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID anotherAgent, bool canVoiceChat, | ||
58 | bool isModerator, bool textMute); | ||
59 | void ParcelProperties(ParcelPropertiesMessage parcelPropertiesMessage, UUID avatarID); | ||
60 | void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID); | ||
61 | OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono); | ||
62 | OSD BuildEvent(string eventName, OSD eventBody); | ||
63 | void partPhysicsProperties(uint localID, byte physhapetype, float density, float friction, float bounce, float gravmod, UUID avatarID); | ||
64 | |||
65 | } | ||
66 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs new file mode 100644 index 0000000..a730cfd --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IExternalCapsModule.cs | |||
@@ -0,0 +1,48 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using Caps=OpenSim.Framework.Capabilities.Caps; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IExternalCapsModule | ||
36 | { | ||
37 | /// <summary> | ||
38 | /// This function extends the simple URL configuration in the caps handlers | ||
39 | /// to facilitate more interesting computation when an external handler is | ||
40 | /// sent to the viewer. | ||
41 | /// </summary> | ||
42 | /// <param name="agentID">New user UUID</param> | ||
43 | /// <param name="caps">Internal caps registry, where the external handler will be registered</param> | ||
44 | /// <param name="capName">Name of the specific cap we are registering</param> | ||
45 | /// <param name="urlSkel">The skeleton URL provided in the caps configuration</param> | ||
46 | bool RegisterExternalUserCapsHandler(UUID agentID, Caps caps, String capName, String urlSkel); | ||
47 | } | ||
48 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs new file mode 100644 index 0000000..7e87006 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs | |||
@@ -0,0 +1,98 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using FriendInfo = OpenSim.Services.Interfaces.FriendInfo; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IFriendsModule | ||
36 | { | ||
37 | /// <summary> | ||
38 | /// Are friends cached on this simulator for a particular user? | ||
39 | /// </summary> | ||
40 | /// <param name="userID"></param> | ||
41 | /// <returns></returns> | ||
42 | bool AreFriendsCached(UUID userID); | ||
43 | |||
44 | /// <summary> | ||
45 | /// Get friends from local cache only | ||
46 | /// </summary> | ||
47 | /// <param name="userID"></param> | ||
48 | /// <returns> | ||
49 | /// An empty array if the user has no friends or friends have not been cached. | ||
50 | /// </returns> | ||
51 | FriendInfo[] GetFriendsFromCache(UUID userID); | ||
52 | |||
53 | /// <summary> | ||
54 | /// Add a friendship between two users. | ||
55 | /// </summary> | ||
56 | /// <remarks> | ||
57 | /// Ultimately, it would be more useful to take in a user account here rather than having to have a user | ||
58 | /// present in the scene. | ||
59 | /// </remarks> | ||
60 | /// <param name="client"></param> | ||
61 | /// <param name="friendID"></param> | ||
62 | void AddFriendship(IClientAPI client, UUID friendID); | ||
63 | |||
64 | /// <summary> | ||
65 | /// Remove a friendship between two users. | ||
66 | /// </summary> | ||
67 | /// <remarks> | ||
68 | /// Ultimately, it would be more useful to take in a user account here rather than having to have a user | ||
69 | /// present in the scene. | ||
70 | /// </remarks> | ||
71 | /// <param name="client"></param> | ||
72 | /// <param name="exFriendID"></param> | ||
73 | void RemoveFriendship(IClientAPI client, UUID exFriendID); | ||
74 | |||
75 | /// <summary> | ||
76 | /// Get permissions granted by a friend. | ||
77 | /// </summary> | ||
78 | /// <param name="userID">The user.</param> | ||
79 | /// <param name="friendID">The friend that granted.</param> | ||
80 | /// <returns>The permissions. These come from the FriendRights enum.</returns> | ||
81 | int GetRightsGrantedByFriend(UUID userID, UUID friendID); | ||
82 | |||
83 | /// <summary> | ||
84 | /// Grant permissions for a friend. | ||
85 | /// </summary> | ||
86 | /// <remarks> | ||
87 | /// This includes giving them the ability to see when the user is online and permission to edit the user's | ||
88 | /// objects. | ||
89 | /// Granting lower permissions than the friend currently has will rescind the extra permissions. | ||
90 | /// </remarks> | ||
91 | /// <param name="remoteClient">The user granting the permissions.</param> | ||
92 | /// <param name="friendID">The friend.</param> | ||
93 | /// <param name="perms">These come from the FriendRights enum.</param> | ||
94 | void GrantRights(IClientAPI remoteClient, UUID friendID, int perms); | ||
95 | |||
96 | bool SendFriendsOnlineIfNeeded(IClientAPI client); | ||
97 | } | ||
98 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs new file mode 100644 index 0000000..552ce01 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs | |||
@@ -0,0 +1,58 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | /// <summary> | ||
34 | /// This interface provides god related methods | ||
35 | /// </summary> | ||
36 | public interface IGodsModule | ||
37 | { | ||
38 | /// <summary> | ||
39 | /// Handle a request for admin rights | ||
40 | /// </summary> | ||
41 | /// <param name="agentID"></param> | ||
42 | /// <param name="sessionID"></param> | ||
43 | /// <param name="token"></param> | ||
44 | /// <param name="godLike"></param> | ||
45 | /// <param name="controllingClient"></param> | ||
46 | void RequestGodlikePowers(UUID agentID, UUID sessionID, UUID token, bool godLike, IClientAPI controllingClient); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Kicks User specified from the simulator. This logs them off of the grid. | ||
50 | /// </summary> | ||
51 | /// <param name="godID">The person doing the kicking</param> | ||
52 | /// <param name="sessionID">The session of the person doing the kicking</param> | ||
53 | /// <param name="agentID">the person that is being kicked</param> | ||
54 | /// <param name="kickflags">This isn't used apparently</param> | ||
55 | /// <param name="reason">The message to send to the user after it's been turned into a field</param> | ||
56 | void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason); | ||
57 | } | ||
58 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs new file mode 100644 index 0000000..7dc1552 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs | |||
@@ -0,0 +1,97 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// Provide mechanisms for messaging groups. | ||
36 | /// </summary> | ||
37 | /// | ||
38 | /// TODO: Provide a mechanism for receiving group messages as well as sending them | ||
39 | /// | ||
40 | public interface IGroupsMessagingModule | ||
41 | { | ||
42 | /// <summary> | ||
43 | /// Start a group chat session. | ||
44 | /// </summary> | ||
45 | /// You must call this before calling SendMessageToGroup(). If a chat session for this group is already taking | ||
46 | /// place then the agent will added to that session. | ||
47 | /// <param name="agentID"> | ||
48 | /// A UUID that represents the agent being added. If you are agentless (e.g. you are | ||
49 | /// a region module), then you can use any random ID. | ||
50 | /// </param> | ||
51 | /// <param name="groupID"> | ||
52 | /// The ID for the group to join. Currently, the session ID used is identical to the | ||
53 | /// group ID. | ||
54 | /// </param> | ||
55 | /// <returns> | ||
56 | /// True if the chat session was started successfully, false otherwise. | ||
57 | /// </returns> | ||
58 | bool StartGroupChatSession(UUID agentID, UUID groupID); | ||
59 | |||
60 | /// <summary> | ||
61 | /// Send a message to each member of a group whose chat session is active. | ||
62 | /// </summary> | ||
63 | /// <param name="im"> | ||
64 | /// The message itself. The fields that must be populated are | ||
65 | /// | ||
66 | /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical) | ||
67 | /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog | ||
68 | /// message - The message itself | ||
69 | /// dialog - This must be (byte)InstantMessageDialog.SessionSend | ||
70 | /// </param> | ||
71 | /// <param name="groupID"></param> | ||
72 | void SendMessageToGroup(GridInstantMessage im, UUID groupID); | ||
73 | |||
74 | /// <summary> | ||
75 | /// Send a message to all the members of a group that fulfill a condition. | ||
76 | /// </summary> | ||
77 | /// <param name="im"> | ||
78 | /// The message itself. The fields that must be populated are | ||
79 | /// | ||
80 | /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical) | ||
81 | /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog | ||
82 | /// message - The message itself | ||
83 | /// dialog - This must be (byte)InstantMessageDialog.SessionSend | ||
84 | /// </param> | ||
85 | /// <param name="groupID"></param> | ||
86 | /// <param name="sendingAgentForGroupCalls"> | ||
87 | /// The requesting agent to use when querying the groups service. Sometimes this is different from | ||
88 | /// im.fromAgentID, with group notices, for example. | ||
89 | /// </param> | ||
90 | /// <param name="sendCondition"> | ||
91 | /// The condition that must be met by a member for the message to be sent. If null then the message is sent | ||
92 | /// if the chat session is active. | ||
93 | /// </param> | ||
94 | void SendMessageToGroup( | ||
95 | GridInstantMessage im, UUID groupID, UUID sendingAgentForGroupCalls, Func<GroupMembersData, bool> sendCondition); | ||
96 | } | ||
97 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs new file mode 100644 index 0000000..9ae5e87 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IGroupsModule.cs | |||
@@ -0,0 +1,103 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public delegate void NewGroupNotice(UUID groupID, UUID noticeID); | ||
35 | |||
36 | public interface IGroupsModule | ||
37 | { | ||
38 | event NewGroupNotice OnNewGroupNotice; | ||
39 | |||
40 | /// <summary> | ||
41 | /// Create a group | ||
42 | /// </summary> | ||
43 | /// <param name="remoteClient"></param> | ||
44 | /// <param name="name"></param> | ||
45 | /// <param name="charter"></param> | ||
46 | /// <param name="showInList"></param> | ||
47 | /// <param name="insigniaID"></param> | ||
48 | /// <param name="membershipFee"></param> | ||
49 | /// <param name="openEnrollment"></param> | ||
50 | /// <param name="allowPublish"></param> | ||
51 | /// <param name="maturePublish"></param> | ||
52 | /// <returns>The UUID of the created group</returns> | ||
53 | UUID CreateGroup( | ||
54 | IClientAPI remoteClient, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, | ||
55 | bool openEnrollment, bool allowPublish, bool maturePublish); | ||
56 | |||
57 | /// <summary> | ||
58 | /// Get a group | ||
59 | /// </summary> | ||
60 | /// <param name="name">Name of the group</param> | ||
61 | /// <returns>The group's data. Null if there is no such group.</returns> | ||
62 | GroupRecord GetGroupRecord(string name); | ||
63 | |||
64 | /// <summary> | ||
65 | /// Get a group | ||
66 | /// </summary> | ||
67 | /// <param name="GroupID">ID of the group</param> | ||
68 | /// <returns>The group's data. Null if there is no such group.</returns> | ||
69 | GroupRecord GetGroupRecord(UUID GroupID); | ||
70 | |||
71 | void ActivateGroup(IClientAPI remoteClient, UUID groupID); | ||
72 | List<GroupTitlesData> GroupTitlesRequest(IClientAPI remoteClient, UUID groupID); | ||
73 | List<GroupMembersData> GroupMembersRequest(IClientAPI remoteClient, UUID groupID); | ||
74 | List<GroupRolesData> GroupRoleDataRequest(IClientAPI remoteClient, UUID groupID); | ||
75 | List<GroupRoleMembersData> GroupRoleMembersRequest(IClientAPI remoteClient, UUID groupID); | ||
76 | GroupProfileData GroupProfileRequest(IClientAPI remoteClient, UUID groupID); | ||
77 | GroupMembershipData[] GetMembershipData(UUID UserID); | ||
78 | GroupMembershipData GetMembershipData(UUID GroupID, UUID UserID); | ||
79 | |||
80 | void UpdateGroupInfo(IClientAPI remoteClient, UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish); | ||
81 | |||
82 | void SetGroupAcceptNotices(IClientAPI remoteClient, UUID groupID, bool acceptNotices, bool listInProfile); | ||
83 | |||
84 | void GroupTitleUpdate(IClientAPI remoteClient, UUID GroupID, UUID TitleRoleID); | ||
85 | |||
86 | GroupNoticeData[] GroupNoticesListRequest(IClientAPI remoteClient, UUID GroupID); | ||
87 | string GetGroupTitle(UUID avatarID); | ||
88 | void GroupRoleUpdate(IClientAPI remoteClient, UUID GroupID, UUID RoleID, string name, string description, string title, ulong powers, byte updateType); | ||
89 | void GroupRoleChanges(IClientAPI remoteClient, UUID GroupID, UUID RoleID, UUID MemberID, uint changes); | ||
90 | void GroupNoticeRequest(IClientAPI remoteClient, UUID groupNoticeID); | ||
91 | GridInstantMessage CreateGroupNoticeIM(UUID agentID, UUID groupNoticeID, byte dialog); | ||
92 | void SendAgentGroupDataUpdate(IClientAPI remoteClient); | ||
93 | void JoinGroupRequest(IClientAPI remoteClient, UUID GroupID); | ||
94 | void LeaveGroupRequest(IClientAPI remoteClient, UUID GroupID); | ||
95 | void EjectGroupMemberRequest(IClientAPI remoteClient, UUID GroupID, UUID EjecteeID); | ||
96 | void EjectGroupMember(IClientAPI remoteClient, UUID agentID, UUID GroupID, UUID EjecteeID); | ||
97 | void InviteGroupRequest(IClientAPI remoteClient, UUID GroupID, UUID InviteeID, UUID RoleID); | ||
98 | void InviteGroup(IClientAPI remoteClient, UUID agentID, UUID GroupID, UUID InviteeID, UUID RoleID); | ||
99 | void NotifyChange(UUID GroupID); | ||
100 | |||
101 | List<DirGroupsReplyData> FindGroups(IClientAPI remoteClient, string query); | ||
102 | } | ||
103 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs new file mode 100644 index 0000000..124504c --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IHttpRequests.cs | |||
@@ -0,0 +1,93 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public enum HttpRequestConstants | ||
35 | { | ||
36 | HTTP_METHOD = 0, | ||
37 | HTTP_MIMETYPE = 1, | ||
38 | HTTP_BODY_MAXLENGTH = 2, | ||
39 | HTTP_VERIFY_CERT = 3, | ||
40 | HTTP_VERBOSE_THROTTLE = 4, | ||
41 | HTTP_CUSTOM_HEADER = 5, | ||
42 | HTTP_PRAGMA_NO_CACHE = 6 | ||
43 | } | ||
44 | |||
45 | /// <summary> | ||
46 | /// The initial status of the request before it is placed on the wire. | ||
47 | /// </summary> | ||
48 | /// <remarks> | ||
49 | /// The request may still fail later on, in which case the normal HTTP status is set. | ||
50 | /// </remarks> | ||
51 | [Flags] | ||
52 | public enum HttpInitialRequestStatus | ||
53 | { | ||
54 | OK = 1, | ||
55 | DISALLOWED_BY_FILTER = 2 | ||
56 | } | ||
57 | |||
58 | public interface IHttpRequestModule | ||
59 | { | ||
60 | UUID MakeHttpRequest(string url, string parameters, string body); | ||
61 | |||
62 | /// <summary> | ||
63 | /// Starts the http request. | ||
64 | /// </summary> | ||
65 | /// <remarks> | ||
66 | /// This is carried out asynchronously unless it fails initial checks. Results are fetched by the script engine | ||
67 | /// HTTP requests module to be distributed back to scripts via a script event. | ||
68 | /// </remarks> | ||
69 | /// <returns>The ID of the request. If the requested could not be performed then this is UUID.Zero</returns> | ||
70 | /// <param name="localID">Local ID of the object containing the script making the request.</param> | ||
71 | /// <param name="itemID">Item ID of the script making the request.</param> | ||
72 | /// <param name="url">Url to request.</param> | ||
73 | /// <param name="parameters">LSL parameters for the request.</param> | ||
74 | /// <param name="headers">Extra headers for the request.</param> | ||
75 | /// <param name="body">Body of the request.</param> | ||
76 | /// <param name="status"> | ||
77 | /// Initial status of the request. If OK then the request is actually made to the URL. Subsequent status is | ||
78 | /// then returned via IServiceRequest when the response is asynchronously fetched. | ||
79 | /// </param> | ||
80 | UUID StartHttpRequest( | ||
81 | uint localID, UUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body, | ||
82 | out HttpInitialRequestStatus status); | ||
83 | |||
84 | /// <summary> | ||
85 | /// Stop and remove all http requests for the given script. | ||
86 | /// </summary> | ||
87 | /// <param name='id'></param> | ||
88 | void StopHttpRequestsForScript(UUID id); | ||
89 | |||
90 | IServiceRequest GetNextCompletedRequest(); | ||
91 | void RemoveCompletedRequest(UUID id); | ||
92 | } | ||
93 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs new file mode 100644 index 0000000..6bad018 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IInventoryAccessModule.cs | |||
@@ -0,0 +1,129 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | |||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | |||
34 | using OpenMetaverse; | ||
35 | |||
36 | namespace OpenSim.Region.Framework.Interfaces | ||
37 | { | ||
38 | public interface IInventoryAccessModule | ||
39 | { | ||
40 | UUID CapsUpdateInventoryItemAsset(IClientAPI remoteClient, UUID itemID, byte[] data); | ||
41 | |||
42 | bool UpdateInventoryItemAsset(UUID ownerID, InventoryItemBase item, AssetBase asset); | ||
43 | |||
44 | /// <summary> | ||
45 | /// Copy objects to a user's inventory. | ||
46 | /// </summary> | ||
47 | /// <remarks> | ||
48 | /// Is it left to the caller to delete them from the scene if required. | ||
49 | /// </remarks> | ||
50 | /// <param name="action"></param> | ||
51 | /// <param name="folderID"></param> | ||
52 | /// <param name="objectGroups"></param> | ||
53 | /// <param name="remoteClient"></param> | ||
54 | /// <param name="asAttachment"> | ||
55 | /// Should be true if the object(s) are begin taken as attachments. False otherwise. | ||
56 | /// </param> | ||
57 | /// <returns> | ||
58 | /// A list of the items created. If there was more than one object and objects are not being coaleseced in | ||
59 | /// inventory, then the order of items is in the same order as the input objects. | ||
60 | /// </returns> | ||
61 | List<InventoryItemBase> CopyToInventory( | ||
62 | DeRezAction action, UUID folderID, List<SceneObjectGroup> objectGroups, IClientAPI remoteClient, bool asAttachment); | ||
63 | |||
64 | /// <summary> | ||
65 | /// Rez an object into the scene from the user's inventory | ||
66 | /// </summary> | ||
67 | /// <remarks> | ||
68 | /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing | ||
69 | /// things to the scene. The caller should be doing that, I think. | ||
70 | /// </remarks> | ||
71 | /// <param name="remoteClient"></param> | ||
72 | /// <param name="itemID"></param> | ||
73 | /// <param name="RayEnd"></param> | ||
74 | /// <param name="RayStart"></param> | ||
75 | /// <param name="RayTargetID"></param> | ||
76 | /// <param name="BypassRayCast"></param> | ||
77 | /// <param name="RayEndIsIntersection"></param> | ||
78 | /// <param name="RezSelected"></param> | ||
79 | /// <param name="RemoveItem"></param> | ||
80 | /// <param name="fromTaskID"></param> | ||
81 | /// <param name="attachment"></param> | ||
82 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | ||
83 | SceneObjectGroup RezObject( | ||
84 | IClientAPI remoteClient, UUID itemID, Vector3 RayEnd, Vector3 RayStart, | ||
85 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
86 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
87 | |||
88 | /// <summary> | ||
89 | /// Rez an object into the scene from the user's inventory | ||
90 | /// </summary> | ||
91 | /// <remarks> | ||
92 | /// FIXME: It would be really nice if inventory access modules didn't also actually do the work of rezzing | ||
93 | /// things to the scene. The caller should be doing that, I think. | ||
94 | /// </remarks> | ||
95 | /// <param name="remoteClient"></param> | ||
96 | /// <param name="item"> | ||
97 | /// The item from which the object asset came. Can be null, in which case pre and post rez item adjustment and checks are not performed. | ||
98 | /// </param> | ||
99 | /// <param name="assetID">The asset id for the object to rez.</param> | ||
100 | /// <param name="RayEnd"></param> | ||
101 | /// <param name="RayStart"></param> | ||
102 | /// <param name="RayTargetID"></param> | ||
103 | /// <param name="BypassRayCast"></param> | ||
104 | /// <param name="RayEndIsIntersection"></param> | ||
105 | /// <param name="RezSelected"></param> | ||
106 | /// <param name="RemoveItem"></param> | ||
107 | /// <param name="fromTaskID"></param> | ||
108 | /// <param name="attachment"></param> | ||
109 | /// <returns>The SceneObjectGroup rezzed or null if rez was unsuccessful.</returns> | ||
110 | SceneObjectGroup RezObject( | ||
111 | IClientAPI remoteClient, InventoryItemBase item, UUID assetID, Vector3 RayEnd, Vector3 RayStart, | ||
112 | UUID RayTargetID, byte BypassRayCast, bool RayEndIsIntersection, | ||
113 | bool RezSelected, bool RemoveItem, UUID fromTaskID, bool attachment); | ||
114 | |||
115 | void TransferInventoryAssets(InventoryItemBase item, UUID sender, UUID receiver); | ||
116 | |||
117 | /// <summary> | ||
118 | /// Does the client have sufficient permissions to retrieve the inventory item? | ||
119 | /// </summary> | ||
120 | /// <param name="remoteClient"></param> | ||
121 | /// <param name="itemID"></param> | ||
122 | /// <param name="requestID"></param> | ||
123 | /// <returns></returns> | ||
124 | bool CanGetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID); | ||
125 | |||
126 | // Must be here because of textures in user's inventory | ||
127 | bool IsForeignUser(UUID userID, out string assetServerURL); | ||
128 | } | ||
129 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs new file mode 100644 index 0000000..37e20c3 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs | |||
@@ -0,0 +1,125 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using System.IO; | ||
31 | using OpenSim.Services.Interfaces; | ||
32 | using OpenMetaverse; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | /// <summary> | ||
37 | /// Used for the OnInventoryArchiveSaved event. | ||
38 | /// </summary> | ||
39 | /// <param name="id">Request id</param> | ||
40 | /// <param name="succeeded">true if the save succeeded, false otherwise</param> | ||
41 | /// <param name="userInfo">The user for whom the save was conducted</param> | ||
42 | /// <param name="invPath">The inventory path saved</param> | ||
43 | /// <param name="savePath">The stream to which the archive was saved</param> | ||
44 | /// <param name="reportedException">Contains the exception generated if the save did not succeed</param> | ||
45 | /// <param name="saveCount">Number of inventory items saved to archive</param> | ||
46 | /// <param name="filterCount">Number of inventory items skipped due to perm filter option</param> | ||
47 | public delegate void InventoryArchiveSaved( | ||
48 | UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, Exception reportedException, int saveCount, int filterCount); | ||
49 | |||
50 | /// <summary> | ||
51 | /// Used for the OnInventoryArchiveLoaded event. | ||
52 | /// </summary> | ||
53 | /// <param name="id">Request id</param> | ||
54 | /// <param name="succeeded">true if the load succeeded, false otherwise</param> | ||
55 | /// <param name="userInfo">The user for whom the load was conducted</param> | ||
56 | /// <param name="invPath">The inventory path loaded</param> | ||
57 | /// <param name="savePath">The stream from which the archive was loaded</param> | ||
58 | /// <param name="reportedException">Contains the exception generated if the load did not succeed</param> | ||
59 | /// <param name="loadCount">Number of inventory items loaded from archive</param> | ||
60 | public delegate void InventoryArchiveLoaded( | ||
61 | UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream loadStream, Exception reportedException, int loadCount); | ||
62 | |||
63 | |||
64 | public interface IInventoryArchiverModule | ||
65 | { | ||
66 | /// <summary> | ||
67 | /// Fired when an archive inventory save has been completed. | ||
68 | /// </summary> | ||
69 | event InventoryArchiveSaved OnInventoryArchiveSaved; | ||
70 | |||
71 | /// <summary> | ||
72 | /// Fired when an archive inventory load has been completed. | ||
73 | /// </summary> | ||
74 | event InventoryArchiveLoaded OnInventoryArchiveLoaded; | ||
75 | |||
76 | /// <summary> | ||
77 | /// Dearchive a user's inventory folder from the given stream | ||
78 | /// </summary> | ||
79 | /// <param name="firstName"></param> | ||
80 | /// <param name="lastName"></param> | ||
81 | /// <param name="invPath">The inventory path in which to place the loaded folders and items</param> | ||
82 | /// <param name="loadStream">The stream from which the inventory archive will be loaded</param> | ||
83 | /// <returns>true if the first stage of the operation succeeded, false otherwise</returns> | ||
84 | bool DearchiveInventory(UUID id, string firstName, string lastName, string invPath, string pass, Stream loadStream); | ||
85 | |||
86 | /// <summary> | ||
87 | /// Dearchive a user's inventory folder from the given stream | ||
88 | /// </summary> | ||
89 | /// <param name="firstName"></param> | ||
90 | /// <param name="lastName"></param> | ||
91 | /// <param name="invPath">The inventory path in which to place the loaded folders and items</param> | ||
92 | /// <param name="loadStream">The stream from which the inventory archive will be loaded</param> | ||
93 | /// <param name="options">Dearchiving options. At the moment, the only option is ("merge", true). This merges | ||
94 | /// the loaded IAR with existing folders where possible.</param> | ||
95 | /// <returns>true if the first stage of the operation succeeded, false otherwise</returns> | ||
96 | bool DearchiveInventory( | ||
97 | UUID id, string firstName, string lastName, string invPath, string pass, Stream loadStream, | ||
98 | Dictionary<string, object> options); | ||
99 | |||
100 | /// <summary> | ||
101 | /// Archive a user's inventory folder to the given stream | ||
102 | /// </summary> | ||
103 | /// <param name="id">ID representing this request. This will later be returned in the save event</param> | ||
104 | /// <param name="firstName"></param> | ||
105 | /// <param name="lastName"></param> | ||
106 | /// <param name="invPath">The inventory path from which the inventory should be saved.</param> | ||
107 | /// <param name="saveStream">The stream to which the inventory archive will be saved</param> | ||
108 | /// <returns>true if the first stage of the operation succeeded, false otherwise</returns> | ||
109 | bool ArchiveInventory(UUID id, string firstName, string lastName, string invPath, string pass, Stream saveStream); | ||
110 | |||
111 | /// <summary> | ||
112 | /// Archive a user's inventory folder to the given stream | ||
113 | /// </summary> | ||
114 | /// <param name="id">ID representing this request. This will later be returned in the save event</param> | ||
115 | /// <param name="firstName"></param> | ||
116 | /// <param name="lastName"></param> | ||
117 | /// <param name="invPath">The inventory path from which the inventory should be saved.</param> | ||
118 | /// <param name="saveStream">The stream to which the inventory archive will be saved</param> | ||
119 | /// <param name="options">Archiving options. Currently, there are none.</param> | ||
120 | /// <returns>true if the first stage of the operation succeeded, false otherwise</returns> | ||
121 | bool ArchiveInventory( | ||
122 | UUID id, string firstName, string lastName, string invPath, string pass, Stream saveStream, | ||
123 | Dictionary<string, object> options); | ||
124 | } | ||
125 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs new file mode 100644 index 0000000..1e92fde --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IInventoryTransferModule.cs | |||
@@ -0,0 +1,40 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Region.Framework.Scenes; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | /// <summary> | ||
34 | /// An interface for a module that manages inter-agent inventory offers and transfers. | ||
35 | /// </summary> | ||
36 | public interface IInventoryTransferModule | ||
37 | { | ||
38 | bool NeedSceneCacheClear(UUID agentID, Scene scene); | ||
39 | } | ||
40 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs new file mode 100644 index 0000000..1cbd045 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IJ2KDecoder.cs | |||
@@ -0,0 +1,65 @@ | |||
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.Drawing; | ||
29 | using OpenMetaverse; | ||
30 | using OpenMetaverse.Imaging; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public delegate void DecodedCallback(UUID AssetId, OpenJPEG.J2KLayerInfo[] layers); | ||
35 | |||
36 | public interface IJ2KDecoder | ||
37 | { | ||
38 | void BeginDecode(UUID assetID, byte[] j2kData, DecodedCallback callback); | ||
39 | |||
40 | /// <summary> | ||
41 | /// Provides a synchronous decode so that caller can be assured that this executes before the next line | ||
42 | /// </summary> | ||
43 | /// <param name="assetID"></param> | ||
44 | /// <param name="j2kData"></param> | ||
45 | /// <returns>true if decode was successful. false otherwise.</returns> | ||
46 | bool Decode(UUID assetID, byte[] j2kData); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Provides a synchronous decode so that caller can be assured that this executes before the next line | ||
50 | /// </summary> | ||
51 | /// <param name="assetID"></param> | ||
52 | /// <param name="j2kData"></param> | ||
53 | /// <param name="layers">layer data</param> | ||
54 | /// <param name="components">number of components</param> | ||
55 | /// <returns>true if decode was successful. false otherwise.</returns> | ||
56 | bool Decode(UUID assetID, byte[] j2kData, out OpenJPEG.J2KLayerInfo[] layers, out int components); | ||
57 | |||
58 | /// <summary> | ||
59 | /// Provides a synchronous decode direct to an image object | ||
60 | /// </summary> | ||
61 | /// <param name="j2kData"></param> | ||
62 | /// <returns>decoded image or 'null' of unsuccessful</returns> | ||
63 | Image DecodeToImage(byte[] j2kData); | ||
64 | } | ||
65 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs new file mode 100644 index 0000000..1a89721 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IJsonStoreModule.cs | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors | ||
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 OpenSim 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; | ||
29 | using System.Reflection; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | // these could be expanded at some point to provide more type information | ||
35 | // for now value accounts for all base types | ||
36 | public enum JsonStoreNodeType | ||
37 | { | ||
38 | Undefined = 0, | ||
39 | Object = 1, | ||
40 | Array = 2, | ||
41 | Value = 3 | ||
42 | } | ||
43 | |||
44 | public enum JsonStoreValueType | ||
45 | { | ||
46 | Undefined = 0, | ||
47 | Boolean = 1, | ||
48 | Integer = 2, | ||
49 | Float = 3, | ||
50 | String = 4, | ||
51 | UUID = 5 | ||
52 | } | ||
53 | |||
54 | public struct JsonStoreStats | ||
55 | { | ||
56 | public int StoreCount; | ||
57 | } | ||
58 | |||
59 | public delegate void TakeValueCallback(string s); | ||
60 | |||
61 | public interface IJsonStoreModule | ||
62 | { | ||
63 | JsonStoreStats GetStoreStats(); | ||
64 | |||
65 | bool AttachObjectStore(UUID objectID); | ||
66 | bool CreateStore(string value, ref UUID result); | ||
67 | bool DestroyStore(UUID storeID); | ||
68 | |||
69 | JsonStoreNodeType GetNodeType(UUID storeID, string path); | ||
70 | JsonStoreValueType GetValueType(UUID storeID, string path); | ||
71 | |||
72 | bool TestStore(UUID storeID); | ||
73 | |||
74 | bool SetValue(UUID storeID, string path, string value, bool useJson); | ||
75 | bool RemoveValue(UUID storeID, string path); | ||
76 | bool GetValue(UUID storeID, string path, bool useJson, out string value); | ||
77 | |||
78 | void TakeValue(UUID storeID, string path, bool useJson, TakeValueCallback cback); | ||
79 | void ReadValue(UUID storeID, string path, bool useJson, TakeValueCallback cback); | ||
80 | |||
81 | int GetArrayLength(UUID storeID, string path); | ||
82 | } | ||
83 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs b/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs new file mode 100644 index 0000000..b5fd24f --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ILightShareModule.cs | |||
@@ -0,0 +1,33 @@ | |||
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 | namespace OpenSim.Region.Framework.Interfaces | ||
29 | { | ||
30 | public interface ILightShareModule | ||
31 | { | ||
32 | } | ||
33 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs new file mode 100644 index 0000000..6a7d4a1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs | |||
@@ -0,0 +1,37 @@ | |||
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.Drawing; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IMapImageUploadModule | ||
34 | { | ||
35 | void UploadMapTile(IScene scene, Bitmap mapTile); | ||
36 | } | ||
37 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs new file mode 100644 index 0000000..290b826 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IMessageTransferModule.cs | |||
@@ -0,0 +1,61 @@ | |||
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 OpenSim.Framework; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public delegate void MessageResultNotification(bool success); | ||
33 | public delegate void UndeliveredMessage(GridInstantMessage im); | ||
34 | |||
35 | public interface IMessageTransferModule | ||
36 | { | ||
37 | event UndeliveredMessage OnUndeliveredMessage; | ||
38 | |||
39 | /// <summary> | ||
40 | /// Attempt to send an instant message to a given destination. | ||
41 | /// </summary> | ||
42 | /// <remarks> | ||
43 | /// If the message cannot be delivered for any reason, this will be signalled on the OnUndeliveredMessage | ||
44 | /// event. result(false) will also be called if the message cannot be delievered unless the type is | ||
45 | /// InstantMessageDialog.MessageFromAgent. For successful message delivery, result(true) is called. | ||
46 | /// </remarks> | ||
47 | /// <param name="im"></param> | ||
48 | /// <param name="result"></param> | ||
49 | void SendInstantMessage(GridInstantMessage im, MessageResultNotification result); | ||
50 | |||
51 | /// <summary> | ||
52 | /// Appropriately handle a known undeliverable message without attempting a send. | ||
53 | /// </summary> | ||
54 | /// <remarks> | ||
55 | /// Essentially, this invokes the OnUndeliveredMessage event. | ||
56 | /// </remarks> | ||
57 | /// <param name="im"></param> | ||
58 | /// <param name="result"></param> | ||
59 | void HandleUndeliverableMessage(GridInstantMessage im, MessageResultNotification result); | ||
60 | } | ||
61 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IMoapModule.cs b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs new file mode 100644 index 0000000..1d3d240 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IMoapModule.cs | |||
@@ -0,0 +1,67 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Region.Framework.Scenes; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// Provides methods from manipulating media-on-a-prim | ||
36 | /// </summary> | ||
37 | public interface IMoapModule | ||
38 | { | ||
39 | /// <summary> | ||
40 | /// Get the media entry for a given prim face. | ||
41 | /// </summary> | ||
42 | /// A copy of the media entry is returned rather than the original, so this can be altered at will without | ||
43 | /// affecting the original settings. | ||
44 | /// <param name="part"></param> | ||
45 | /// <param name="face"></param> | ||
46 | /// <returns></returns> | ||
47 | MediaEntry GetMediaEntry(SceneObjectPart part, int face); | ||
48 | |||
49 | /// <summary> | ||
50 | /// Set the media entry for a given prim face. | ||
51 | /// </summary> | ||
52 | /// <param name="SceneObjectPart"></param> | ||
53 | /// <param name="face"></param> | ||
54 | /// <param name="me"></param> | ||
55 | void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me); | ||
56 | |||
57 | /// <summary> | ||
58 | /// Clear the media entry for a given prim face. | ||
59 | /// </summary> | ||
60 | /// | ||
61 | /// This is the equivalent of setting a media entry of null | ||
62 | /// | ||
63 | /// <param name="part"></param> | ||
64 | /// <param name="face">/param> | ||
65 | void ClearMediaEntry(SceneObjectPart part, int face); | ||
66 | } | ||
67 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/INPCModule.cs b/OpenSim/Region/Framework/Interfaces/INPCModule.cs new file mode 100644 index 0000000..478833e --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/INPCModule.cs | |||
@@ -0,0 +1,288 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | using OpenSim.Region.Framework.Scenes; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// Temporary interface. More methods to come at some point to make NPCs | ||
36 | /// more object oriented rather than controlling purely through module | ||
37 | /// level interface calls (e.g. sit/stand). | ||
38 | /// </summary> | ||
39 | public interface INPC | ||
40 | { | ||
41 | /// <summary> | ||
42 | /// Should this NPC be sensed by LSL sensors as an 'agent' | ||
43 | /// (interpreted here to mean a normal user) rather than an OpenSim | ||
44 | /// specific NPC extension? | ||
45 | /// </summary> | ||
46 | bool SenseAsAgent { get; } | ||
47 | } | ||
48 | |||
49 | public interface INPCModule | ||
50 | { | ||
51 | /// <summary> | ||
52 | /// Create an NPC | ||
53 | /// </summary> | ||
54 | /// <param name="firstname"></param> | ||
55 | /// <param name="lastname"></param> | ||
56 | /// <param name="position"></param> | ||
57 | /// <param name="senseAsAgent"> | ||
58 | /// Make the NPC show up as an agent on LSL sensors. The default is | ||
59 | /// that they show up as the NPC type instead, but this is currently | ||
60 | /// an OpenSim-only extension. | ||
61 | /// </param> | ||
62 | /// <param name="scene"></param> | ||
63 | /// <param name="appearance"> | ||
64 | /// The avatar appearance to use for the new NPC. | ||
65 | /// </param> | ||
66 | /// <returns> | ||
67 | /// The UUID of the ScenePresence created. UUID.Zero if there was a | ||
68 | /// failure. | ||
69 | /// </returns> | ||
70 | UUID CreateNPC(string firstname, string lastname, Vector3 position, | ||
71 | UUID owner, bool senseAsAgent, Scene scene, | ||
72 | AvatarAppearance appearance); | ||
73 | |||
74 | /// <summary> | ||
75 | /// Create an NPC with a user-supplied agentID | ||
76 | /// </summary> | ||
77 | /// <param name="firstname"></param> | ||
78 | /// <param name="lastname"></param> | ||
79 | /// <param name="position"></param> | ||
80 | /// <param name="agentID"></param> | ||
81 | /// The desired agent ID | ||
82 | /// <param name="owner"></param> | ||
83 | /// <param name="senseAsAgent"> | ||
84 | /// Make the NPC show up as an agent on LSL sensors. The default is | ||
85 | /// that they show up as the NPC type instead, but this is currently | ||
86 | /// an OpenSim-only extension. | ||
87 | /// </param> | ||
88 | /// <param name="scene"></param> | ||
89 | /// <param name="appearance"> | ||
90 | /// The avatar appearance to use for the new NPC. | ||
91 | /// </param> | ||
92 | /// <returns> | ||
93 | /// The UUID of the ScenePresence created. UUID.Zero if there was a | ||
94 | /// failure. | ||
95 | /// </returns> | ||
96 | UUID CreateNPC(string firstname, string lastname, | ||
97 | Vector3 position, UUID agentID, UUID owner, bool senseAsAgent, Scene scene, | ||
98 | AvatarAppearance appearance); | ||
99 | |||
100 | /// <summary> | ||
101 | /// Check if the agent is an NPC. | ||
102 | /// </summary> | ||
103 | /// <param name="agentID"></param> | ||
104 | /// <param name="scene"></param> | ||
105 | /// <returns> | ||
106 | /// True if the agent is an NPC in the given scene. False otherwise. | ||
107 | /// </returns> | ||
108 | bool IsNPC(UUID agentID, Scene scene); | ||
109 | |||
110 | /// <summary> | ||
111 | /// Get the NPC. | ||
112 | /// </summary> | ||
113 | /// <remarks> | ||
114 | /// This is not currently complete - manipulation of NPCs still occurs | ||
115 | /// through the region interface. | ||
116 | /// </remarks> | ||
117 | /// <param name="agentID"></param> | ||
118 | /// <param name="scene"></param> | ||
119 | /// <returns>The NPC. null if it does not exist.</returns> | ||
120 | INPC GetNPC(UUID agentID, Scene scene); | ||
121 | |||
122 | /// <summary> | ||
123 | /// Check if the caller has permission to manipulate the given NPC. | ||
124 | /// </summary> | ||
125 | /// <remarks> | ||
126 | /// A caller has permission if | ||
127 | /// * An NPC exists with the given npcID. | ||
128 | /// * The caller UUID given is UUID.Zero. | ||
129 | /// * The avatar is unowned (owner is UUID.Zero). | ||
130 | /// * The avatar is owned and the owner and callerID match. | ||
131 | /// * The avatar is owned and the callerID matches its agentID. | ||
132 | /// </remarks> | ||
133 | /// <param name="av"></param> | ||
134 | /// <param name="callerID"></param> | ||
135 | /// <returns>true if they do, false if they don't.</returns> | ||
136 | /// <param name="npcID"></param> | ||
137 | /// <param name="callerID"></param> | ||
138 | /// <returns> | ||
139 | /// true if they do, false if they don't or if there's no NPC with the | ||
140 | /// given ID. | ||
141 | /// </returns> | ||
142 | bool CheckPermissions(UUID npcID, UUID callerID); | ||
143 | |||
144 | /// <summary> | ||
145 | /// Set the appearance for an NPC. | ||
146 | /// </summary> | ||
147 | /// <param name="agentID"></param> | ||
148 | /// <param name="appearance"></param> | ||
149 | /// <param name="scene"></param> | ||
150 | /// <returns> | ||
151 | /// True if the operation succeeded, false if there was no such agent | ||
152 | /// or the agent was not an NPC. | ||
153 | /// </returns> | ||
154 | bool SetNPCAppearance(UUID agentID, AvatarAppearance appearance, | ||
155 | Scene scene); | ||
156 | |||
157 | /// <summary> | ||
158 | /// Move an NPC to a target over time. | ||
159 | /// </summary> | ||
160 | /// <param name="agentID">The UUID of the NPC</param> | ||
161 | /// <param name="scene"></param> | ||
162 | /// <param name="pos"></param> | ||
163 | /// <param name="noFly"> | ||
164 | /// If true, then the avatar will attempt to walk to the location even | ||
165 | /// if it's up in the air. This is to allow walking on prims. | ||
166 | /// </param> | ||
167 | /// <param name="landAtTarget"> | ||
168 | /// If true and the avatar is flying when it reaches the target, land. | ||
169 | /// </param> name="running"> | ||
170 | /// If true, NPC moves with running speed. | ||
171 | /// <returns> | ||
172 | /// True if the operation succeeded, false if there was no such agent | ||
173 | /// or the agent was not an NPC. | ||
174 | /// </returns> | ||
175 | bool MoveToTarget(UUID agentID, Scene scene, Vector3 pos, bool noFly, | ||
176 | bool landAtTarget, bool running); | ||
177 | |||
178 | /// <summary> | ||
179 | /// Stop the NPC's current movement. | ||
180 | /// </summary> | ||
181 | /// <param name="agentID">The UUID of the NPC</param> | ||
182 | /// <param name="scene"></param> | ||
183 | /// <returns> | ||
184 | /// True if the operation succeeded, false if there was no such agent | ||
185 | /// or the agent was not an NPC. | ||
186 | /// </returns> | ||
187 | bool StopMoveToTarget(UUID agentID, Scene scene); | ||
188 | |||
189 | /// <summary> | ||
190 | /// Get the NPC to say something. | ||
191 | /// </summary> | ||
192 | /// <param name="agentID">The UUID of the NPC</param> | ||
193 | /// <param name="scene"></param> | ||
194 | /// <param name="text"></param> | ||
195 | /// <returns> | ||
196 | /// True if the operation succeeded, false if there was no such agent | ||
197 | /// or the agent was not an NPC. | ||
198 | /// </returns> | ||
199 | bool Say(UUID agentID, Scene scene, string text); | ||
200 | |||
201 | /// <summary> | ||
202 | /// Get the NPC to say something. | ||
203 | /// </summary> | ||
204 | /// <param name="agentID">The UUID of the NPC</param> | ||
205 | /// <param name="scene"></param> | ||
206 | /// <param name="text"></param> | ||
207 | /// <param name="channel"></param> | ||
208 | /// <returns> | ||
209 | /// True if the operation succeeded, false if there was no such agent | ||
210 | /// or the agent was not an NPC. | ||
211 | /// </returns> | ||
212 | bool Say(UUID agentID, Scene scene, string text, int channel); | ||
213 | |||
214 | /// <summary> | ||
215 | /// Get the NPC to shout something. | ||
216 | /// </summary> | ||
217 | /// <param name="agentID">The UUID of the NPC</param> | ||
218 | /// <param name="scene"></param> | ||
219 | /// <param name="text"></param> | ||
220 | /// <param name="channel"></param> | ||
221 | /// <returns> | ||
222 | /// True if the operation succeeded, false if there was no such agent | ||
223 | /// or the agent was not an NPC. | ||
224 | /// </returns> | ||
225 | bool Shout(UUID agentID, Scene scene, string text, int channel); | ||
226 | |||
227 | /// <summary> | ||
228 | /// Get the NPC to whisper something. | ||
229 | /// </summary> | ||
230 | /// <param name="agentID">The UUID of the NPC</param> | ||
231 | /// <param name="scene"></param> | ||
232 | /// <param name="text"></param> | ||
233 | /// <param name="channel"></param> | ||
234 | /// <returns> | ||
235 | /// True if the operation succeeded, false if there was no such agent | ||
236 | /// or the agent was not an NPC. | ||
237 | /// </returns> | ||
238 | bool Whisper(UUID agentID, Scene scene, string text, int channel); | ||
239 | |||
240 | /// <summary> | ||
241 | /// Sit the NPC. | ||
242 | /// </summary> | ||
243 | /// <param name="agentID"></param> | ||
244 | /// <param name="partID"></param> | ||
245 | /// <param name="scene"></param> | ||
246 | /// <returns>true if the sit succeeded, false if not</returns> | ||
247 | bool Sit(UUID agentID, UUID partID, Scene scene); | ||
248 | |||
249 | /// <summary> | ||
250 | /// Stand a sitting NPC. | ||
251 | /// </summary> | ||
252 | /// <param name="agentID"></param> | ||
253 | /// <param name="scene"></param> | ||
254 | /// <returns>true if the stand succeeded, false if not</returns> | ||
255 | bool Stand(UUID agentID, Scene scene); | ||
256 | |||
257 | /// <summary> | ||
258 | /// Get the NPC to touch an object. | ||
259 | /// </summary> | ||
260 | /// <param name="agentID"></param> | ||
261 | /// <param name="partID"></param> | ||
262 | /// <returns> | ||
263 | /// true if the touch is actually attempted, false if not. | ||
264 | /// </returns> | ||
265 | bool Touch(UUID agentID, UUID partID); | ||
266 | |||
267 | /// <summary> | ||
268 | /// Delete an NPC. | ||
269 | /// </summary> | ||
270 | /// <param name="agentID">The UUID of the NPC</param> | ||
271 | /// <param name="scene"></param> | ||
272 | /// <returns> | ||
273 | /// True if the operation succeeded, false if there was no such agent | ||
274 | /// or the agent was not an NPC. | ||
275 | /// </returns> | ||
276 | bool DeleteNPC(UUID agentID, Scene scene); | ||
277 | |||
278 | /// <summary> | ||
279 | /// Get the owner of a NPC | ||
280 | /// </summary> | ||
281 | /// <param name="agentID">The UUID of the NPC</param> | ||
282 | /// <returns> | ||
283 | /// UUID of owner if the NPC exists, UUID.Zero if there was no such | ||
284 | /// agent, the agent is unowned or the agent was not an NPC. | ||
285 | /// </returns> | ||
286 | UUID GetOwner(UUID agentID); | ||
287 | } | ||
288 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs b/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs new file mode 100644 index 0000000..ff6efba --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/INonSharedRegionModule.cs | |||
@@ -0,0 +1,35 @@ | |||
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; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface INonSharedRegionModule : IRegionModuleBase | ||
33 | { | ||
34 | } | ||
35 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs new file mode 100644 index 0000000..1ed978b --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IPermissionsModule.cs | |||
@@ -0,0 +1,54 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Region.Framework.Scenes; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | /// <value> | ||
34 | /// Which set of permissions a user has. | ||
35 | /// </value> | ||
36 | public enum PermissionClass | ||
37 | { | ||
38 | Owner, | ||
39 | Group, | ||
40 | Everyone | ||
41 | }; | ||
42 | |||
43 | public interface IPermissionsModule | ||
44 | { | ||
45 | |||
46 | /// <summary> | ||
47 | /// Returns the type of permissions that the user has over an object. | ||
48 | /// </summary> | ||
49 | /// <param name="user">The user</param> | ||
50 | /// <param name="obj">The object</param> | ||
51 | /// <returns>The type of permissions the user has over the object</returns> | ||
52 | PermissionClass GetPermissionClass(UUID user, SceneObjectPart obj); | ||
53 | } | ||
54 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs new file mode 100644 index 0000000..d44c1e1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IPresenceModule.cs | |||
@@ -0,0 +1,54 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public struct PresenceInfo | ||
33 | { | ||
34 | public string UserID; | ||
35 | public UUID RegionID; | ||
36 | |||
37 | public PresenceInfo(string userID, UUID regionID) | ||
38 | { | ||
39 | UserID = userID; | ||
40 | RegionID = regionID; | ||
41 | } | ||
42 | } | ||
43 | |||
44 | public delegate void PresenceChange(PresenceInfo info); | ||
45 | public delegate void BulkPresenceData(PresenceInfo[] info); | ||
46 | |||
47 | public interface IPresenceModule | ||
48 | { | ||
49 | void RequestBulkPresenceData(UUID[] users); | ||
50 | |||
51 | event PresenceChange OnPresenceChange; | ||
52 | event BulkPresenceData OnBulkPresenceData; | ||
53 | } | ||
54 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs new file mode 100644 index 0000000..d63da2e --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs | |||
@@ -0,0 +1,41 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IPrimCountModule | ||
34 | { | ||
35 | void TaintPrimCount(ILandObject land); | ||
36 | void TaintPrimCount(int x, int y); | ||
37 | void TaintPrimCount(); | ||
38 | |||
39 | IPrimCounts GetPrimCounts(UUID parcelID); | ||
40 | } | ||
41 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IProfileModule.cs b/OpenSim/Region/Framework/Interfaces/IProfileModule.cs new file mode 100644 index 0000000..ef03d4a --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IProfileModule.cs | |||
@@ -0,0 +1,37 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Framework | ||
31 | { | ||
32 | public interface IProfileModule | ||
33 | { | ||
34 | void RequestAvatarProperties(IClientAPI remoteClient, UUID avatarID); | ||
35 | |||
36 | } | ||
37 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs new file mode 100644 index 0000000..99bc87d --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs | |||
@@ -0,0 +1,133 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using System.IO; | ||
31 | |||
32 | using OpenMetaverse; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | /// <summary> | ||
37 | /// Interface to region archive functionality | ||
38 | /// </summary> | ||
39 | public interface IRegionArchiverModule | ||
40 | { | ||
41 | void HandleLoadOarConsoleCommand(string module, string[] cmdparams); | ||
42 | void HandleSaveOarConsoleCommand(string module, string[] cmdparams); | ||
43 | |||
44 | /// <summary> | ||
45 | /// Archive the region to the given path | ||
46 | /// </summary> | ||
47 | /// | ||
48 | /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to | ||
49 | /// the EventManager.OnOarFileSaved event. | ||
50 | /// | ||
51 | /// <param name="savePath"></param> | ||
52 | void ArchiveRegion(string savePath, Dictionary<string, object> options); | ||
53 | |||
54 | /// <summary> | ||
55 | /// Archive the region to the given path | ||
56 | /// </summary> | ||
57 | /// <remarks> | ||
58 | /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to | ||
59 | /// the EventManager.OnOarFileSaved event. | ||
60 | /// </remarks> | ||
61 | /// <param name="savePath"></param> | ||
62 | /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param> | ||
63 | /// <param name="options">Options for the save</param> | ||
64 | void ArchiveRegion(string savePath, Guid requestId, Dictionary<string, object> options); | ||
65 | |||
66 | /// <summary> | ||
67 | /// Archive the region to a stream. | ||
68 | /// </summary> | ||
69 | /// <remarks> | ||
70 | /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to | ||
71 | /// the EventManager.OnOarFileSaved event. | ||
72 | /// </remarks> | ||
73 | /// <param name="saveStream"></param> | ||
74 | /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param> | ||
75 | void ArchiveRegion(Stream saveStream, Guid requestId); | ||
76 | |||
77 | /// <summary> | ||
78 | /// Archive the region to a stream. | ||
79 | /// </summary> | ||
80 | /// <remarks> | ||
81 | /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to | ||
82 | /// the EventManager.OnOarFileSaved event. | ||
83 | /// </remarks> | ||
84 | /// <param name="saveStream"></param> | ||
85 | /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param> | ||
86 | /// <param name="options">Options for the save</param> | ||
87 | void ArchiveRegion(Stream saveStream, Guid requestId, Dictionary<string, object> options); | ||
88 | |||
89 | /// <summary> | ||
90 | /// Dearchive the given region archive. This replaces the existing scene. | ||
91 | /// </summary> | ||
92 | /// <remarks> | ||
93 | /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. | ||
94 | /// </remarks> | ||
95 | /// <param name="loadPath"></param> | ||
96 | void DearchiveRegion(string loadPath); | ||
97 | |||
98 | /// <summary> | ||
99 | /// Dearchive the given region archive. This replaces the existing scene. | ||
100 | /// </summary> | ||
101 | /// | ||
102 | /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. | ||
103 | /// | ||
104 | /// <param name="loadPath"></param> | ||
105 | /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param> | ||
106 | /// <param name="options"> | ||
107 | /// Dictionary of options. | ||
108 | /// </param> | ||
109 | void DearchiveRegion(string loadPath, Guid requestId, Dictionary<string,object> options); | ||
110 | |||
111 | /// <summary> | ||
112 | /// Dearchive a region from a stream. This replaces the existing scene. | ||
113 | /// </summary> | ||
114 | /// | ||
115 | /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. | ||
116 | /// | ||
117 | /// <param name="loadStream"></param> | ||
118 | void DearchiveRegion(Stream loadStream); | ||
119 | |||
120 | /// <summary> | ||
121 | /// Dearchive a region from a stream. This replaces the existing scene. | ||
122 | /// </summary> | ||
123 | /// | ||
124 | /// If you want notification of when it has completed then subscribe to the EventManager.OnOarFileLoaded event. | ||
125 | /// | ||
126 | /// <param name="loadStream"></param> | ||
127 | /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param> | ||
128 | /// <param name="options"> | ||
129 | /// Dictionary of options. | ||
130 | /// </param> | ||
131 | void DearchiveRegion(Stream loadStream, Guid requestId, Dictionary<string,object> options); | ||
132 | } | ||
133 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs new file mode 100644 index 0000000..c6f531e --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionCombinerModule.cs | |||
@@ -0,0 +1,64 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Linq; | ||
31 | using System.Text; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | using System.IO; | ||
34 | using OpenMetaverse; | ||
35 | |||
36 | namespace OpenSim.Region.Framework.Interfaces | ||
37 | { | ||
38 | public interface IRegionCombinerModule | ||
39 | { | ||
40 | /// <summary> | ||
41 | /// Does the given id belong to the root region of a megaregion? | ||
42 | /// </summary> | ||
43 | bool IsRootForMegaregion(UUID regionId); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Gets the size of megaregion. | ||
47 | /// </summary> | ||
48 | /// <remarks> | ||
49 | /// Returns size in meters. | ||
50 | /// Do not rely on this method remaining the same - this area is actively under development. | ||
51 | /// </remarks> | ||
52 | /// <param name="sceneId"> | ||
53 | /// The id of the root region for a megaregion. | ||
54 | /// This may change in the future to allow any region id that makes up a megaregion. | ||
55 | /// Currently, will throw an exception if this does not match a root region. | ||
56 | /// </param> | ||
57 | Vector2 GetSizeOfMegaregion(UUID regionId); | ||
58 | |||
59 | /// <summary> | ||
60 | /// Tests to see of position (relative to the region) is within the megaregion | ||
61 | /// </summary> | ||
62 | bool PositionIsInMegaregion(UUID currentRegion, int xx, int yy); | ||
63 | } | ||
64 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs b/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs new file mode 100644 index 0000000..4d261d6 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionConsole.cs | |||
@@ -0,0 +1,39 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IRegionConsole | ||
34 | { | ||
35 | bool RunCommand(string command, UUID invokerID); | ||
36 | void SendConsoleOutput(UUID agentID, string message); | ||
37 | void AddCommand(string module, bool shared, string command, string help, string longhelp, CommandDelegate fn); | ||
38 | } | ||
39 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs new file mode 100644 index 0000000..2089bce --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionModuleBase.cs | |||
@@ -0,0 +1,104 @@ | |||
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; | ||
29 | using Mono.Addins; | ||
30 | using Nini.Config; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | [TypeExtensionPoint(Path = "/OpenSim/RegionModules", NodeName="RegionModule")] | ||
36 | public interface IRegionModuleBase | ||
37 | { | ||
38 | /// <value> | ||
39 | /// The name of the module | ||
40 | /// </value> | ||
41 | string Name { get; } | ||
42 | |||
43 | /// <summary> | ||
44 | /// If this returns non-null, it is the type of an interface that | ||
45 | /// this module intends to register. | ||
46 | /// This will cause the loader to defer loading of this module | ||
47 | /// until all other modules have been loaded. If no other module | ||
48 | /// has registered the interface by then, this module will be | ||
49 | /// activated, else it will remain inactive, letting the other module | ||
50 | /// take over. This should return non-null ONLY in modules that are | ||
51 | /// intended to be easily replaceable, e.g. stub implementations | ||
52 | /// that the developer expects to be replaced by third party provided | ||
53 | /// modules. | ||
54 | /// </summary> | ||
55 | Type ReplaceableInterface { get; } | ||
56 | |||
57 | /// <summary> | ||
58 | /// This is called to initialize the region module. For shared modules, this is called | ||
59 | /// exactly once, after creating the single (shared) instance. For non-shared modules, | ||
60 | /// this is called once on each instance, after the instace for the region has been created. | ||
61 | /// </summary> | ||
62 | /// <param name="source"> | ||
63 | /// A <see cref="IConfigSource"/> | ||
64 | /// </param> | ||
65 | void Initialise(IConfigSource source); | ||
66 | |||
67 | /// <summary> | ||
68 | /// This is the inverse to <see cref="Initialise"/>. After a Close(), this instance won't be usable anymore. | ||
69 | /// </summary> | ||
70 | void Close(); | ||
71 | |||
72 | /// <summary> | ||
73 | /// This is called whenever a <see cref="Scene"/> is added. For shared modules, this can happen several times. | ||
74 | /// For non-shared modules, this happens exactly once, after <see cref="Initialise"/> has been called. | ||
75 | /// </summary> | ||
76 | /// <param name="scene"> | ||
77 | /// A <see cref="Scene"/> | ||
78 | /// </param> | ||
79 | void AddRegion(Scene scene); | ||
80 | |||
81 | /// <summary> | ||
82 | /// This is called whenever a <see cref="Scene"/> is removed. For shared modules, this can happen several times. | ||
83 | /// For non-shared modules, this happens exactly once, if the scene this instance is associated with is removed. | ||
84 | /// </summary> | ||
85 | /// <param name="scene"> | ||
86 | /// A <see cref="Scene"/> | ||
87 | /// </param> | ||
88 | void RemoveRegion(Scene scene); | ||
89 | |||
90 | /// <summary> | ||
91 | /// This will be called once for every scene loaded. In a shared module | ||
92 | /// this will be multiple times in one instance, while a nonshared | ||
93 | /// module instance will only be called once. | ||
94 | /// This method is called after AddRegion has been called in all | ||
95 | /// modules for that scene, providing an opportunity to request | ||
96 | /// another module's interface, or hook an event from another module. | ||
97 | /// </summary> | ||
98 | /// <param name="scene"> | ||
99 | /// A <see cref="Scene"/> | ||
100 | /// </param> | ||
101 | void RegionLoaded(Scene scene); | ||
102 | } | ||
103 | |||
104 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs b/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs new file mode 100644 index 0000000..68bff78 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionModulesController.cs | |||
@@ -0,0 +1,38 @@ | |||
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; | ||
29 | using OpenSim.Region.Framework.Scenes; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IRegionModulesController | ||
34 | { | ||
35 | void AddRegionToModules(Scene scene); | ||
36 | void RemoveRegionFromModules (Scene scene); | ||
37 | } | ||
38 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs new file mode 100644 index 0000000..136ca92 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionReadyModule.cs | |||
@@ -0,0 +1,47 @@ | |||
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; | ||
29 | using OpenSim.Framework; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IRegionReadyModule | ||
34 | { | ||
35 | void OarLoadingAlert(string msg); | ||
36 | |||
37 | /// <summary> | ||
38 | /// Trigger region ready status manually. | ||
39 | /// </summary> | ||
40 | /// <remarks> | ||
41 | /// This should be called by the scene if the IRegionReadyModule has set Scene.LoginLock == true | ||
42 | /// </remarks> | ||
43 | /// <param name='scene'></param> | ||
44 | void TriggerRegionReady(IScene scene); | ||
45 | } | ||
46 | } | ||
47 | |||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs new file mode 100644 index 0000000..c5b21a8 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs | |||
@@ -0,0 +1,122 @@ | |||
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.Collections.Generic; | ||
29 | using System.IO; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IRegionSerialiserModule | ||
36 | { | ||
37 | List<string> SerialiseRegion(Scene scene, string saveDir); | ||
38 | |||
39 | /// <summary> | ||
40 | /// Load prims from the xml format | ||
41 | /// </summary> | ||
42 | /// <param name="scene"></param> | ||
43 | /// <param name="fileName"></param> | ||
44 | /// <param name="newIDS"></param> | ||
45 | /// <param name="loadOffset"></param> | ||
46 | void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, Vector3 loadOffset); | ||
47 | |||
48 | /// <summary> | ||
49 | /// Save prims in the xml format | ||
50 | /// </summary> | ||
51 | /// <param name="scene"> </param> | ||
52 | /// <param name="fileName"></param> | ||
53 | void SavePrimsToXml(Scene scene, string fileName); | ||
54 | |||
55 | /// <summary> | ||
56 | /// Load prims from the xml2 format | ||
57 | /// </summary> | ||
58 | /// <param name="scene"></param> | ||
59 | /// <param name="fileName"></param> | ||
60 | void LoadPrimsFromXml2(Scene scene, string fileName); | ||
61 | |||
62 | /// <summary> | ||
63 | /// Load prims from the xml2 format | ||
64 | /// </summary> | ||
65 | /// <param name="scene"></param> | ||
66 | /// <param name="reader"></param> | ||
67 | /// <param name="startScripts"></param> | ||
68 | void LoadPrimsFromXml2(Scene scene, TextReader reader, bool startScripts); | ||
69 | |||
70 | /// <summary> | ||
71 | /// Save prims in the xml2 format | ||
72 | /// </summary> | ||
73 | /// <param name="scene"></param> | ||
74 | /// <param name="fileName"></param> | ||
75 | void SavePrimsToXml2(Scene scene, string fileName); | ||
76 | |||
77 | /// <summary> | ||
78 | /// Save prims in the xml2 format, optionally specifying a bounding box for which | ||
79 | /// prims should be saved. If both min and max vectors are Vector3.Zero, then all prims | ||
80 | /// are exported. | ||
81 | /// </summary> | ||
82 | /// <param name="scene"></param> | ||
83 | /// <param name="stream"></param> | ||
84 | /// <param name="min"></param> | ||
85 | /// <param name="max"></param> | ||
86 | void SavePrimsToXml2(Scene scene, TextWriter stream, Vector3 min, Vector3 max); | ||
87 | |||
88 | /// <summary> | ||
89 | /// Save a set of prims in the xml2 format | ||
90 | /// </summary> | ||
91 | /// <param name="entityList"></param> | ||
92 | /// <param name="fileName"></param> | ||
93 | void SavePrimListToXml2(EntityBase[] entityList, string fileName); | ||
94 | |||
95 | /// <summary> | ||
96 | /// Save a set of prims in the xml2 format, optionally specifying a bounding box for which | ||
97 | /// prims should be saved. If both min and max vectors are Vector3.Zero, then all prims | ||
98 | /// are exported. | ||
99 | /// </summary> | ||
100 | /// <param name="entityList"></param> | ||
101 | /// <param name="stream"></param> | ||
102 | /// <param name="min"></param> | ||
103 | /// <param name="max"></param> | ||
104 | void SavePrimListToXml2(EntityBase[] entityList, TextWriter stream, Vector3 min, Vector3 max); | ||
105 | |||
106 | void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName); | ||
107 | |||
108 | /// <summary> | ||
109 | /// Deserializes a scene object from its xml2 representation. This does not load the object into the scene. | ||
110 | /// </summary> | ||
111 | /// <param name="xmlString"></param> | ||
112 | /// <returns>The scene object created</returns> | ||
113 | SceneObjectGroup DeserializeGroupFromXml2(string xmlString); | ||
114 | |||
115 | /// <summary> | ||
116 | /// Serialize an individual scene object into the xml2 format | ||
117 | /// </summary> | ||
118 | /// <param name="grp"></param> | ||
119 | /// <returns></returns> | ||
120 | string SerializeGroupToXml2(SceneObjectGroup grp, Dictionary<string, object> options); | ||
121 | } | ||
122 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRestartModule.cs b/OpenSim/Region/Framework/Interfaces/IRestartModule.cs new file mode 100644 index 0000000..c68550f --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IRestartModule.cs | |||
@@ -0,0 +1,39 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IRestartModule | ||
34 | { | ||
35 | TimeSpan TimeUntilRestart { get; } | ||
36 | void ScheduleRestart(UUID initiator, string message, int[] alerts, bool notice); | ||
37 | void AbortRestart(string message); | ||
38 | } | ||
39 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs b/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs new file mode 100644 index 0000000..c5e678b --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISceneCommandsModule.cs | |||
@@ -0,0 +1,43 @@ | |||
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 OpenSim 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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | public interface ISceneCommandsModule | ||
37 | { | ||
38 | /// <summary> | ||
39 | /// Sets the scene debug options. | ||
40 | /// </summary> | ||
41 | void SetSceneDebugOptions(Dictionary<string, string> options); | ||
42 | } | ||
43 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IScenePresence.cs b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs new file mode 100644 index 0000000..0fe681f --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IScenePresence.cs | |||
@@ -0,0 +1,86 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// An agent in the scene. | ||
37 | /// </summary> | ||
38 | /// <remarks> | ||
39 | /// Interface is a work in progress. Please feel free to add other required properties and methods. | ||
40 | /// </remarks> | ||
41 | public interface IScenePresence : ISceneAgent | ||
42 | { | ||
43 | /// <summary> | ||
44 | /// Copy of the script states while the agent is in transit. This state may | ||
45 | /// need to be placed back in case of transfer fail. | ||
46 | /// </summary> | ||
47 | List<string> InTransitScriptStates { get; } | ||
48 | |||
49 | /// <summary> | ||
50 | /// The AttachmentsModule synchronizes on this to avoid race conditions between commands to add and remove attachments. | ||
51 | /// </summary> | ||
52 | /// <remarks> | ||
53 | /// All add and remove attachment operations must synchronize on this for the lifetime of their operations. | ||
54 | /// </remarks> | ||
55 | Object AttachmentsSyncLock { get; } | ||
56 | |||
57 | /// <summary> | ||
58 | /// The scene objects attached to this avatar. | ||
59 | /// </summary> | ||
60 | /// <returns> | ||
61 | /// A copy of the list. | ||
62 | /// </returns> | ||
63 | /// <remarks> | ||
64 | /// Do not change this list directly - use the attachments module. | ||
65 | /// </remarks> | ||
66 | List<SceneObjectGroup> GetAttachments(); | ||
67 | |||
68 | /// <summary> | ||
69 | /// The scene objects attached to this avatar at a specific attachment point. | ||
70 | /// </summary> | ||
71 | /// <param name="attachmentPoint"></param> | ||
72 | /// <returns></returns> | ||
73 | List<SceneObjectGroup> GetAttachments(uint attachmentPoint); | ||
74 | |||
75 | /// <summary> | ||
76 | /// Does this avatar have any attachments? | ||
77 | /// </summary> | ||
78 | /// <returns></returns> | ||
79 | bool HasAttachments(); | ||
80 | |||
81 | // Don't use these methods directly. Instead, use the AttachmentsModule | ||
82 | void AddAttachment(SceneObjectGroup gobj); | ||
83 | void RemoveAttachment(SceneObjectGroup gobj); | ||
84 | void ClearAttachments(); | ||
85 | } | ||
86 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModule.cs b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs new file mode 100644 index 0000000..ced4e91 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IScriptModule.cs | |||
@@ -0,0 +1,115 @@ | |||
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; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | ||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public delegate void ScriptRemoved(UUID script); | ||
36 | public delegate void ObjectRemoved(UUID prim); | ||
37 | |||
38 | public interface IScriptModule: INonSharedRegionModule | ||
39 | { | ||
40 | /// <summary> | ||
41 | /// Triggered when a script is removed from the script module. | ||
42 | /// </summary> | ||
43 | event ScriptRemoved OnScriptRemoved; | ||
44 | |||
45 | /// <summary> | ||
46 | /// Triggered when an object is removed via the script module. | ||
47 | /// </summary> | ||
48 | event ObjectRemoved OnObjectRemoved; | ||
49 | |||
50 | string ScriptEngineName { get; } | ||
51 | |||
52 | string GetXMLState(UUID itemID); | ||
53 | bool SetXMLState(UUID itemID, string xml); | ||
54 | |||
55 | /// <summary> | ||
56 | /// Post a script event to a single script. | ||
57 | /// </summary> | ||
58 | /// <returns>true if the post suceeded, false if it did not</returns> | ||
59 | /// <param name='itemID'>The item ID of the script.</param> | ||
60 | /// <param name='name'>The name of the event.</param> | ||
61 | /// <param name='args'> | ||
62 | /// The arguments of the event. These are in the order in which they appear. | ||
63 | /// e.g. for http_request this will be an object array of key request_id, string method, string body | ||
64 | /// </param> | ||
65 | bool PostScriptEvent(UUID itemID, string name, Object[] args); | ||
66 | |||
67 | bool PostObjectEvent(UUID itemID, string name, Object[] args); | ||
68 | |||
69 | /// <summary> | ||
70 | /// Suspends a script. | ||
71 | /// </summary> | ||
72 | /// <param name="itemID">The item ID of the script.</param> | ||
73 | void SuspendScript(UUID itemID); | ||
74 | |||
75 | /// <summary> | ||
76 | /// Resumes a script. | ||
77 | /// </summary> | ||
78 | /// <param name="itemID">The item ID of the script.</param> | ||
79 | void ResumeScript(UUID itemID); | ||
80 | |||
81 | ArrayList GetScriptErrors(UUID itemID); | ||
82 | |||
83 | bool HasScript(UUID itemID, out bool running); | ||
84 | |||
85 | /// <summary> | ||
86 | /// Returns true if a script is running. | ||
87 | /// </summary> | ||
88 | /// <param name="itemID">The item ID of the script.</param> | ||
89 | bool GetScriptState(UUID itemID); | ||
90 | |||
91 | void SaveAllState(); | ||
92 | |||
93 | /// <summary> | ||
94 | /// Starts the processing threads. | ||
95 | /// </summary> | ||
96 | void StartProcessing(); | ||
97 | |||
98 | /// <summary> | ||
99 | /// Get the execution times of all scripts in the given array if they are currently running. | ||
100 | /// </summary> | ||
101 | /// <returns> | ||
102 | /// A float the value is a representative execution time in milliseconds of all scripts in that Array. | ||
103 | /// </returns> | ||
104 | float GetScriptExecutionTime(List<UUID> itemIDs); | ||
105 | |||
106 | /// <summary> | ||
107 | /// Get the execution times of all scripts in each object. | ||
108 | /// </summary> | ||
109 | /// <returns> | ||
110 | /// A dictionary where the key is the root object ID of a linkset | ||
111 | /// and the value is a representative execution time in milliseconds of all scripts in that linkset. | ||
112 | /// </returns> | ||
113 | Dictionary<uint, float> GetObjectScriptsExecutionTimes(); | ||
114 | } | ||
115 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs new file mode 100644 index 0000000..70ff954 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IScriptModuleComms.cs | |||
@@ -0,0 +1,148 @@ | |||
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; | ||
29 | using System.Reflection; | ||
30 | using System.Collections.Generic; | ||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public delegate void ScriptCommand(UUID script, string id, string module, string command, string k); | ||
36 | |||
37 | /// <summary> | ||
38 | /// Interface for communication between OpenSim modules and in-world scripts | ||
39 | /// </summary> | ||
40 | /// | ||
41 | /// See OpenSim.Region.ScriptEngine.Shared.Api.MOD_Api.modSendCommand() for information on receiving messages | ||
42 | /// from scripts in OpenSim modules. | ||
43 | public interface IScriptModuleComms | ||
44 | { | ||
45 | /// <summary> | ||
46 | /// Modules can subscribe to this event to receive command invocations from in-world scripts | ||
47 | /// </summary> | ||
48 | event ScriptCommand OnScriptCommand; | ||
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> | ||
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> | ||
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> | ||
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> | ||
90 | Delegate[] GetScriptInvocationList(); | ||
91 | |||
92 | Delegate LookupScriptInvocation(string fname); | ||
93 | string LookupModInvocation(string fname); | ||
94 | Type[] LookupTypeSignature(string fname); | ||
95 | Type LookupReturnType(string fname); | ||
96 | |||
97 | object InvokeOperation(UUID hostId, UUID scriptId, string fname, params object[] parms); | ||
98 | |||
99 | /// <summary> | ||
100 | /// Send a link_message event to an in-world script | ||
101 | /// </summary> | ||
102 | /// <param name="scriptId"></param> | ||
103 | /// <param name="code"></param> | ||
104 | /// <param name="text"></param> | ||
105 | /// <param name="key"></param> | ||
106 | void DispatchReply(UUID scriptId, int code, string text, string key); | ||
107 | |||
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> | ||
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> | ||
134 | object LookupModConstant(string cname); | ||
135 | Dictionary<string, object> GetConstants(); | ||
136 | |||
137 | // For use ONLY by the script API | ||
138 | void RaiseEvent(UUID script, string id, string module, string command, string key); | ||
139 | } | ||
140 | |||
141 | [AttributeUsage(AttributeTargets.Method)] | ||
142 | public class ScriptInvocationAttribute : Attribute | ||
143 | { } | ||
144 | |||
145 | [AttributeUsage(AttributeTargets.Field)] | ||
146 | public class ScriptConstantAttribute : Attribute | ||
147 | { } | ||
148 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISearchModule.cs b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs new file mode 100644 index 0000000..64bf72c --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISearchModule.cs | |||
@@ -0,0 +1,36 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Framework | ||
31 | { | ||
32 | public interface ISearchModule | ||
33 | { | ||
34 | |||
35 | } | ||
36 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs b/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs new file mode 100644 index 0000000..b2252cc --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IServiceRequest.cs | |||
@@ -0,0 +1,45 @@ | |||
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 | using OpenMetaverse; | ||
28 | |||
29 | namespace OpenSim.Region.Framework.Interfaces | ||
30 | { | ||
31 | public interface IServiceRequest | ||
32 | { | ||
33 | // Status | ||
34 | bool Finished { get; } | ||
35 | |||
36 | // Request info | ||
37 | UUID ItemID { get; set; } | ||
38 | uint LocalID { get; set; } | ||
39 | UUID ReqID { get; set; } | ||
40 | |||
41 | void Process(); | ||
42 | void SendRequest(); | ||
43 | void Stop(); | ||
44 | } | ||
45 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs b/OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs new file mode 100644 index 0000000..198256f --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IServiceThrottleModule.cs | |||
@@ -0,0 +1,19 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | |||
4 | namespace OpenSim.Region.Framework.Interfaces | ||
5 | { | ||
6 | public interface IServiceThrottleModule | ||
7 | { | ||
8 | /// <summary> | ||
9 | /// Enqueue a continuation meant to get a resource from elsewhere. | ||
10 | /// As usual with CPS, caller beware: if that continuation is a never-ending computation, | ||
11 | /// the whole thread will be blocked, and no requests are processed | ||
12 | /// </summary> | ||
13 | /// <param name="category">Category of the resource (e.g. name, region)</param> | ||
14 | /// <param name="itemid">The resource identifier</param> | ||
15 | /// <param name="continuation">The continuation to be executed</param> | ||
16 | void Enqueue(string category, string itemid, Action continuation); | ||
17 | } | ||
18 | |||
19 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs b/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs new file mode 100644 index 0000000..b516050 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISharedRegionModule.cs | |||
@@ -0,0 +1,40 @@ | |||
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; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface ISharedRegionModule : IRegionModuleBase | ||
33 | { | ||
34 | /// <summary> | ||
35 | /// This is called exactly once after all the shared region-modules have been instanciated and | ||
36 | /// <see cref="IRegionModuleBase.Initialise"/>d. | ||
37 | /// </summary> | ||
38 | void PostInitialise(); | ||
39 | } | ||
40 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs new file mode 100644 index 0000000..8948f04 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs | |||
@@ -0,0 +1,134 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using OpenSim.Region.Framework.Scenes; | ||
33 | |||
34 | namespace OpenSim.Region.Framework.Interfaces | ||
35 | { | ||
36 | public interface ISimulationDataService | ||
37 | { | ||
38 | /// <summary> | ||
39 | /// Stores all object's details apart from inventory | ||
40 | /// </summary> | ||
41 | /// <param name="obj"></param> | ||
42 | /// <param name="regionUUID"></param> | ||
43 | void StoreObject(SceneObjectGroup obj, UUID regionUUID); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Entirely removes the object, including inventory | ||
47 | /// </summary> | ||
48 | /// <param name="uuid"></param> | ||
49 | /// <param name="regionUUID"></param> | ||
50 | /// <returns></returns> | ||
51 | void RemoveObject(UUID uuid, UUID regionUUID); | ||
52 | |||
53 | /// <summary> | ||
54 | /// Store a prim's inventory | ||
55 | /// </summary> | ||
56 | /// <returns></returns> | ||
57 | void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items); | ||
58 | |||
59 | /// <summary> | ||
60 | /// Load persisted objects from region storage. | ||
61 | /// </summary> | ||
62 | /// <param name="regionUUID">the Region UUID</param> | ||
63 | /// <returns>List of loaded groups</returns> | ||
64 | List<SceneObjectGroup> LoadObjects(UUID regionUUID); | ||
65 | |||
66 | /// <summary> | ||
67 | /// Store a terrain revision in region storage | ||
68 | /// </summary> | ||
69 | /// <param name="ter">HeightField data</param> | ||
70 | /// <param name="regionID">region UUID</param> | ||
71 | void StoreTerrain(TerrainData terrain, UUID regionID); | ||
72 | |||
73 | // Legacy version kept for downward compabibility | ||
74 | void StoreTerrain(double[,] terrain, UUID regionID); | ||
75 | |||
76 | /// <summary> | ||
77 | /// Load the latest terrain revision from region storage | ||
78 | /// </summary> | ||
79 | /// <param name="regionID">the region UUID</param> | ||
80 | /// <param name="sizeX">the X dimension of the region being filled</param> | ||
81 | /// <param name="sizeY">the Y dimension of the region being filled</param> | ||
82 | /// <param name="sizeZ">the Z dimension of the region being filled</param> | ||
83 | /// <returns>Heightfield data</returns> | ||
84 | TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); | ||
85 | |||
86 | // Legacy version kept for downward compabibility | ||
87 | double[,] LoadTerrain(UUID regionID); | ||
88 | |||
89 | void StoreLandObject(ILandObject Parcel); | ||
90 | |||
91 | /// <summary> | ||
92 | /// <list type="bullet"> | ||
93 | /// <item>delete from land where UUID=globalID</item> | ||
94 | /// <item>delete from landaccesslist where LandUUID=globalID</item> | ||
95 | /// </list> | ||
96 | /// </summary> | ||
97 | /// <param name="globalID"></param> | ||
98 | void RemoveLandObject(UUID globalID); | ||
99 | |||
100 | List<LandData> LoadLandObjects(UUID regionUUID); | ||
101 | |||
102 | void StoreRegionSettings(RegionSettings rs); | ||
103 | RegionSettings LoadRegionSettings(UUID regionUUID); | ||
104 | RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); | ||
105 | void StoreRegionWindlightSettings(RegionLightShareData wl); | ||
106 | void RemoveRegionWindlightSettings(UUID regionID); | ||
107 | |||
108 | /// <summary> | ||
109 | /// Load Environment settings from region storage | ||
110 | /// </summary> | ||
111 | /// <param name="regionUUID">the region UUID</param> | ||
112 | /// <returns>LLSD string for viewer</returns> | ||
113 | string LoadRegionEnvironmentSettings(UUID regionUUID); | ||
114 | |||
115 | /// <summary> | ||
116 | /// Store Environment settings into region storage | ||
117 | /// </summary> | ||
118 | /// <param name="regionUUID">the region UUID</param> | ||
119 | /// <param name="settings">LLSD string from viewer</param> | ||
120 | void StoreRegionEnvironmentSettings(UUID regionUUID, string settings); | ||
121 | |||
122 | /// <summary> | ||
123 | /// Delete Environment settings from region storage | ||
124 | /// </summary> | ||
125 | /// <param name="regionUUID">the region UUID</param> | ||
126 | void RemoveRegionEnvironmentSettings(UUID regionUUID); | ||
127 | |||
128 | void SaveExtra(UUID regionID, string name, string value); | ||
129 | |||
130 | void RemoveExtra(UUID regionID, string name); | ||
131 | |||
132 | Dictionary<string, string> GetExtra(UUID regionID); | ||
133 | } | ||
134 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs new file mode 100644 index 0000000..917b5d1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISimulationDataStore.cs | |||
@@ -0,0 +1,148 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface ISimulationDataStore | ||
36 | { | ||
37 | /// <summary> | ||
38 | /// Initialises the data storage engine | ||
39 | /// </summary> | ||
40 | /// <param name="filename">The file to save the database to (may not be applicable). Alternatively, | ||
41 | /// a connection string for the database</param> | ||
42 | void Initialise(string filename); | ||
43 | |||
44 | /// <summary> | ||
45 | /// Dispose the database | ||
46 | /// </summary> | ||
47 | void Dispose(); | ||
48 | |||
49 | /// <summary> | ||
50 | /// Stores all object's details apart from inventory | ||
51 | /// </summary> | ||
52 | /// <param name="obj"></param> | ||
53 | /// <param name="regionUUID"></param> | ||
54 | void StoreObject(SceneObjectGroup obj, UUID regionUUID); | ||
55 | |||
56 | /// <summary> | ||
57 | /// Entirely removes the object, including inventory | ||
58 | /// </summary> | ||
59 | /// <param name="uuid"></param> | ||
60 | /// <param name="regionUUID"></param> | ||
61 | /// <returns></returns> | ||
62 | void RemoveObject(UUID uuid, UUID regionUUID); | ||
63 | |||
64 | /// <summary> | ||
65 | /// Store a prim's inventory | ||
66 | /// </summary> | ||
67 | /// <returns></returns> | ||
68 | void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items); | ||
69 | |||
70 | /// <summary> | ||
71 | /// Load persisted objects from region storage. | ||
72 | /// </summary> | ||
73 | /// <param name="regionUUID">the Region UUID</param> | ||
74 | /// <returns>List of loaded groups</returns> | ||
75 | List<SceneObjectGroup> LoadObjects(UUID regionUUID); | ||
76 | |||
77 | /// <summary> | ||
78 | /// Store a terrain revision in region storage | ||
79 | /// </summary> | ||
80 | /// <param name="ter">HeightField data</param> | ||
81 | /// <param name="regionID">region UUID</param> | ||
82 | void StoreTerrain(TerrainData terrain, UUID regionID); | ||
83 | |||
84 | // Legacy version kept for downward compabibility | ||
85 | void StoreTerrain(double[,] terrain, UUID regionID); | ||
86 | |||
87 | /// <summary> | ||
88 | /// Load the latest terrain revision from region storage | ||
89 | /// </summary> | ||
90 | /// <param name="regionID">the region UUID</param> | ||
91 | /// <param name="pSizeX">the X dimension of the terrain being filled</param> | ||
92 | /// <param name="pSizeY">the Y dimension of the terrain being filled</param> | ||
93 | /// <param name="pSizeZ">the Z dimension of the terrain being filled</param> | ||
94 | /// <returns>Heightfield data</returns> | ||
95 | TerrainData LoadTerrain(UUID regionID, int pSizeX, int pSizeY, int pSizeZ); | ||
96 | |||
97 | // Legacy version kept for downward compabibility | ||
98 | double[,] LoadTerrain(UUID regionID); | ||
99 | |||
100 | void StoreLandObject(ILandObject Parcel); | ||
101 | |||
102 | /// <summary> | ||
103 | /// <list type="bullet"> | ||
104 | /// <item>delete from land where UUID=globalID</item> | ||
105 | /// <item>delete from landaccesslist where LandUUID=globalID</item> | ||
106 | /// </list> | ||
107 | /// </summary> | ||
108 | /// <param name="globalID"></param> | ||
109 | void RemoveLandObject(UUID globalID); | ||
110 | |||
111 | List<LandData> LoadLandObjects(UUID regionUUID); | ||
112 | |||
113 | void StoreRegionSettings(RegionSettings rs); | ||
114 | RegionSettings LoadRegionSettings(UUID regionUUID); | ||
115 | RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); | ||
116 | void StoreRegionWindlightSettings(RegionLightShareData wl); | ||
117 | void RemoveRegionWindlightSettings(UUID regionID); | ||
118 | |||
119 | /// <summary> | ||
120 | /// Load Environment settings from region storage | ||
121 | /// </summary> | ||
122 | /// <param name="regionUUID">the region UUID</param> | ||
123 | /// <returns>LLSD string for viewer</returns> | ||
124 | string LoadRegionEnvironmentSettings(UUID regionUUID); | ||
125 | |||
126 | /// <summary> | ||
127 | /// Store Environment settings into region storage | ||
128 | /// </summary> | ||
129 | /// <param name="regionUUID">the region UUID</param> | ||
130 | /// <param name="settings">LLSD string from viewer</param> | ||
131 | void StoreRegionEnvironmentSettings(UUID regionUUID, string settings); | ||
132 | |||
133 | /// <summary> | ||
134 | /// Delete Environment settings from region storage | ||
135 | /// </summary> | ||
136 | /// <param name="regionUUID">the region UUID</param> | ||
137 | void RemoveRegionEnvironmentSettings(UUID regionUUID); | ||
138 | |||
139 | void SaveExtra(UUID regionID, string name, string val); | ||
140 | |||
141 | void RemoveExtra(UUID regionID, string name); | ||
142 | |||
143 | Dictionary<string, string> GetExtra(UUID regionID); | ||
144 | |||
145 | void Shutdown(); | ||
146 | } | ||
147 | |||
148 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs b/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs new file mode 100644 index 0000000..6effcc1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISimulatorFeaturesModule.cs | |||
@@ -0,0 +1,47 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | using OpenMetaverse.StructuredData; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public delegate void SimulatorFeaturesRequestDelegate(UUID agentID, ref OSDMap features); | ||
35 | |||
36 | /// <summary> | ||
37 | /// Add remove or retrieve Simulator Features that will be given to a viewer via the SimulatorFeatures capability. | ||
38 | /// </summary> | ||
39 | public interface ISimulatorFeaturesModule | ||
40 | { | ||
41 | event SimulatorFeaturesRequestDelegate OnSimulatorFeaturesRequest; | ||
42 | void AddFeature(string name, OSD value); | ||
43 | bool RemoveFeature(string name); | ||
44 | bool TryGetFeature(string name, out OSD value); | ||
45 | OSDMap GetFeatures(); | ||
46 | } | ||
47 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs new file mode 100644 index 0000000..8372ddd --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs | |||
@@ -0,0 +1,133 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface ISoundModule | ||
34 | { | ||
35 | /// <summary> | ||
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> | ||
68 | void TriggerSound( | ||
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="radius">Sound radius</param> | ||
108 | /// <param name="useMaster">Play using sound master</param> | ||
109 | /// <param name="isMaster">Play as sound master</param> | ||
110 | void SendSound(UUID objectID, UUID sound, double volume, | ||
111 | bool triggered, byte flags, float radius, bool useMaster, | ||
112 | bool isMaster); | ||
113 | |||
114 | /// <summary> | ||
115 | /// Trigger a sound to be played to all agents within an axis-aligned | ||
116 | /// bounding box. | ||
117 | /// </summary> | ||
118 | /// <param name="objectID">Sound source ID</param> | ||
119 | /// <param name="sound">Sound asset ID</param> | ||
120 | /// <param name="volume">Sound volume</param> | ||
121 | /// <param name="min">AABB bottom south-west corner</param> | ||
122 | /// <param name="max">AABB top north-east corner</param> | ||
123 | void TriggerSoundLimited(UUID objectID, UUID sound, double volume, | ||
124 | Vector3 min, Vector3 max); | ||
125 | |||
126 | /// <summary> | ||
127 | /// Set whether sounds on the given prim should be queued. | ||
128 | /// </summary> | ||
129 | /// <param name='objectID'></param> | ||
130 | /// <param name='shouldQueue'></param> | ||
131 | void SetSoundQueueing(UUID objectID, bool shouldQueue); | ||
132 | } | ||
133 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ISunModule.cs b/OpenSim/Region/Framework/Interfaces/ISunModule.cs new file mode 100644 index 0000000..8231716 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ISunModule.cs | |||
@@ -0,0 +1,40 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface ISunModule : INonSharedRegionModule | ||
33 | { | ||
34 | double GetSunParameter(string param); | ||
35 | |||
36 | void SetSunParameter(string param, double value); | ||
37 | |||
38 | float GetCurrentSunHour(); | ||
39 | } | ||
40 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrain.cs b/OpenSim/Region/Framework/Interfaces/ITerrain.cs new file mode 100644 index 0000000..815a2d8 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ITerrain.cs | |||
@@ -0,0 +1,81 @@ | |||
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 OpenSim.Framework; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface ITerrain | ||
34 | { | ||
35 | bool Tainted(); | ||
36 | bool Tainted(int x, int y); | ||
37 | void ResetTaint(); | ||
38 | |||
39 | void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, | ||
40 | IClientAPI remoteUser); | ||
41 | |||
42 | void CheckHeightValues(); | ||
43 | float[] GetHeights1D(); | ||
44 | float[,] GetHeights2D(); | ||
45 | double[,] GetHeights2DD(); | ||
46 | void GetHeights1D(float[] heights); | ||
47 | void SetHeights2D(float[,] heights); | ||
48 | void SetHeights2D(double[,] heights); | ||
49 | void SwapRevertMaps(); | ||
50 | void SaveRevertMap(); | ||
51 | bool RunTerrainCmd(string[] args, ref string resultText, string simName); | ||
52 | void SetRange(float min, float max); | ||
53 | void LoadFromFileF64(string filename); | ||
54 | void LoadFromFileF32(string filename); | ||
55 | void LoadFromFileF32(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY); | ||
56 | void LoadFromFileIMG(string filename, int dimensionX, int dimensionY, int lowerboundX, int lowerboundY); | ||
57 | void LoadFromFileSLRAW(string filename); | ||
58 | void WriteToFileF64(string filename); | ||
59 | void WriteToFileF32(string filename); | ||
60 | void WriteToFileRAW(string filename); | ||
61 | void WriteToFileHiRAW(string filename); | ||
62 | void SetSeed(int val); | ||
63 | void RaiseTerrain(double rx, double ry, double size, double amount); | ||
64 | void LowerTerrain(double rx, double ry, double size, double amount); | ||
65 | void FlattenTerrain(double rx, double ry, double size, double amount); | ||
66 | void NoiseTerrain(double rx, double ry, double size, double amount); | ||
67 | void RevertTerrain(double rx, double ry, double size, double amount); | ||
68 | void SmoothTerrain(double rx, double ry, double size, double amount); | ||
69 | void HillsGenerator(); | ||
70 | double GetHeight(int x, int y); | ||
71 | void ExportImage(string filename, string gradientmap); | ||
72 | byte[] ExportJpegImage(string gradientmap); | ||
73 | } | ||
74 | |||
75 | public interface IMapImageGenerator | ||
76 | { | ||
77 | System.Drawing.Bitmap CreateMapTile(); | ||
78 | System.Drawing.Bitmap CreateViewImage(Vector3 camPos, Vector3 camDir, float fov, int width, int height, bool useTextures); | ||
79 | byte[] WriteJpeg2000Image(); | ||
80 | } | ||
81 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs new file mode 100644 index 0000000..f660b8d --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ITerrainChannel.cs | |||
@@ -0,0 +1,63 @@ | |||
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 OpenSim.Framework; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface ITerrainChannel | ||
34 | { | ||
35 | int Width { get;} // X dimension | ||
36 | int Height { get;} // Y dimension | ||
37 | int Altitude { get;} // Z dimension | ||
38 | |||
39 | double this[int x, int y] { get; set; } | ||
40 | |||
41 | float GetHeightAtXYZ(float x, float y, float z); | ||
42 | |||
43 | // Return the packaged terrain data for passing into lower levels of communication | ||
44 | TerrainData GetTerrainData(); | ||
45 | |||
46 | /// <summary> | ||
47 | /// Squash the entire heightmap into a single dimensioned array | ||
48 | /// </summary> | ||
49 | /// <returns></returns> | ||
50 | float[] GetFloatsSerialised(); | ||
51 | |||
52 | double[,] GetDoubles(); | ||
53 | |||
54 | // Check if a location has been updated. Clears the taint flag as a side effect. | ||
55 | bool Tainted(int x, int y); | ||
56 | |||
57 | ITerrainChannel MakeCopy(); | ||
58 | string SaveToXmlString(); | ||
59 | void LoadFromXmlString(string data); | ||
60 | // Merge some terrain into this channel | ||
61 | void Merge(ITerrainChannel newTerrain, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement); | ||
62 | } | ||
63 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs b/OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs new file mode 100644 index 0000000..890afb3 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ITerrainEffect.cs | |||
@@ -0,0 +1,34 @@ | |||
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 | namespace OpenSim.Region.Framework.Interfaces | ||
29 | { | ||
30 | public interface ITerrainEffect | ||
31 | { | ||
32 | void RunEffect(ITerrainChannel map); | ||
33 | } | ||
34 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs new file mode 100644 index 0000000..28f797a --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs | |||
@@ -0,0 +1,76 @@ | |||
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 | using System.IO; | ||
28 | |||
29 | using OpenSim.Framework; | ||
30 | |||
31 | using OpenMetaverse; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface ITerrainModule | ||
36 | { | ||
37 | void LoadFromFile(string filename); | ||
38 | void SaveToFile(string filename); | ||
39 | void ModifyTerrain(UUID user, Vector3 pos, byte size, byte action, UUID agentId); | ||
40 | |||
41 | /// <summary> | ||
42 | /// Taint the terrain. This will lead to sending the terrain data to the clients again. | ||
43 | /// Use this if you change terrain data outside of the terrain module (e.g. in osTerrainSetHeight) | ||
44 | /// </summary> | ||
45 | void TaintTerrain(); | ||
46 | |||
47 | /// <summary> | ||
48 | /// When a client initially connects, all the terrain must be pushed to the viewer. | ||
49 | /// This call causes all the terrain patches to be sent to the client. | ||
50 | /// </summary> | ||
51 | void PushTerrain(IClientAPI pClient); | ||
52 | |||
53 | /// <summary> | ||
54 | /// Load a terrain from a stream. | ||
55 | /// </summary> | ||
56 | /// <param name="filename"> | ||
57 | /// Only required here to identify the image type. Not otherwise used in the loading itself. | ||
58 | /// </param> | ||
59 | /// <param name="stream"></param> | ||
60 | void LoadFromStream(string filename, Stream stream); | ||
61 | void LoadFromStream(string filename, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement, Stream stream); | ||
62 | void LoadFromStream(string filename, System.Uri pathToTerrainHeightmap); | ||
63 | /// <summary> | ||
64 | /// Save a terrain to a stream. | ||
65 | /// </summary> | ||
66 | /// <param name="filename"> | ||
67 | /// Only required here to identify the image type. Not otherwise used in the saving itself. | ||
68 | /// </param> | ||
69 | /// <param name="stream"></param> | ||
70 | void SaveToStream(string filename, Stream stream); | ||
71 | |||
72 | void InstallPlugin(string name, ITerrainEffect plug); | ||
73 | |||
74 | void UndoTerrain(ITerrainChannel channel); | ||
75 | } | ||
76 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IUrlModule.cs b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs new file mode 100644 index 0000000..79e9f9d --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IUrlModule.cs | |||
@@ -0,0 +1,50 @@ | |||
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.Collections.Generic; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Framework.Scenes; | ||
32 | |||
33 | namespace OpenSim.Region.Framework.Interfaces | ||
34 | { | ||
35 | public interface IUrlModule | ||
36 | { | ||
37 | string ExternalHostNameForLSL { get; } | ||
38 | UUID RequestURL(IScriptModule engine, SceneObjectPart host, UUID itemID); | ||
39 | UUID RequestSecureURL(IScriptModule engine, SceneObjectPart host, UUID itemID); | ||
40 | void ReleaseURL(string url); | ||
41 | void HttpResponse(UUID request, int status, string body); | ||
42 | void HttpContentType(UUID request, string type); | ||
43 | |||
44 | string GetHttpHeader(UUID request, string header); | ||
45 | int GetFreeUrls(); | ||
46 | |||
47 | void ScriptRemoved(UUID itemID); | ||
48 | void ObjectRemoved(UUID objectID); | ||
49 | } | ||
50 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs new file mode 100644 index 0000000..403d542 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs | |||
@@ -0,0 +1,49 @@ | |||
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 OpenMetaverse; | ||
29 | using OpenSim.Region.Framework.Scenes; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IVegetationModule : IEntityCreator | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Add a new tree to the scene. Used by other modules. | ||
37 | /// </summary> | ||
38 | /// <param name="uuid"></param> | ||
39 | /// <param name="groupID"></param> | ||
40 | /// <param name="scale"></param> | ||
41 | /// <param name="rotation"></param> | ||
42 | /// <param name="position"></param> | ||
43 | /// <param name="treeType"></param> | ||
44 | /// <param name="newTree"></param> | ||
45 | /// <returns></returns> | ||
46 | SceneObjectGroup AddTree( | ||
47 | UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree); | ||
48 | } | ||
49 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs new file mode 100644 index 0000000..2e555fa --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs | |||
@@ -0,0 +1,45 @@ | |||
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 | |||
29 | using System.IO; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public interface IVoiceModule | ||
35 | { | ||
36 | |||
37 | /// <summary> | ||
38 | /// Set the SIP url to be used by a parcel, this will allow manual setting of a SIP address | ||
39 | /// for a particular piece of land, allowing region owners to use preconfigured SIP conference channels. | ||
40 | /// This is used by osSetParcelSIPAddress | ||
41 | /// </summary> | ||
42 | void setLandSIPAddress(string SIPAddress,UUID GlobalID); | ||
43 | |||
44 | } | ||
45 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs new file mode 100644 index 0000000..16b6024 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IWindModelPlugin.cs | |||
@@ -0,0 +1,86 @@ | |||
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; | ||
29 | using System.Collections.Generic; | ||
30 | |||
31 | using Nini.Config; | ||
32 | using OpenSim.Framework; | ||
33 | using OpenMetaverse; | ||
34 | using OpenSim.Region.Framework.Scenes; | ||
35 | |||
36 | using Mono.Addins; | ||
37 | |||
38 | namespace OpenSim.Region.Framework.Interfaces | ||
39 | { | ||
40 | [TypeExtensionPoint(Path = "/OpenSim/WindModule", NodeName = "WindModel")] | ||
41 | public interface IWindModelPlugin : IPlugin | ||
42 | { | ||
43 | /// <summary> | ||
44 | /// Brief description of this plugin's wind model | ||
45 | /// </summary> | ||
46 | string Description { get; } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Provides access to the wind configuration, if any. | ||
50 | /// </summary> | ||
51 | void WindConfig(Scene scene, IConfig windConfig); | ||
52 | |||
53 | /// <summary> | ||
54 | /// Update wind. | ||
55 | /// </summary> | ||
56 | void WindUpdate(uint frame); | ||
57 | |||
58 | /// <summary> | ||
59 | /// Returns the wind vector at the given local region coordinates. | ||
60 | /// </summary> | ||
61 | Vector3 WindSpeed(float x, float y, float z); | ||
62 | |||
63 | /// <summary> | ||
64 | /// Generate a 16 x 16 Vector2 array of wind speeds for LL* based viewers | ||
65 | /// </summary> | ||
66 | /// <returns>Must return a Vector2[256]</returns> | ||
67 | Vector2[] WindLLClientArray(); | ||
68 | |||
69 | /// <summary> | ||
70 | /// Retrieve a list of parameter/description pairs. | ||
71 | /// </summary> | ||
72 | /// <returns></returns> | ||
73 | Dictionary<string, string> WindParams(); | ||
74 | |||
75 | /// <summary> | ||
76 | /// Set the specified parameter | ||
77 | /// </summary> | ||
78 | void WindParamSet(string param, float value); | ||
79 | |||
80 | /// <summary> | ||
81 | /// Get the specified parameter | ||
82 | /// </summary> | ||
83 | float WindParamGet(string param); | ||
84 | |||
85 | } | ||
86 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IWindModule.cs b/OpenSim/Region/Framework/Interfaces/IWindModule.cs new file mode 100644 index 0000000..4a26a71 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IWindModule.cs | |||
@@ -0,0 +1,55 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface IWindModule : INonSharedRegionModule | ||
33 | { | ||
34 | |||
35 | /// <summary> | ||
36 | /// Retrieves the current wind speed at the given Region Coordinates | ||
37 | /// </summary> | ||
38 | Vector3 WindSpeed(int x, int y, int z); | ||
39 | |||
40 | /// <summary> | ||
41 | /// Set Wind Plugin Parameter | ||
42 | /// </summary> | ||
43 | void WindParamSet(string plugin, string param, float value); | ||
44 | |||
45 | /// <summary> | ||
46 | /// Get Wind Plugin Parameter | ||
47 | /// </summary> | ||
48 | float WindParamGet(string plugin, string param); | ||
49 | |||
50 | /// <summary> | ||
51 | /// Current active wind model plugin or String.Empty | ||
52 | /// </summary> | ||
53 | string WindActiveModelPluginName { get; } | ||
54 | } | ||
55 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldComm.cs b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs new file mode 100644 index 0000000..d76a0d7 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IWorldComm.cs | |||
@@ -0,0 +1,151 @@ | |||
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; | ||
29 | using OpenMetaverse; | ||
30 | using OpenSim.Framework; | ||
31 | |||
32 | namespace OpenSim.Region.Framework.Interfaces | ||
33 | { | ||
34 | public interface IWorldCommListenerInfo | ||
35 | { | ||
36 | Object[] GetSerializationData(); | ||
37 | UUID GetItemID(); | ||
38 | UUID GetHostID(); | ||
39 | int GetChannel(); | ||
40 | uint GetLocalID(); | ||
41 | int GetHandle(); | ||
42 | string GetMessage(); | ||
43 | string GetName(); | ||
44 | bool IsActive(); | ||
45 | void Deactivate(); | ||
46 | void Activate(); | ||
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; } | ||
55 | } | ||
56 | |||
57 | public interface IWorldComm | ||
58 | { | ||
59 | /// <summary> | ||
60 | /// Total number of listeners | ||
61 | /// </summary> | ||
62 | int ListenerCount { get; } | ||
63 | |||
64 | /// <summary> | ||
65 | /// Create a listen event callback with the specified filters. | ||
66 | /// The parameters localID,itemID are needed to uniquely identify | ||
67 | /// the script during 'peek' time. Parameter hostID is needed to | ||
68 | /// determine the position of the script. | ||
69 | /// </summary> | ||
70 | /// <param name="LocalID">localID of the script engine</param> | ||
71 | /// <param name="itemID">UUID of the script engine</param> | ||
72 | /// <param name="hostID">UUID of the SceneObjectPart</param> | ||
73 | /// <param name="channel">channel to listen on</param> | ||
74 | /// <param name="name">name to filter on</param> | ||
75 | /// <param name="id">key to filter on (user given, could be totally faked)</param> | ||
76 | /// <param name="msg">msg to filter on</param> | ||
77 | /// <returns>number of the scripts handle</returns> | ||
78 | int Listen(uint LocalID, UUID itemID, UUID hostID, int channel, string name, UUID id, string msg); | ||
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 | |||
97 | /// <summary> | ||
98 | /// This method scans over the objects which registered an interest in listen callbacks. | ||
99 | /// For everyone it finds, it checks if it fits the given filter. If it does, then | ||
100 | /// enqueue the message for delivery to the objects listen event handler. | ||
101 | /// The enqueued ListenerInfo no longer has filter values, but the actually trigged values. | ||
102 | /// Objects that do an llSay have their messages delivered here and for nearby avatars, | ||
103 | /// the OnChatFromClient event is used. | ||
104 | /// </summary> | ||
105 | /// <param name="type">type of delvery (whisper,say,shout or regionwide)</param> | ||
106 | /// <param name="channel">channel to sent on</param> | ||
107 | /// <param name="name">name of sender (object or avatar)</param> | ||
108 | /// <param name="id">key of sender (object or avatar)</param> | ||
109 | /// <param name="msg">msg to sent</param> | ||
110 | void DeliverMessage(ChatTypeEnum type, int channel, string name, UUID id, string msg); | ||
111 | |||
112 | /// <summary> | ||
113 | /// Delivers the message to a specified object in the region. | ||
114 | /// </summary> | ||
115 | /// <param name='target'> | ||
116 | /// Target. | ||
117 | /// </param> | ||
118 | /// <param name='channel'> | ||
119 | /// Channel. | ||
120 | /// </param> | ||
121 | /// <param name='name'> | ||
122 | /// Name. | ||
123 | /// </param> | ||
124 | /// <param name='id'> | ||
125 | /// Identifier. | ||
126 | /// </param> | ||
127 | /// <param name='msg'> | ||
128 | /// Message. | ||
129 | /// </param> | ||
130 | void DeliverMessageTo(UUID target, int channel, Vector3 pos, string name, UUID id, string msg); | ||
131 | |||
132 | /// <summary> | ||
133 | /// Are there any listen events ready to be dispatched? | ||
134 | /// </summary> | ||
135 | /// <returns>boolean indication</returns> | ||
136 | bool HasMessages(); | ||
137 | |||
138 | /// <summary> | ||
139 | /// Pop the first availlable listen event from the queue | ||
140 | /// </summary> | ||
141 | /// <returns>ListenerInfo with filter filled in</returns> | ||
142 | IWorldCommListenerInfo GetNextMessage(); | ||
143 | |||
144 | void ListenControl(UUID itemID, int handle, int active); | ||
145 | void ListenRemove(UUID itemID, int handle); | ||
146 | void DeleteListener(UUID itemID); | ||
147 | Object[] GetSerializationData(UUID itemID); | ||
148 | void CreateFromData(uint localID, UUID itemID, UUID hostID, | ||
149 | Object[] data); | ||
150 | } | ||
151 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs new file mode 100644 index 0000000..9c781e1 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs | |||
@@ -0,0 +1,42 @@ | |||
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 | using System.Collections.Generic; | ||
28 | using OpenSim.Framework; | ||
29 | using OpenSim.Services.Interfaces; | ||
30 | |||
31 | namespace OpenSim.Region.Framework.Interfaces | ||
32 | { | ||
33 | public interface IWorldMapModule | ||
34 | { | ||
35 | /// <summary> | ||
36 | /// Generate a map tile for the scene. a terrain texture for this scene | ||
37 | /// </summary> | ||
38 | void GenerateMaptile(); | ||
39 | List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag); | ||
40 | MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag); | ||
41 | } | ||
42 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs b/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs new file mode 100644 index 0000000..d53bbd3 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IXMLRPC.cs | |||
@@ -0,0 +1,64 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface IXmlRpcRequestInfo | ||
33 | { | ||
34 | bool IsProcessed(); | ||
35 | UUID GetChannelKey(); | ||
36 | void SetProcessed(bool processed); | ||
37 | void SetStrRetval(string resp); | ||
38 | string GetStrRetval(); | ||
39 | void SetIntRetval(int resp); | ||
40 | int GetIntRetval(); | ||
41 | uint GetLocalID(); | ||
42 | UUID GetItemID(); | ||
43 | string GetStrVal(); | ||
44 | int GetIntValue(); | ||
45 | UUID GetMessageID(); | ||
46 | } | ||
47 | |||
48 | public interface IXMLRPC | ||
49 | { | ||
50 | UUID OpenXMLRPCChannel(uint localID, UUID itemID, UUID channelID); | ||
51 | void CloseXMLRPCChannel(UUID channelKey); | ||
52 | bool hasRequests(); | ||
53 | void RemoteDataReply(string channel, string message_id, string sdata, int idata); | ||
54 | bool IsEnabled(); | ||
55 | IXmlRpcRequestInfo GetNextCompletedRequest(); | ||
56 | void RemoveCompletedRequest(UUID id); | ||
57 | void DeleteChannels(UUID itemID); | ||
58 | UUID SendRemoteData(uint localID, UUID itemID, string channel, string dest, int idata, string sdata); | ||
59 | IServiceRequest GetNextCompletedSRDRequest(); | ||
60 | void RemoveCompletedSRDRequest(UUID id); | ||
61 | void CancelSRDRequests(UUID itemID); | ||
62 | int Port { get; } | ||
63 | } | ||
64 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IXfer.cs b/OpenSim/Region/Framework/Interfaces/IXfer.cs new file mode 100644 index 0000000..bea3984 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IXfer.cs | |||
@@ -0,0 +1,34 @@ | |||
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 | namespace OpenSim.Region.Framework.Interfaces | ||
29 | { | ||
30 | public interface IXfer | ||
31 | { | ||
32 | bool AddNewFile(string fileName, byte[] data); | ||
33 | } | ||
34 | } | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs b/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs new file mode 100644 index 0000000..093d3f0 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IXmlRpcRouter.cs | |||
@@ -0,0 +1,39 @@ | |||
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 OpenMetaverse; | ||
29 | |||
30 | namespace OpenSim.Region.Framework.Interfaces | ||
31 | { | ||
32 | public interface IXmlRpcRouter | ||
33 | { | ||
34 | void RegisterNewReceiver(IScriptModule scriptEngine, UUID channelID, UUID objectID, UUID itemID, string url); | ||
35 | void ScriptRemoved(UUID itemID); | ||
36 | void ObjectRemoved(UUID objectID); | ||
37 | void UnRegisterReceiver(string channelID, UUID itemID); | ||
38 | } | ||
39 | } | ||