aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs4
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiverModule.cs70
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/IRegionArchiver.cs51
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs27
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneManager.cs8
5 files changed, 150 insertions, 10 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
index a72010c..825fb8f 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs
@@ -815,8 +815,8 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat
815 815
816 public void eventIrcMode(string[] commArgs) 816 public void eventIrcMode(string[] commArgs)
817 { 817 {
818 string IrcChannel = commArgs[2]; 818 //string IrcChannel = commArgs[2];
819 string IrcUser = commArgs[0].Split('!')[0]; 819 //string IrcUser = commArgs[0].Split('!')[0];
820 string UserMode = ""; 820 string UserMode = "";
821 for (int i = 3; i < commArgs.Length; i++) 821 for (int i = 3; i < commArgs.Length; i++)
822 { 822 {
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiverModule.cs
new file mode 100644
index 0000000..cba04c4
--- /dev/null
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiverModule.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 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
28using OpenSim.Region.Environment.Interfaces;
29using OpenSim.Region.Environment.Scenes;
30using System.Reflection;
31using log4net;
32using Nini.Config;
33
34namespace OpenSim.Region.Environment.Modules.World.Archiver
35{
36 /// <summary>
37 /// This module loads and saves OpenSimulator archives
38 /// </summary>
39 public class ArchiverModule : IRegionModule, IRegionArchiver
40 {
41 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
42
43 public string Name { get { return "ArchiverModule"; } }
44
45 public bool IsSharedModule { get { return true; } }
46
47 public void Initialise(Scene scene, IConfigSource source)
48 {
49 scene.RegisterModuleInterface<IRegionArchiver>(this);
50 }
51
52 public void PostInitialise()
53 {
54 }
55
56 public void Close()
57 {
58 }
59
60 public void ArchiveRegion(Scene scene, string savePath)
61 {
62 m_log.Warn("[ARCHIVER]: Archive region not yet implemented");
63 }
64
65 public void DearchiveRegion(Scene scene, string loadPath)
66 {
67 m_log.Warn("[ARCHIVER]: Dearchive region not yet implemented");
68 }
69 }
70} \ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/IRegionArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/IRegionArchiver.cs
new file mode 100644
index 0000000..1cebb50
--- /dev/null
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/IRegionArchiver.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 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
28using OpenSim.Region.Environment.Scenes;
29
30namespace OpenSim.Region.Environment.Modules.World.Archiver
31{
32 /// <summary>
33 /// Interface to region archive functionality
34 /// </summary>
35 public interface IRegionArchiver
36 {
37 /// <summary>
38 /// Archive a region to the given path
39 /// </summary>
40 /// <param name="scene"></param>
41 /// <param name="savePath"></param>
42 void ArchiveRegion(Scene scene, string savePath);
43
44 /// <summary>
45 /// Dearchive the given region archive into the scene
46 /// </summary>
47 /// <param name="scene"></param>
48 /// <param name="loadPath"></param>
49 void DearchiveRegion(Scene scene, string loadPath);
50 }
51}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 8c95a0d..3ede889 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -40,6 +40,7 @@ using OpenSim.Framework.Communications;
40using OpenSim.Framework.Communications.Cache; 40using OpenSim.Framework.Communications.Cache;
41using OpenSim.Framework.Servers; 41using OpenSim.Framework.Servers;
42using OpenSim.Region.Environment.Interfaces; 42using OpenSim.Region.Environment.Interfaces;
43using OpenSim.Region.Environment.Modules.World.Archiver;
43using OpenSim.Region.Environment.Modules.World.Terrain; 44using OpenSim.Region.Environment.Modules.World.Terrain;
44using OpenSim.Region.Environment.Scenes.Scripting; 45using OpenSim.Region.Environment.Scenes.Scripting;
45using OpenSim.Region.Physics.Manager; 46using OpenSim.Region.Physics.Manager;
@@ -58,7 +59,6 @@ namespace OpenSim.Region.Environment.Scenes
58 public SynchronizeSceneHandler SynchronizeScene = null; 59 public SynchronizeSceneHandler SynchronizeScene = null;
59 public int splitID = 0; 60 public int splitID = 0;
60 61
61
62 #region Fields 62 #region Fields
63 63
64 protected Timer m_heartbeatTimer = new Timer(); 64 protected Timer m_heartbeatTimer = new Timer();
@@ -138,7 +138,6 @@ namespace OpenSim.Region.Environment.Scenes
138 private int m_update_terrain = 50; 138 private int m_update_terrain = 50;
139 private int m_update_land = 1; 139 private int m_update_land = 1;
140 140
141
142 private int frameMS = 0; 141 private int frameMS = 0;
143 private int physicsMS2 = 0; 142 private int physicsMS2 = 0;
144 private int physicsMS = 0; 143 private int physicsMS = 0;
@@ -631,7 +630,7 @@ namespace OpenSim.Region.Environment.Scenes
631 } 630 }
632 631
633 /// <summary> 632 /// <summary>
634 /// Sets up references to loaded modules required by thie scene 633 /// Sets up references to modules required by the scene
635 /// </summary> 634 /// </summary>
636 public void SetModuleInterfaces() 635 public void SetModuleInterfaces()
637 { 636 {
@@ -1043,7 +1042,7 @@ namespace OpenSim.Region.Environment.Scenes
1043 //} 1042 //}
1044 //else 1043 //else
1045 //{ 1044 //{
1046 float tmpval = (float)hm[x, y]; 1045 //float tmpval = (float)hm[x, y];
1047 float heightvalue = (float)hm[x, y]; 1046 float heightvalue = (float)hm[x, y];
1048 1047
1049 if ((float)heightvalue > m_regInfo.EstateSettings.waterHeight) 1048 if ((float)heightvalue > m_regInfo.EstateSettings.waterHeight)
@@ -1380,6 +1379,26 @@ namespace OpenSim.Region.Environment.Scenes
1380 { 1379 {
1381 m_sceneXmlLoader.SavePrimsToXml2(fileName); 1380 m_sceneXmlLoader.SavePrimsToXml2(fileName);
1382 } 1381 }
1382
1383 /// <summary>
1384 /// Load a prim archive into the scene. This loads both prims and their assets.
1385 /// </summary>
1386 /// <param name="filePath"></param>
1387 public void LoadPrimsFromArchive(string filePath)
1388 {
1389 IRegionArchiver archiver = RequestModuleInterface<IRegionArchiver>();
1390 archiver.DearchiveRegion(this, filePath);
1391 }
1392
1393 /// <summary>
1394 /// Save the prims in the scene to an archive. This saves both prims and their assets.
1395 /// </summary>
1396 /// <param name="filePath"></param>
1397 public void SavePrimsToArchive(string filePath)
1398 {
1399 IRegionArchiver archiver = RequestModuleInterface<IRegionArchiver>();
1400 archiver.ArchiveRegion(this, filePath);
1401 }
1383 1402
1384 /// <summary> 1403 /// <summary>
1385 /// Locate New region Handle and offset the prim position for the new region 1404 /// Locate New region Handle and offset the prim position for the new region
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs
index 68dfa2f..2baef9d 100644
--- a/OpenSim/Region/Environment/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs
@@ -199,9 +199,9 @@ namespace OpenSim.Region.Environment.Scenes
199 /// as well as the details of the prims themselves. 199 /// as well as the details of the prims themselves.
200 /// </summary> 200 /// </summary>
201 /// <param name="filename"></param> 201 /// <param name="filename"></param>
202 public void SaveCurrentSceneToOar(string filename) 202 public void SaveCurrentSceneToArchive(string filename)
203 { 203 {
204 // TODO Nothing yet 204 CurrentOrFirstScene.LoadPrimsFromArchive(filename);
205 } 205 }
206 206
207 /// <summary> 207 /// <summary>
@@ -209,9 +209,9 @@ namespace OpenSim.Region.Environment.Scenes
209 /// their assets to the asset service. 209 /// their assets to the asset service.
210 /// </summary> 210 /// </summary>
211 /// <param name="filename"></param> 211 /// <param name="filename"></param>
212 public void LoadCurrentSceneFromOar(string filename) 212 public void LoadCurrentSceneFromArchive(string filename)
213 { 213 {
214 // TODO Nothing yet 214 CurrentOrFirstScene.SavePrimsToArchive(filename);
215 } 215 }
216 216
217 [Obsolete("TODO: Remove this warning by 0.7")] 217 [Obsolete("TODO: Remove this warning by 0.7")]