From f42d1fc825b7b9d22ae05836992531d9abd2a26d Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Tue, 27 Mar 2007 21:42:14 +0000 Subject: * revert the revert - begin the beguine --- OpenSim.RegionServer/world/World.cs | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'OpenSim.RegionServer/world/World.cs') diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index e6d8921..0d126e6 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs @@ -25,10 +25,19 @@ namespace OpenSim.world private Random Rand = new Random(); private uint _primCount = 702000; private int storageCount; + private Dictionary m_clientThreads; + private ulong m_regionHandle; + private string m_regionName; + private SimConfig m_cfg; - public World() + public World(Dictionary clientThreads, ulong regionHandle, string regionName, SimConfig cfg) { - OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs - creating new entitities instance"); + m_clientThreads = clientThreads; + m_regionHandle = regionHandle; + m_regionName = regionName; + m_cfg = cfg; + + OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs - creating new entitities instance"); Entities = new Dictionary(); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs - creating LandMap"); @@ -115,9 +124,9 @@ namespace OpenSim.world HeightmapGenHills hills = new HeightmapGenHills(); this.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false); this.phyScene.SetTerrain(this.LandMap); - OpenSimRoot.Instance.Cfg.SaveMap(this.LandMap); + m_cfg.SaveMap(this.LandMap); - foreach(SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { + foreach(SimClient client in m_clientThreads.Values) { this.SendLayerData(client); } } @@ -134,7 +143,7 @@ namespace OpenSim.world _primCount = prim.LocalID + 1; } OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs: PrimFromStorage() - Reloading prim (localId "+ prim.LocalID+ " ) from storage"); - Primitive nPrim = new Primitive(); + Primitive nPrim = new Primitive(m_clientThreads, m_regionHandle, this); nPrim.CreateFromStorage(prim); this.Entities.Add(nPrim.uuid, nPrim); } @@ -175,7 +184,7 @@ namespace OpenSim.world public void AddViewerAgent(SimClient AgentClient) { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); - Avatar NewAvatar = new Avatar(AgentClient); + Avatar NewAvatar = new Avatar(AgentClient, this, m_regionName, m_clientThreads, m_regionHandle ); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Adding new avatar to world"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Starting RegionHandshake "); NewAvatar.SendRegionHandshake(this); @@ -187,7 +196,7 @@ namespace OpenSim.world public void AddNewPrim(ObjectAddPacket addPacket, SimClient AgentClient) { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs: AddNewPrim() - Creating new prim"); - Primitive prim = new Primitive(); + Primitive prim = new Primitive(m_clientThreads, m_regionHandle, this ); prim.CreateFromPacket(addPacket, AgentClient.AgentID, this._primCount); PhysicsVector pVec = new PhysicsVector(prim.position.X, prim.position.Y, prim.position.Z); PhysicsVector pSize = new PhysicsVector( 0.255f, 0.255f, 0.255f); @@ -210,7 +219,7 @@ namespace OpenSim.world foreach( DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData ) { //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString()); - foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in this.Entities.Values) { if (ent.localid == Data.ObjectLocalID) { @@ -220,7 +229,7 @@ namespace OpenSim.world kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); kill.ObjectData[0].ID = ent.localid; - foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) + foreach (SimClient client in m_clientThreads.Values) { client.OutPacket(kill); } @@ -234,9 +243,9 @@ namespace OpenSim.world } foreach( libsecondlife.LLUUID uuid in DeRezEnts ) { - lock (OpenSimRoot.Instance.LocalWorld.Entities) + lock (this.Entities) { - OpenSimRoot.Instance.LocalWorld.Entities.Remove(uuid); + this.Entities.Remove(uuid); } } -- cgit v1.1