Moved the m_sceneGridService.RegisterRegion(RegionInfo); call out of LoadWorldMap and into its own public method (which is called during region creation). We shouldn't have things like that in methods like LoadWorldMap as some regions might not being having a worldmap loaded via the LoadWorldMap method (like in custom applications).

Deleted the CreateTerrainTextureInitial Method which was a 99% duplicate of CreateTerrainTexture, with just a bool field setting difference. That bool is now passed to CreateTerrainTexture as a param.
afrisby
MW 2007-11-28 12:36:09 +00:00
parent c021bfe191
commit ac77c50ba9
6 changed files with 31 additions and 37 deletions

View File

@ -426,7 +426,7 @@ namespace OpenSim.Framework
void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID,
uint flags, string capsURL); uint flags, string capsURL);
void SendTeleportCancel(); void SendTeleportFailed();
void SendTeleportLocationStart(); void SendTeleportLocationStart();
void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance); void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance);

View File

@ -467,13 +467,13 @@ namespace OpenSim.Region.ClientStack
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public void SendTeleportCancel() public void SendTeleportFailed()
{ {
TeleportCancelPacket tpCancel = new TeleportCancelPacket(); TeleportFailedPacket tpFailed = new TeleportFailedPacket();
tpCancel.Info.SessionID = m_sessionId; tpFailed.Info.AgentID = this.AgentId;
tpCancel.Info.AgentID = AgentId; tpFailed.Info.Reason = Helpers.StringToField("unknown failure of teleport");
OutPacket(tpCancel, ThrottleOutPacketType.Task); OutPacket(tpFailed, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>

View File

@ -113,6 +113,7 @@ namespace OpenSim.Region.ClientStack
udpServer.LocalScene = scene; udpServer.LocalScene = scene;
scene.LoadWorldMap(); scene.LoadWorldMap();
scene.RegisterRegionWithGrid();
scene.PhysScene = GetPhysicsScene(); scene.PhysScene = GetPhysicsScene();
scene.PhysScene.SetTerrain(scene.Terrain.GetHeights1D()); scene.PhysScene.SetTerrain(scene.Terrain.GetHeights1D());

View File

@ -258,8 +258,6 @@ namespace OpenSim.Region.Environment.Scenes
httpListener = httpServer; httpListener = httpServer;
m_dumpAssetsToFile = dumpAssetsToFile; m_dumpAssetsToFile = dumpAssetsToFile;
// This function was moved to terrain for some kind of map hack by babble
RegisterRegionWithComms();
} }
#endregion #endregion
@ -291,6 +289,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
return true; return true;
} }
public virtual void Restart(float seconds) public virtual void Restart(float seconds)
{ {
if (seconds < 15) if (seconds < 15)
@ -312,6 +311,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
public void restartTimer_Elapsed(object sender, ElapsedEventArgs e) public void restartTimer_Elapsed(object sender, ElapsedEventArgs e)
{ {
m_RestartTimerCounter++; m_RestartTimerCounter++;
@ -328,6 +328,7 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
public void restartNOW() public void restartNOW()
{ {
MainLog.Instance.Error("REGION", "Closing"); MainLog.Instance.Error("REGION", "Closing");
@ -335,6 +336,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Error("REGION", "Firing Region Restart Message"); MainLog.Instance.Error("REGION", "Firing Region Restart Message");
base.Restart(0); base.Restart(0);
} }
public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e) public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e)
{ {
m_restartWaitTimer.Stop(); m_restartWaitTimer.Stop();
@ -363,6 +365,7 @@ namespace OpenSim.Region.Environment.Scenes
// Reset list to nothing. // Reset list to nothing.
m_regionRestartNotifyList = new List<RegionInfo>(); m_regionRestartNotifyList = new List<RegionInfo>();
} }
public override void Close() public override void Close()
{ {
ForEachScenePresence(delegate(ScenePresence avatar) ForEachScenePresence(delegate(ScenePresence avatar)
@ -534,7 +537,7 @@ namespace OpenSim.Region.Environment.Scenes
{ {
if (Terrain.Tainted() && !Terrain.StillEditing()) if (Terrain.Tainted() && !Terrain.StillEditing())
{ {
CreateTerrainTexture(); CreateTerrainTexture(true);
lock (Terrain.heightmap) lock (Terrain.heightmap)
{ {
@ -683,12 +686,9 @@ namespace OpenSim.Region.Environment.Scenes
Terrain.SetHeights2D(map); Terrain.SetHeights2D(map);
} }
CreateTerrainTextureInitial(); CreateTerrainTexture(false);
//CommsManager.GridService.RegisterRegion(RegionInfo); //hack to update the terrain texture in grid mode so it shows on world map //CommsManager.GridService.RegisterRegion(RegionInfo); //hack to update the terrain texture in grid mode so it shows on world map
// These two 'commands' *must be* next to each other or sim rebooting fails.
m_sceneGridService.RegisterRegion(RegionInfo);
m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo);
} }
catch (Exception e) catch (Exception e)
{ {
@ -696,10 +696,18 @@ namespace OpenSim.Region.Environment.Scenes
} }
} }
public void RegisterRegionWithGrid()
{
RegisterCommsEvents();
// These two 'commands' *must be* next to each other or sim rebooting fails.
m_sceneGridService.RegisterRegion(RegionInfo);
m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo);
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public void CreateTerrainTexture() public void CreateTerrainTexture(bool temporary)
{ {
//create a texture asset of the terrain //create a texture asset of the terrain
byte[] data = Terrain.ExportJpegImage("defaultstripe.png"); byte[] data = Terrain.ExportJpegImage("defaultstripe.png");
@ -710,24 +718,11 @@ namespace OpenSim.Region.Environment.Scenes
asset.Name = "terrainImage"; asset.Name = "terrainImage";
asset.Description = RegionInfo.RegionName; asset.Description = RegionInfo.RegionName;
asset.Type = 0; asset.Type = 0;
asset.Temporary = true; asset.Temporary = temporary;
AssetCache.AddAsset(asset); AssetCache.AddAsset(asset);
} }
public void CreateTerrainTextureInitial()
{
//create a texture asset of the terrain
byte[] data = Terrain.ExportJpegImage("defaultstripe.png");
m_regInfo.EstateSettings.terrainImageID = LLUUID.Random();
AssetBase asset = new AssetBase();
asset.FullID = m_regInfo.EstateSettings.terrainImageID;
asset.Data = data;
asset.Name = "terrainImage";
asset.Description = RegionInfo.RegionName;
asset.Type = 0;
asset.Temporary = false;
AssetCache.AddAsset(asset);
}
#endregion #endregion
#region Primitives Methods #region Primitives Methods
@ -1117,7 +1112,7 @@ namespace OpenSim.Region.Environment.Scenes
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public void RegisterRegionWithComms() public void RegisterCommsEvents()
{ {
// Don't register here. babblefro moved registration to *after *the map // Don't register here. babblefro moved registration to *after *the map
// functions on line 675 so that a proper map will generate and get sent to grid services // functions on line 675 so that a proper map will generate and get sent to grid services
@ -1130,10 +1125,8 @@ namespace OpenSim.Region.Environment.Scenes
m_sceneGridService.OnRegionUp += OtherRegionUp; m_sceneGridService.OnRegionUp += OtherRegionUp;
m_sceneGridService.KillObject = SendKillObject; m_sceneGridService.KillObject = SendKillObject;
// Tell Other regions that I'm here.
} }
public void UnRegisterReginWithComms() public void UnRegisterReginWithComms()
{ {
m_sceneGridService.OnRegionUp -= OtherRegionUp; m_sceneGridService.OnRegionUp -= OtherRegionUp;

View File

@ -255,7 +255,7 @@ namespace SimpleApp
{ {
} }
public virtual void SendTeleportCancel() public virtual void SendTeleportFailed()
{ {
} }

View File

@ -63,7 +63,7 @@ namespace SimpleApp
} }
Terrain.GetHeights1D(map); Terrain.GetHeights1D(map);
CreateTerrainTexture(); CreateTerrainTexture(true);
} }
public override void AddNewClient(IClientAPI client, bool child) public override void AddNewClient(IClientAPI client, bool child)