diff options
author | Diva Canto | 2010-05-09 13:39:56 -0700 |
---|---|---|
committer | Diva Canto | 2010-05-09 13:39:56 -0700 |
commit | b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb (patch) | |
tree | 0f895f8334a1f98f3ed9f273906f989314400ce5 /OpenSim/Region | |
parent | Add Delete handler to SQLite (NG) (diff) | |
download | opensim-SC-b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb.zip opensim-SC-b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb.tar.gz opensim-SC-b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb.tar.bz2 opensim-SC-b233a4b2cab3a39f9edc17130cd7c2f2f807d6bb.tar.xz |
* Fixed spamming the assets table with map tiles. The tile image ID is now stored in regionsettings. Upon generation of a new tile image, the old one is deleted. Tested for SQLite and MySql standalone.
* Fixed small bug with map search where the local sim regions weren't found.
Diffstat (limited to 'OpenSim/Region')
6 files changed, 25 insertions, 22 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 06ffa91..83be61e 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -349,7 +349,7 @@ namespace OpenSim | |||
349 | 349 | ||
350 | // moved these here as the terrain texture has to be created after the modules are initialized | 350 | // moved these here as the terrain texture has to be created after the modules are initialized |
351 | // and has to happen before the region is registered with the grid. | 351 | // and has to happen before the region is registered with the grid. |
352 | scene.CreateTerrainTexture(false); | 352 | scene.CreateTerrainTexture(); |
353 | 353 | ||
354 | // TODO : Try setting resource for region xstats here on scene | 354 | // TODO : Try setting resource for region xstats here on scene |
355 | MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); | 355 | MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs index 53d2cef..f8e3d59 100644 --- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs | |||
@@ -121,6 +121,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps | |||
121 | UUID textureID; | 121 | UUID textureID; |
122 | if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out textureID)) | 122 | if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out textureID)) |
123 | { | 123 | { |
124 | //m_log.DebugFormat("[GETTEXTURE]: {0}", textureID); | ||
124 | AssetBase texture; | 125 | AssetBase texture; |
125 | 126 | ||
126 | if (!String.IsNullOrEmpty(REDIRECT_URL)) | 127 | if (!String.IsNullOrEmpty(REDIRECT_URL)) |
@@ -167,6 +168,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps | |||
167 | private void SendTexture(OSHttpRequest request, OSHttpResponse response, AssetBase texture) | 168 | private void SendTexture(OSHttpRequest request, OSHttpResponse response, AssetBase texture) |
168 | { | 169 | { |
169 | string range = request.Headers.GetOne("Range"); | 170 | string range = request.Headers.GetOne("Range"); |
171 | //m_log.DebugFormat("[GETTEXTURE]: Range {0}", range); | ||
170 | if (!String.IsNullOrEmpty(range)) | 172 | if (!String.IsNullOrEmpty(range)) |
171 | { | 173 | { |
172 | // Range request | 174 | // Range request |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs index d44ddf4..46741a5 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs | |||
@@ -197,7 +197,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid | |||
197 | if (grinfo != null) | 197 | if (grinfo != null) |
198 | { | 198 | { |
199 | //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Remote GetRegionsByName {0} found {1} regions", name, grinfo.Count); | 199 | //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Remote GetRegionsByName {0} found {1} regions", name, grinfo.Count); |
200 | rinfo.AddRange(grinfo); | 200 | foreach (GridRegion r in grinfo) |
201 | if (rinfo.Find(delegate(GridRegion gr) { return gr.RegionID == r.RegionID; }) == null) | ||
202 | rinfo.Add(r); | ||
201 | } | 203 | } |
202 | 204 | ||
203 | return rinfo; | 205 | return rinfo; |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 2b0e83f..ac6a633 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -1000,7 +1000,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1000 | return responsemap; | 1000 | return responsemap; |
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | public void LazySaveGeneratedMaptile(byte[] data, bool temporary) | 1003 | public void RegenerateMaptile(byte[] data) |
1004 | { | 1004 | { |
1005 | // Overwrites the local Asset cache with new maptile data | 1005 | // Overwrites the local Asset cache with new maptile data |
1006 | // Assets are single write, this causes the asset server to ignore this update, | 1006 | // Assets are single write, this causes the asset server to ignore this update, |
@@ -1010,7 +1010,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1010 | // map tile while protecting the (grid) asset database from bloat caused by a new asset each | 1010 | // map tile while protecting the (grid) asset database from bloat caused by a new asset each |
1011 | // time a mapimage is generated! | 1011 | // time a mapimage is generated! |
1012 | 1012 | ||
1013 | UUID lastMapRegionUUID = m_scene.RegionInfo.lastMapUUID; | 1013 | UUID lastMapRegionUUID = m_scene.RegionInfo.RegionSettings.TerrainImageID; |
1014 | 1014 | ||
1015 | int lastMapRefresh = 0; | 1015 | int lastMapRefresh = 0; |
1016 | int twoDays = 172800; | 1016 | int twoDays = 172800; |
@@ -1030,21 +1030,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1030 | { | 1030 | { |
1031 | } | 1031 | } |
1032 | 1032 | ||
1033 | UUID TerrainImageUUID = UUID.Random(); | 1033 | m_log.Debug("[MAPTILE]: STORING MAPTILE IMAGE"); |
1034 | 1034 | ||
1035 | if (lastMapRegionUUID == UUID.Zero || (lastMapRefresh + RefreshSeconds) < Util.UnixTimeSinceEpoch()) | 1035 | m_scene.RegionInfo.RegionSettings.TerrainImageID = UUID.Random(); |
1036 | { | ||
1037 | m_scene.RegionInfo.SaveLastMapUUID(TerrainImageUUID); | ||
1038 | |||
1039 | m_log.Debug("[MAPTILE]: STORING MAPTILE IMAGE"); | ||
1040 | } | ||
1041 | else | ||
1042 | { | ||
1043 | TerrainImageUUID = lastMapRegionUUID; | ||
1044 | m_log.Debug("[MAPTILE]: REUSING OLD MAPTILE IMAGE ID"); | ||
1045 | } | ||
1046 | |||
1047 | m_scene.RegionInfo.RegionSettings.TerrainImageID = TerrainImageUUID; | ||
1048 | 1036 | ||
1049 | AssetBase asset = new AssetBase( | 1037 | AssetBase asset = new AssetBase( |
1050 | m_scene.RegionInfo.RegionSettings.TerrainImageID, | 1038 | m_scene.RegionInfo.RegionSettings.TerrainImageID, |
@@ -1053,8 +1041,17 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1053 | m_scene.RegionInfo.RegionID.ToString()); | 1041 | m_scene.RegionInfo.RegionID.ToString()); |
1054 | asset.Data = data; | 1042 | asset.Data = data; |
1055 | asset.Description = m_scene.RegionInfo.RegionName; | 1043 | asset.Description = m_scene.RegionInfo.RegionName; |
1056 | asset.Temporary = temporary; | 1044 | asset.Temporary = false; |
1045 | asset.Flags = AssetFlags.Maptile; | ||
1046 | |||
1047 | // Store the new one | ||
1048 | m_log.DebugFormat("[WORLDMAP]: Storing map tile {0}", asset.ID); | ||
1057 | m_scene.AssetService.Store(asset); | 1049 | m_scene.AssetService.Store(asset); |
1050 | m_scene.RegionInfo.RegionSettings.Save(); | ||
1051 | |||
1052 | // Delete the old one | ||
1053 | m_log.DebugFormat("[WORLDMAP]: Deleting old map tile {0}", lastMapRegionUUID); | ||
1054 | m_scene.AssetService.Delete(lastMapRegionUUID.ToString()); | ||
1058 | } | 1055 | } |
1059 | 1056 | ||
1060 | private void MakeRootAgent(ScenePresence avatar) | 1057 | private void MakeRootAgent(ScenePresence avatar) |
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs index de1bcd4..ac6afed 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs | |||
@@ -29,6 +29,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
29 | { | 29 | { |
30 | public interface IWorldMapModule | 30 | public interface IWorldMapModule |
31 | { | 31 | { |
32 | void LazySaveGeneratedMaptile(byte[] data, bool temporary); | 32 | void RegenerateMaptile(byte[] data); |
33 | } | 33 | } |
34 | } | 34 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index c0fa7b4..edbef4c 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1823,7 +1823,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1823 | /// <summary> | 1823 | /// <summary> |
1824 | /// Create a terrain texture for this scene | 1824 | /// Create a terrain texture for this scene |
1825 | /// </summary> | 1825 | /// </summary> |
1826 | public void CreateTerrainTexture(bool temporary) | 1826 | public void CreateTerrainTexture() |
1827 | { | 1827 | { |
1828 | //create a texture asset of the terrain | 1828 | //create a texture asset of the terrain |
1829 | IMapImageGenerator terrain = RequestModuleInterface<IMapImageGenerator>(); | 1829 | IMapImageGenerator terrain = RequestModuleInterface<IMapImageGenerator>(); |
@@ -1841,7 +1841,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1841 | IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>(); | 1841 | IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>(); |
1842 | 1842 | ||
1843 | if (mapModule != null) | 1843 | if (mapModule != null) |
1844 | mapModule.LazySaveGeneratedMaptile(data, temporary); | 1844 | mapModule.RegenerateMaptile(data); |
1845 | else | ||
1846 | m_log.DebugFormat("[SCENE]: MapModule is null, can't save maptile"); | ||
1845 | } | 1847 | } |
1846 | } | 1848 | } |
1847 | 1849 | ||