diff options
author | Justin Clarke Casey | 2008-12-30 19:00:19 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-12-30 19:00:19 +0000 |
commit | f0ea8eb53463fe7e228537779f3f700bc6ecb74d (patch) | |
tree | 33f1a11a0dc4817557fd0578329ee7249c058371 /OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs | |
parent | OpenUser_Main is now public. Fixes Mantis #2940. Thanks SirKimba (diff) | |
download | opensim-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.cs | 33 |
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 | } |