diff options
Diffstat (limited to 'OpenSim/Region/Framework')
5 files changed, 123 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs new file mode 100644 index 0000000..f158236 --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IGroupsMessagingModule.cs | |||
@@ -0,0 +1,73 @@ | |||
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 | /// Provide mechanisms for messaging groups. | ||
35 | /// </summary> | ||
36 | /// | ||
37 | /// TODO: Provide a mechanism for receiving group messages as well as sending them | ||
38 | /// | ||
39 | public interface IGroupsMessagingModule | ||
40 | { | ||
41 | /// <summary> | ||
42 | /// Start a group chat session. | ||
43 | /// </summary> | ||
44 | /// You must call this before calling SendMessageToGroup(). If a chat session for this group is already taking | ||
45 | /// place then the agent will added to that session. | ||
46 | /// <param name="agentID"> | ||
47 | /// A UUID that represents the agent being added. If you are agentless (e.g. you are | ||
48 | /// a region module), then you can use any random ID. | ||
49 | /// </param> | ||
50 | /// <param name="groupID"> | ||
51 | /// The ID for the group to join. Currently, the session ID used is identical to the | ||
52 | /// group ID. | ||
53 | /// </param> | ||
54 | /// <returns> | ||
55 | /// True if the chat session was started successfully, false otherwise. | ||
56 | /// </returns> | ||
57 | bool StartGroupChatSession(UUID agentID, UUID groupID); | ||
58 | |||
59 | /// <summary> | ||
60 | /// Send a message to an entire group. | ||
61 | /// </summary> | ||
62 | /// <param name="im"> | ||
63 | /// The message itself. The fields that must be populated are | ||
64 | /// | ||
65 | /// imSessionID - Populate this with the group ID (session ID and group ID are currently identical) | ||
66 | /// fromAgentName - Populate this with whatever arbitrary name you want to show up in the chat dialog | ||
67 | /// message - The message itself | ||
68 | /// dialog - This must be (byte)InstantMessageDialog.SessionSend | ||
69 | /// </param> | ||
70 | /// <param name="groupID"></param> | ||
71 | void SendMessageToGroup(GridInstantMessage im, UUID groupID); | ||
72 | } | ||
73 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs index 78bd622..3e8e196 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs | |||
@@ -103,6 +103,8 @@ namespace OpenSim.Region.Framework.Interfaces | |||
103 | 103 | ||
104 | void StoreRegionSettings(RegionSettings rs); | 104 | void StoreRegionSettings(RegionSettings rs); |
105 | RegionSettings LoadRegionSettings(UUID regionUUID); | 105 | RegionSettings LoadRegionSettings(UUID regionUUID); |
106 | RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID); | ||
107 | void StoreRegionWindlightSettings(RegionLightShareData wl); | ||
106 | 108 | ||
107 | void Shutdown(); | 109 | void Shutdown(); |
108 | } | 110 | } |
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index dc9ae19..ef125cd 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -206,7 +206,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
206 | public event OnMakeChildAgentDelegate OnMakeChildAgent; | 206 | public event OnMakeChildAgentDelegate OnMakeChildAgent; |
207 | 207 | ||
208 | public delegate void OnMakeRootAgentDelegate(ScenePresence presence); | 208 | public delegate void OnMakeRootAgentDelegate(ScenePresence presence); |
209 | public delegate void OnSaveNewWindlightProfileDelegate(); | ||
210 | public delegate void OnSendNewWindlightProfileTargetedDelegate(RegionLightShareData wl, UUID user); | ||
209 | public event OnMakeRootAgentDelegate OnMakeRootAgent; | 211 | public event OnMakeRootAgentDelegate OnMakeRootAgent; |
212 | public event OnSendNewWindlightProfileTargetedDelegate OnSendNewWindlightProfileTargeted; | ||
213 | public event OnSaveNewWindlightProfileDelegate OnSaveNewWindlightProfile; | ||
210 | 214 | ||
211 | /// <summary> | 215 | /// <summary> |
212 | /// Triggered when an object or attachment enters a scene | 216 | /// Triggered when an object or attachment enters a scene |
@@ -1216,6 +1220,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
1216 | } | 1220 | } |
1217 | } | 1221 | } |
1218 | 1222 | ||
1223 | public void TriggerOnSendNewWindlightProfileTargeted(RegionLightShareData wl, UUID user) | ||
1224 | { | ||
1225 | OnSendNewWindlightProfileTargetedDelegate handlerSendNewWindlightProfileTargeted = OnSendNewWindlightProfileTargeted; | ||
1226 | if (handlerSendNewWindlightProfileTargeted != null) | ||
1227 | { | ||
1228 | handlerSendNewWindlightProfileTargeted(wl, user); | ||
1229 | } | ||
1230 | } | ||
1231 | |||
1232 | public void TriggerOnSaveNewWindlightProfile() | ||
1233 | { | ||
1234 | OnSaveNewWindlightProfileDelegate handlerSaveNewWindlightProfile = OnSaveNewWindlightProfile; | ||
1235 | if (handlerSaveNewWindlightProfile != null) | ||
1236 | { | ||
1237 | handlerSaveNewWindlightProfile(); | ||
1238 | } | ||
1239 | } | ||
1240 | |||
1219 | public void TriggerOnMakeRootAgent(ScenePresence presence) | 1241 | public void TriggerOnMakeRootAgent(ScenePresence presence) |
1220 | { | 1242 | { |
1221 | OnMakeRootAgentDelegate handlerMakeRootAgent = OnMakeRootAgent; | 1243 | OnMakeRootAgentDelegate handlerMakeRootAgent = OnMakeRootAgent; |
@@ -1992,4 +2014,4 @@ namespace OpenSim.Region.Framework.Scenes | |||
1992 | } | 2014 | } |
1993 | } | 2015 | } |
1994 | } | 2016 | } |
1995 | } \ No newline at end of file | 2017 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 8a583c1..fc915a3 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -635,6 +635,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
635 | 635 | ||
636 | int estateID = estateIDs[0]; | 636 | int estateID = estateIDs[0]; |
637 | 637 | ||
638 | m_regInfo.EstateSettings = m_storageManager.EstateDataStore.LoadEstateSettings(estateID); | ||
639 | |||
638 | if (m_storageManager.EstateDataStore.LinkRegion(m_regInfo.RegionID, estateID)) | 640 | if (m_storageManager.EstateDataStore.LinkRegion(m_regInfo.RegionID, estateID)) |
639 | break; | 641 | break; |
640 | 642 | ||
@@ -1713,6 +1715,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
1713 | m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); | 1715 | m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID); |
1714 | } | 1716 | } |
1715 | 1717 | ||
1718 | public void StoreWindlightProfile(RegionLightShareData wl) | ||
1719 | { | ||
1720 | m_regInfo.WindlightSettings = wl; | ||
1721 | m_storageManager.DataStore.StoreRegionWindlightSettings(wl); | ||
1722 | m_eventManager.TriggerOnSaveNewWindlightProfile(); | ||
1723 | } | ||
1724 | |||
1725 | public void LoadWindlightProfile() | ||
1726 | { | ||
1727 | m_regInfo.WindlightSettings = m_storageManager.DataStore.LoadRegionWindlightSettings(RegionInfo.RegionID); | ||
1728 | m_eventManager.TriggerOnSaveNewWindlightProfile(); | ||
1729 | } | ||
1730 | |||
1716 | /// <summary> | 1731 | /// <summary> |
1717 | /// Loads the World heightmap | 1732 | /// Loads the World heightmap |
1718 | /// </summary> | 1733 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs index c77220c..8b2d387 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs | |||
@@ -101,7 +101,16 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
101 | { | 101 | { |
102 | throw new NotImplementedException(); | 102 | throw new NotImplementedException(); |
103 | } | 103 | } |
104 | 104 | public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) | |
105 | { | ||
106 | //This connector doesn't support the windlight module yet | ||
107 | //Return default LL windlight settings | ||
108 | return new RegionLightShareData(); | ||
109 | } | ||
110 | public void StoreRegionWindlightSettings(RegionLightShareData wl) | ||
111 | { | ||
112 | //This connector doesn't support the windlight module yet | ||
113 | } | ||
105 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 114 | public RegionSettings LoadRegionSettings(UUID regionUUID) |
106 | { | 115 | { |
107 | return null; | 116 | return null; |