Another commit as ordered by robl

merge
MW 2007-05-31 16:30:42 +00:00
parent 564a97b508
commit e92ab35b05
5 changed files with 58 additions and 8 deletions

View File

@ -50,7 +50,7 @@ namespace OpenGrid.Framework.Communications
///
/// </summary>
/// <returns></returns>
public virtual bool InformNeighbourOfChildAgent( uint regionHandle, AgentCircuitData agentData) //should change from agentCircuitData
public virtual bool InformNeighbourOfChildAgent( ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData
{
return false;
}

View File

@ -53,7 +53,7 @@ namespace OpenGrid.Framework.Communications
///
/// </summary>
/// <returns></returns>
public override bool InformNeighbourOfChildAgent(uint regionHandle, AgentCircuitData agentData) //should change from agentCircuitData
public override bool InformNeighbourOfChildAgent(ulong regionHandle, AgentCircuitData agentData) //should change from agentCircuitData
{
return false;
}

View File

@ -84,5 +84,6 @@ namespace OpenSim.Framework.Interfaces
void SendRegionHandshake(RegionInfo regionInfo);
void MoveAgentIntoRegion(RegionInfo regInfo);
void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos);
AgentCircuitData RequestClientInfo();
}
}

View File

@ -373,6 +373,35 @@ namespace OpenSim
return objdata;
}
protected void InformClientOfNeighbour(ulong neighbourHandle, System.Net.IPAddress neighbourIP, ushort neighbourPort)
{
EnableSimulatorPacket enablesimpacket = new EnableSimulatorPacket();
enablesimpacket.SimulatorInfo = new EnableSimulatorPacket.SimulatorInfoBlock();
enablesimpacket.SimulatorInfo.Handle = neighbourHandle;
byte[] byteIP = neighbourIP.GetAddressBytes();
enablesimpacket.SimulatorInfo.IP = (uint)byteIP[3] << 24;
enablesimpacket.SimulatorInfo.IP += (uint)byteIP[2] << 16;
enablesimpacket.SimulatorInfo.IP += (uint)byteIP[1] << 8;
enablesimpacket.SimulatorInfo.IP += (uint)byteIP[0];
enablesimpacket.SimulatorInfo.Port = neighbourPort;
OutPacket(enablesimpacket);
}
public AgentCircuitData RequestClientInfo()
{
AgentCircuitData agentData = new AgentCircuitData();
agentData.AgentID = this.AgentId;
agentData.SessionID = this.SessionID;
agentData.SecureSessionID = this.SecureSessionID;
agentData.circuitcode = this.CircuitCode;
agentData.child = false;
agentData.firstname = this.firstName;
agentData.lastname = this.lastName;
return agentData;
}
#endregion
}

View File

@ -92,7 +92,7 @@ namespace OpenSim.world
Avatar.SetupTemplate("avatar-texture.dat");
Avatar.LoadAnims();
//this.SetDefaultScripts();
//this.LoadScriptEngines();
@ -115,7 +115,7 @@ namespace OpenSim.world
m_heartbeatTimer.Elapsed += new ElapsedEventHandler(this.Heartbeat);
}
#region Update Methods
@ -268,6 +268,7 @@ namespace OpenSim.world
#endregion
#region Regenerate Terrain
/// <summary>
@ -451,6 +452,7 @@ namespace OpenSim.world
remoteClient.OnRegionHandShakeReply += new GenericCall(this.SendLayerData);
//remoteClient.OnRequestWearables += new GenericCall(this.GetInitialPrims);
remoteClient.OnChatFromViewer += new ChatFromViewer(this.SimChat);
remoteClient.OnRequestWearables += new GenericCall(this.InformClientOfNeighbours);
Avatar newAvatar = null;
try
@ -460,13 +462,13 @@ namespace OpenSim.world
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Adding new avatar to world");
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Starting RegionHandshake ");
newAvatar.SendRegionHandshake();
PhysicsVector pVec = new PhysicsVector(newAvatar.Pos.X, newAvatar.Pos.Y, newAvatar.Pos.Z);
lock (this.LockPhysicsEngine)
{
newAvatar.PhysActor = this.phyScene.AddAvatar(pVec);
}
lock (Entities)
{
if (!Entities.ContainsKey(agentID))
@ -497,6 +499,24 @@ namespace OpenSim.world
return;
}
/// <summary>
///
/// </summary>
protected void InformClientOfNeighbours(IClientAPI remoteClient)
{
List<RegionInfo> neighbours = this.commsManager.RequestNeighbours(this.m_regInfo);
for (int i = 0; i < neighbours.Count; i++)
{
AgentCircuitData agent = remoteClient.RequestClientInfo();
agent.BaseFolder = LLUUID.Zero;
agent.InventoryFolder = LLUUID.Zero;
agent.startpos = new LLVector3(128, 128, 70);
this.commsManager.InformNeighbourOfChildAgent(neighbours[i].RegionHandle, agent);
}
}
/// <summary>
///
/// </summary>
@ -556,9 +576,9 @@ namespace OpenSim.world
}
}
public void NewUserConnection(ulong regionHandle,AgentCircuitData agent)
public void NewUserConnection(ulong regionHandle, AgentCircuitData agent)
{
Console.WriteLine("World.cs - add new user connection");
Console.WriteLine("World.cs - add new user connection");
//should just check that its meant for this region
if (regionHandle == this.m_regInfo.RegionHandle)
{