aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-12-30 19:00:19 +0000
committerJustin Clarke Casey2008-12-30 19:00:19 +0000
commitf0ea8eb53463fe7e228537779f3f700bc6ecb74d (patch)
tree33f1a11a0dc4817557fd0578329ee7249c058371 /OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs
parentOpenUser_Main is now public. Fixes Mantis #2940. Thanks SirKimba (diff)
downloadopensim-SC_OLD-f0ea8eb53463fe7e228537779f3f700bc6ecb74d.zip
opensim-SC_OLD-f0ea8eb53463fe7e228537779f3f700bc6ecb74d.tar.gz
opensim-SC_OLD-f0ea8eb53463fe7e228537779f3f700bc6ecb74d.tar.bz2
opensim-SC_OLD-f0ea8eb53463fe7e228537779f3f700bc6ecb74d.tar.xz
* Implement saving of region settings in OAR files
* This means that you can now save terrain textures, water height, etc. * Estate settings are not supported * Older OAR files without these settings can still be loaded
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs33
1 files changed, 26 insertions, 7 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs
index 58e8f55..7c1d015 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -204,9 +204,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
204 204
205 // Get the prim's default texture. This will be used for faces which don't have their own texture 205 // Get the prim's default texture. This will be used for faces which don't have their own texture
206 assetUuids[textureEntry.DefaultTexture.TextureID] = 1; 206 assetUuids[textureEntry.DefaultTexture.TextureID] = 1;
207 207
208 if (part.Shape.SculptTexture != UUID.Zero)
209 assetUuids[part.Shape.SculptTexture] = 1;
210 // XXX: Not a great way to iterate through face textures, but there's no 208 // XXX: Not a great way to iterate through face textures, but there's no
211 // other method available to tell how many faces there actually are 209 // other method available to tell how many faces there actually are
212 //int i = 0; 210 //int i = 0;
@@ -218,7 +216,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
218 assetUuids[texture.TextureID] = 1; 216 assetUuids[texture.TextureID] = 1;
219 } 217 }
220 } 218 }
219
220 // If the prim is a sculpt then preserve this information too
221 if (part.Shape.SculptTexture != UUID.Zero)
222 assetUuids[part.Shape.SculptTexture] = 1;
221 223
224 // Now analyze this prim's inventory items to preserve all the uuids that they reference
222 foreach (TaskInventoryItem tii in part.TaskInventory.Values) 225 foreach (TaskInventoryItem tii in part.TaskInventory.Values)
223 { 226 {
224 //m_log.DebugFormat("[ARCHIVER]: Analysing item asset type {0}", tii.Type); 227 //m_log.DebugFormat("[ARCHIVER]: Analysing item asset type {0}", tii.Type);
@@ -239,10 +242,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
239 { 242 {
240 GetSceneObjectAssetUuids(tii.AssetID, assetUuids); 243 GetSceneObjectAssetUuids(tii.AssetID, assetUuids);
241 } 244 }
242 else 245 //else
243 { 246 //{
244 //m_log.DebugFormat("[ARCHIVER]: Recording asset {0} in object {1}", tii.AssetID, part.UUID); 247 //m_log.DebugFormat("[ARCHIVER]: Recording asset {0} in object {1}", tii.AssetID, part.UUID);
245 } 248 //}
246 } 249 }
247 } 250 }
248 } 251 }
@@ -283,6 +286,21 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
283 m_log.DebugFormat( 286 m_log.DebugFormat(
284 "[ARCHIVER]: {0} scene objects to serialize requiring save of {1} assets", 287 "[ARCHIVER]: {0} scene objects to serialize requiring save of {1} assets",
285 sceneObjects.Count, assetUuids.Count); 288 sceneObjects.Count, assetUuids.Count);
289
290 // Make sure that we also request terrain texture assets
291 RegionSettings regionSettings = m_scene.RegionInfo.RegionSettings;
292
293 if (regionSettings.TerrainTexture1 != RegionSettings.DEFAULT_TERRAIN_TEXTURE_1)
294 assetUuids[regionSettings.TerrainTexture1] = 1;
295
296 if (regionSettings.TerrainTexture2 != RegionSettings.DEFAULT_TERRAIN_TEXTURE_2)
297 assetUuids[regionSettings.TerrainTexture2] = 1;
298
299 if (regionSettings.TerrainTexture3 != RegionSettings.DEFAULT_TERRAIN_TEXTURE_3)
300 assetUuids[regionSettings.TerrainTexture3] = 1;
301
302 if (regionSettings.TerrainTexture4 != RegionSettings.DEFAULT_TERRAIN_TEXTURE_4)
303 assetUuids[regionSettings.TerrainTexture4] = 1;
286 304
287 // Asynchronously request all the assets required to perform this archive operation 305 // Asynchronously request all the assets required to perform this archive operation
288 ArchiveWriteRequestExecution awre 306 ArchiveWriteRequestExecution awre
@@ -290,8 +308,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
290 sceneObjects, 308 sceneObjects,
291 m_scene.RequestModuleInterface<ITerrainModule>(), 309 m_scene.RequestModuleInterface<ITerrainModule>(),
292 m_scene.RequestModuleInterface<IRegionSerialiserModule>(), 310 m_scene.RequestModuleInterface<IRegionSerialiserModule>(),
293 m_scene.RegionInfo.RegionName, 311 m_scene.RegionInfo,
294 m_savePath); 312 m_savePath);
313
295 new AssetsRequest(assetUuids.Keys, m_scene.AssetCache, awre.ReceivedAllAssets).Execute(); 314 new AssetsRequest(assetUuids.Keys, m_scene.AssetCache, awre.ReceivedAllAssets).Execute();
296 } 315 }
297 } 316 }