diff --git a/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj b/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj index 2101a91cbd..73625359e5 100644 --- a/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj +++ b/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj @@ -31,6 +31,7 @@ False ..\..\bin\Axiom.MathLib.dll + False diff --git a/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj b/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj index 07d9bb6763..45e62522f8 100644 --- a/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj +++ b/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj @@ -27,6 +27,7 @@ False ..\..\bin\Axiom.MathLib.dll + False diff --git a/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXplugin.csproj b/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXplugin.csproj index 80e63bc3f4..bb6c8abafa 100644 --- a/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXplugin.csproj +++ b/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXplugin.csproj @@ -27,10 +27,12 @@ False ..\..\bin\Axiom.MathLib.dll + False False ..\..\bin\PhysX_Wrapper_Dotnet.dll + False diff --git a/OpenSim.RegionServer/CAPS/SimHttp.cs b/OpenSim.RegionServer/CAPS/SimHttp.cs index ec69e82afd..f5a87056ce 100644 --- a/OpenSim.RegionServer/CAPS/SimHttp.cs +++ b/OpenSim.RegionServer/CAPS/SimHttp.cs @@ -63,7 +63,7 @@ namespace OpenSim.CAPS OpenSim.Framework.Console.MainConsole.Instance.WriteLine("SimHttp.cs:StartHTTP() - Spawned main thread OK"); Listener = new HttpListener(); - Listener.Prefixes.Add("http://+:" + OpenSimMain.Instance.Cfg.IPListenPort + "/"); + Listener.Prefixes.Add("http://+:" + OpenSimRoot.Instance.Cfg.IPListenPort + "/"); Listener.Start(); HttpListenerContext context; @@ -96,9 +96,9 @@ namespace OpenSim.CAPS agent_data.lastname = (string)requestData["lastname"]; agent_data.AgentID = new LLUUID((string)requestData["agent_id"]); agent_data.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); - if (OpenSimMain.Instance.GridServers.GridServer.GetName() == "Remote") + if (OpenSimRoot.Instance.GridServers.GridServer.GetName() == "Remote") { - ((RemoteGridBase)OpenSimMain.Instance.GridServers.GridServer).agentcircuits.Add((uint)agent_data.circuitcode, agent_data); + ((RemoteGridBase)OpenSimRoot.Instance.GridServers.GridServer).agentcircuits.Add((uint)agent_data.circuitcode, agent_data); } return ""; break; diff --git a/OpenSim.RegionServer/Grid.cs b/OpenSim.RegionServer/Grid.cs index 3a57605b2f..b0df6a8088 100644 --- a/OpenSim.RegionServer/Grid.cs +++ b/OpenSim.RegionServer/Grid.cs @@ -18,12 +18,13 @@ namespace OpenSim { } - public void LoadPlugins() + public virtual void Initialise() { + //load the dlls this.AssetServer = this.LoadAssetDll(this.AssetDll); this.GridServer = this.LoadGridDll(this.GridDll); } - public void Close() + public virtual void Close() { this.AssetServer.Close(); this.GridServer.Close(); diff --git a/OpenSim.RegionServer/OpenSim.RegionServer.csproj b/OpenSim.RegionServer/OpenSim.RegionServer.csproj index 3d1364955e..bb4636c7a9 100644 --- a/OpenSim.RegionServer/OpenSim.RegionServer.csproj +++ b/OpenSim.RegionServer/OpenSim.RegionServer.csproj @@ -58,6 +58,8 @@ + + diff --git a/OpenSim.RegionServer/OpenSimApplication.cs b/OpenSim.RegionServer/OpenSimApplication.cs new file mode 100644 index 0000000000..abfdf45812 --- /dev/null +++ b/OpenSim.RegionServer/OpenSimApplication.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using System.Net.Sockets; + +namespace OpenSim +{ + public abstract class OpenSimApplication + { + public abstract void StartUp(); + public abstract void Shutdown(); + public abstract void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode);// EndPoint packetSender); + public abstract void RemoveClientCircuit(uint circuitcode); + } +} diff --git a/OpenSim.RegionServer/OpenSimMain.cs b/OpenSim.RegionServer/OpenSimMain.cs index def22f87fe..93c8665a10 100644 --- a/OpenSim.RegionServer/OpenSimMain.cs +++ b/OpenSim.RegionServer/OpenSimMain.cs @@ -51,11 +51,11 @@ namespace OpenSim /// /// Description of MainForm. /// - public class OpenSimMain + public class OpenSimMain : OpenSimApplication { - private static OpenSimMain instance = null; + /* private static OpenSimRoot instance = null; - public static OpenSimMain Instance + public static OpenSimRoot Instance { get { @@ -69,6 +69,11 @@ namespace OpenSim public SimCAPSHTTPServer HttpServer; public AssetCache AssetCache; public InventoryCache InventoryCache; + public Dictionary ClientThreads = new Dictionary(); + public DateTime startuptime; + */ + private Dictionary clientCircuits = new Dictionary(); + private PhysicsManager physManager; public Socket Server; private IPEndPoint ServerIncoming; @@ -78,9 +83,6 @@ namespace OpenSim private EndPoint epSender; private AsyncCallback ReceivedData; - public DateTime startuptime; - public Dictionary ClientThreads = new Dictionary(); - private PhysicsManager physManager; private System.Timers.Timer timer1 = new System.Timers.Timer(); private string ConfigDll = "SimConfig.dll"; private string _physicsEngine = "basicphysics"; @@ -94,55 +96,58 @@ namespace OpenSim Console.WriteLine("Starting...\n"); OpenSim.Framework.Console.MainConsole.Instance = new SimConsole(OpenSim.Framework.Console.ConsoleBase.ConsoleType.Local, "", 0); - instance = new OpenSimMain(); + //OpenSimRoot.instance = new OpenSimRoot(); + OpenSimMain sim = new OpenSimMain(); + OpenSimRoot.Instance.Application = sim; - Instance.sandbox = false; - Instance.loginserver = false; - Instance._physicsEngine = "basicphysics"; + sim.sandbox = false; + sim.loginserver = false; + sim._physicsEngine = "basicphysics"; for (int i = 0; i < args.Length; i++) { if (args[i] == "-sandbox") { - Instance.sandbox = true; + sim.sandbox = true; + OpenSimRoot.Instance.Sandbox = true; } if (args[i] == "-loginserver") { - Instance.loginserver = true; + sim.loginserver = true; } if (args[i] == "-realphysx") { - Instance._physicsEngine = "RealPhysX"; + sim._physicsEngine = "RealPhysX"; OpenSim.world.Avatar.PhysicsEngineFlying = true; } } - OpenSimMain.Instance.GridServers = new Grid(); - if (Instance.sandbox) + OpenSimRoot.Instance.GridServers = new Grid(); + if (sim.sandbox) { - OpenSimMain.Instance.GridServers.AssetDll = "LocalGridServers.dll"; - OpenSimMain.Instance.GridServers.GridDll = "LocalGridServers.dll"; - OpenSimMain.Instance.GridServers.LoadPlugins(); + OpenSimRoot.Instance.GridServers.AssetDll = "LocalGridServers.dll"; + OpenSimRoot.Instance.GridServers.GridDll = "LocalGridServers.dll"; + OpenSimRoot.Instance.GridServers.Initialise(); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Starting in Sandbox mode"); } else { - OpenSimMain.Instance.GridServers.AssetDll = "RemoteGridServers.dll"; - OpenSimMain.Instance.GridServers.GridDll = "RemoteGridServers.dll"; - OpenSimMain.Instance.GridServers.LoadPlugins(); + OpenSimRoot.Instance.GridServers.AssetDll = "RemoteGridServers.dll"; + OpenSimRoot.Instance.GridServers.GridDll = "RemoteGridServers.dll"; + OpenSimRoot.Instance.GridServers.Initialise(); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Starting in Grid mode"); } - if (Instance.loginserver && Instance.sandbox) + if (sim.loginserver && sim.sandbox) { - LoginServer loginServer = new LoginServer(OpenSimMain.Instance.GridServers.GridServer); + LoginServer loginServer = new LoginServer(OpenSimRoot.Instance.GridServers.GridServer); loginServer.Startup(); } - Instance.AssetCache = new AssetCache(OpenSimMain.Instance.GridServers.AssetServer); - Instance.InventoryCache = new InventoryCache(); + OpenSimRoot.Instance.AssetCache = new AssetCache(OpenSimRoot.Instance.GridServers.AssetServer); + OpenSimRoot.Instance.InventoryCache = new InventoryCache(); - Instance.Startup(); + OpenSimRoot.Instance.StartUp(); while (true) { @@ -154,41 +159,41 @@ namespace OpenSim { } - private void Startup() + public override void StartUp() { - startuptime = DateTime.Now; + OpenSimRoot.Instance.startuptime = DateTime.Now; // We check our local database first, then the grid for config options OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); - Cfg = this.LoadConfigDll(this.ConfigDll); - Cfg.InitConfig(this.sandbox); + OpenSimRoot.Instance.Cfg = this.LoadConfigDll(this.ConfigDll); + OpenSimRoot.Instance.Cfg.InitConfig(this.sandbox); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Contacting gridserver"); - Cfg.LoadFromGrid(); + OpenSimRoot.Instance.Cfg.LoadFromGrid(); - OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - We are " + Cfg.RegionName + " at " + Cfg.RegionLocX.ToString() + "," + Cfg.RegionLocY.ToString()); + OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - We are " + OpenSimRoot.Instance.Cfg.RegionName + " at " + OpenSimRoot.Instance.Cfg.RegionLocX.ToString() + "," + OpenSimRoot.Instance.Cfg.RegionLocY.ToString()); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Initialising world"); - Instance.LocalWorld = new World(); - Instance.LocalWorld.LandMap = Cfg.LoadWorld(); + OpenSimRoot.Instance.LocalWorld = new World(); + OpenSimRoot.Instance.LocalWorld.LandMap = OpenSimRoot.Instance.Cfg.LoadWorld(); this.physManager = new OpenSim.Physics.Manager.PhysicsManager(); this.physManager.LoadPlugins(); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting up messaging system"); - Instance.LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this._physicsEngine); //should be reading from the config file what physics engine to use - Instance.LocalWorld.PhysScene.SetTerrain(Instance.LocalWorld.LandMap); + OpenSimRoot.Instance.LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this._physicsEngine); //should be reading from the config file what physics engine to use + OpenSimRoot.Instance.LocalWorld.PhysScene.SetTerrain(OpenSimRoot.Instance.LocalWorld.LandMap); - OpenSimMain.Instance.GridServers.AssetServer.SetServerInfo(OpenSimMain.Instance.Cfg.AssetURL, OpenSimMain.Instance.Cfg.AssetSendKey); - OpenSimMain.Instance.GridServers.GridServer.SetServerInfo(OpenSimMain.Instance.Cfg.GridURL, OpenSimMain.Instance.Cfg.GridSendKey, OpenSimMain.Instance.Cfg.GridRecvKey); + OpenSimRoot.Instance.GridServers.AssetServer.SetServerInfo(OpenSimRoot.Instance.Cfg.AssetURL, OpenSimRoot.Instance.Cfg.AssetSendKey); + OpenSimRoot.Instance.GridServers.GridServer.SetServerInfo(OpenSimRoot.Instance.Cfg.GridURL, OpenSimRoot.Instance.Cfg.GridSendKey, OpenSimRoot.Instance.Cfg.GridRecvKey); - Instance.LocalWorld.LoadStorageDLL("Db4LocalStorage.dll"); //all these dll names shouldn't be hard coded. - Instance.LocalWorld.LoadPrimsFromStorage(); + OpenSimRoot.Instance.LocalWorld.LoadStorageDLL("Db4LocalStorage.dll"); //all these dll names shouldn't be hard coded. + OpenSimRoot.Instance.LocalWorld.LoadPrimsFromStorage(); if (this.sandbox) { - this.AssetCache.LoadDefaultTextureSet(); + OpenSimRoot.Instance.AssetCache.LoadDefaultTextureSet(); } OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting CAPS HTTP server"); - HttpServer = new SimCAPSHTTPServer(); + OpenSimRoot.Instance.HttpServer = new SimCAPSHTTPServer(); timer1.Enabled = true; timer1.Interval = 100; @@ -233,16 +238,20 @@ namespace OpenSim int numBytes = Server.EndReceiveFrom(result, ref epSender); int packetEnd = numBytes - 1; packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer); - + // This is either a new client or a packet to send to an old one - if (ClientThreads.ContainsKey(epSender)) + // if (OpenSimRoot.Instance.ClientThreads.ContainsKey(epSender)) + if(this.clientCircuits.ContainsKey(epSender)) { - ClientThreads[epSender].InPacket(packet); + OpenSimRoot.Instance.ClientThreads[this.clientCircuits[epSender]].InPacket(packet); } else if (packet.Type == PacketType.UseCircuitCode) { // new client - SimClient newuser = new SimClient(epSender, (UseCircuitCodePacket)packet); - ClientThreads.Add(epSender, newuser); + UseCircuitCodePacket useCircuit = (UseCircuitCodePacket)packet; + this.clientCircuits.Add(epSender, useCircuit.CircuitCode.Code); + SimClient newuser = new SimClient(epSender, useCircuit); + //OpenSimRoot.Instance.ClientThreads.Add(epSender, newuser); + OpenSimRoot.Instance.ClientThreads.Add(useCircuit.CircuitCode.Code, newuser); } else { // invalid client @@ -254,9 +263,9 @@ namespace OpenSim private void MainServerListener() { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:MainServerListener() - New thread started"); - OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:MainServerListener() - Opening UDP socket on " + Cfg.IPListenAddr + ":" + Cfg.IPListenPort); + OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:MainServerListener() - Opening UDP socket on " + OpenSimRoot.Instance.Cfg.IPListenAddr + ":" + OpenSimRoot.Instance.Cfg.IPListenPort); - ServerIncoming = new IPEndPoint(IPAddress.Any, Cfg.IPListenPort); + ServerIncoming = new IPEndPoint(IPAddress.Any, OpenSimRoot.Instance.Cfg.IPListenPort); Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); Server.Bind(ServerIncoming); @@ -271,15 +280,44 @@ namespace OpenSim } - public static void Shutdown() + public override void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode )//EndPoint packetSender) + { + EndPoint sendto = null; + foreach(KeyValuePair p in this.clientCircuits) + { + if (p.Value == circuitcode) + { + sendto = p.Key; + break; + } + } + if (sendto != null) + { + this.Server.SendTo(buffer, size, flags, sendto); + } + } + + public override void RemoveClientCircuit(uint circuitcode) + { + foreach (KeyValuePair p in this.clientCircuits) + { + if (p.Value == circuitcode) + { + this.clientCircuits.Remove(p.Key); + break; + } + } + } + + public override void Shutdown() { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Closing all threads"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Killing listener thread"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Killing clients"); // IMPLEMENT THIS OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Closing console and terminating"); - OpenSimMain.Instance.LocalWorld.Close(); - OpenSimMain.Instance.GridServers.Close(); + OpenSimRoot.Instance.LocalWorld.Close(); + OpenSimRoot.Instance.GridServers.Close(); OpenSim.Framework.Console.MainConsole.Instance.Close(); Environment.Exit(0); } @@ -287,7 +325,7 @@ namespace OpenSim void Timer1Tick(object sender, System.EventArgs e) { - Instance.LocalWorld.Update(); + OpenSimRoot.Instance.LocalWorld.Update(); } } diff --git a/OpenSim.RegionServer/OpenSimRoot.cs b/OpenSim.RegionServer/OpenSimRoot.cs new file mode 100644 index 0000000000..edec4feb65 --- /dev/null +++ b/OpenSim.RegionServer/OpenSimRoot.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +//using System.Net.Sockets; +using libsecondlife; +using libsecondlife.Packets; +using OpenSim.world; +using OpenSim.Framework.Interfaces; +using OpenSim.UserServer; +using OpenSim.Assets; +using OpenSim.CAPS; +using OpenSim.Framework.Console; +using OpenSim.Physics.Manager; + +namespace OpenSim +{ + public class OpenSimRoot + { + private static OpenSimRoot instance = new OpenSimRoot(); //null; + + public static OpenSimRoot Instance + { + get + { + return instance; + } + } + + private OpenSimRoot() + { + + } + + public World LocalWorld; + public Grid GridServers; + public SimConfig Cfg; + public SimCAPSHTTPServer HttpServer; + public AssetCache AssetCache; + public InventoryCache InventoryCache; + //public Dictionary ClientThreads = new Dictionary(); + public Dictionary ClientThreads = new Dictionary(); + public DateTime startuptime; + public OpenSimApplication Application; + public bool Sandbox = false; + + public void StartUp() + { + if (this.Application != null) + { + this.Application.StartUp(); + } + } + + public void Shutdown() + { + if (this.Application != null) + { + this.Application.Shutdown(); + } + } + } +} diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs index d7819b0ae7..d3be19382d 100644 --- a/OpenSim.RegionServer/SimClient.cs +++ b/OpenSim.RegionServer/SimClient.cs @@ -60,7 +60,7 @@ namespace OpenSim private BlockingQueue PacketQueue; private Dictionary PendingAcks = new Dictionary(); private Dictionary NeedAck = new Dictionary(); - private Dictionary UploadedAssets = new Dictionary(); + //private Dictionary UploadedAssets = new Dictionary(); private System.Timers.Timer AckTimer; private uint Sequence = 0; private object SequenceLock = new object(); @@ -70,7 +70,7 @@ namespace OpenSim private LLUUID newAssetFolder = LLUUID.Zero; private bool debug = false; - public void ack_pack(Packet Pack) + private void ack_pack(Packet Pack) { //libsecondlife.Packets.PacketAckPacket ack_it = new PacketAckPacket(); //ack_it.Packets = new PacketAckPacket.PacketsBlock[1]; @@ -90,7 +90,7 @@ namespace OpenSim } } - public void ProcessInPacket(Packet Pack) + protected virtual void ProcessInPacket(Packet Pack) { ack_pack(Pack); if (debug) @@ -103,15 +103,15 @@ namespace OpenSim switch (Pack.Type) { case PacketType.CompleteAgentMovement: - ClientAvatar.CompleteMovement(OpenSimMain.Instance.LocalWorld); + ClientAvatar.CompleteMovement(OpenSimRoot.Instance.LocalWorld); ClientAvatar.SendInitialPosition(); break; case PacketType.RegionHandshakeReply: - OpenSimMain.Instance.LocalWorld.SendLayerData(this); + OpenSimRoot.Instance.LocalWorld.SendLayerData(this); break; case PacketType.AgentWearablesRequest: ClientAvatar.SendInitialAppearance(); - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { if (client.AgentID != this.AgentID) { @@ -120,10 +120,10 @@ namespace OpenSim client.ClientAvatar.SendAppearanceToOtherAgent(this); } } - OpenSimMain.Instance.LocalWorld.GetInitialPrims(this); + OpenSimRoot.Instance.LocalWorld.GetInitialPrims(this); break; case PacketType.ObjectAdd: - OpenSimMain.Instance.LocalWorld.AddNewPrim((ObjectAddPacket)Pack, this); + OpenSimRoot.Instance.LocalWorld.AddNewPrim((ObjectAddPacket)Pack, this); break; case PacketType.ObjectLink: OpenSim.Framework.Console.MainConsole.Instance.WriteLine(Pack.ToString()); @@ -135,7 +135,7 @@ namespace OpenSim ObjectShapePacket shape = (ObjectShapePacket)Pack; for (int i = 0; i < shape.ObjectData.Length; i++) { - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == shape.ObjectData[i].ObjectLocalID) { @@ -152,7 +152,7 @@ namespace OpenSim if (multipleupdate.ObjectData[i].Type == 9) //change position { libsecondlife.LLVector3 pos = new LLVector3(multipleupdate.ObjectData[i].Data, 0); - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID) { @@ -166,7 +166,7 @@ namespace OpenSim else if (multipleupdate.ObjectData[i].Type == 10)//rotation { libsecondlife.LLQuaternion rot = new LLQuaternion(multipleupdate.ObjectData[i].Data, 0, true); - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID) { @@ -179,7 +179,7 @@ namespace OpenSim { libsecondlife.LLVector3 scale = new LLVector3(multipleupdate.ObjectData[i].Data, 12); - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID) { @@ -193,13 +193,13 @@ namespace OpenSim RequestImagePacket imageRequest = (RequestImagePacket)Pack; for (int i = 0; i < imageRequest.RequestImage.Length; i++) { - OpenSimMain.Instance.AssetCache.AddTextureRequest(this, imageRequest.RequestImage[i].Image); + OpenSimRoot.Instance.AssetCache.AddTextureRequest(this, imageRequest.RequestImage[i].Image); } break; case PacketType.TransferRequest: //Console.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got transfer request"); TransferRequestPacket transfer = (TransferRequestPacket)Pack; - OpenSimMain.Instance.AssetCache.AddAssetRequest(this, transfer); + OpenSimRoot.Instance.AssetCache.AddAssetRequest(this, transfer); break; case PacketType.AgentUpdate: ClientAvatar.HandleUpdate((AgentUpdatePacket)Pack); @@ -219,17 +219,18 @@ namespace OpenSim kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); kill.ObjectData[0].ID = this.ClientAvatar.localid; - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(kill); } - OpenSimMain.Instance.GridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode); - lock (OpenSimMain.Instance.LocalWorld.Entities) + OpenSimRoot.Instance.GridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode); + lock (OpenSimRoot.Instance.LocalWorld.Entities) { - OpenSimMain.Instance.LocalWorld.Entities.Remove(this.AgentID); + OpenSimRoot.Instance.LocalWorld.Entities.Remove(this.AgentID); } //need to do other cleaning up here too - OpenSimMain.Instance.ClientThreads.Remove(this.userEP); + OpenSimRoot.Instance.ClientThreads.Remove(this.CircuitCode); //this.userEP); + OpenSimRoot.Instance.Application.RemoveClientCircuit(this.CircuitCode); this.ClientThread.Abort(); break; case PacketType.ChatFromViewer: @@ -246,7 +247,7 @@ namespace OpenSim reply.ChatData.FromName = _enc.GetBytes(this.ClientAvatar.firstname + " " + this.ClientAvatar.lastname + "\0"); reply.ChatData.OwnerID = this.AgentID; reply.ChatData.SourceID = this.AgentID; - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(reply); } @@ -255,7 +256,7 @@ namespace OpenSim ObjectImagePacket imagePack = (ObjectImagePacket)Pack; for (int i = 0; i < imagePack.ObjectData.Length; i++) { - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == imagePack.ObjectData[i].ObjectLocalID) { @@ -266,7 +267,7 @@ namespace OpenSim break; case PacketType.ObjectFlagUpdate: ObjectFlagUpdatePacket flags = (ObjectFlagUpdatePacket)Pack; - foreach (Entity ent in OpenSimMain.Instance.LocalWorld.Entities.Values) + foreach (Entity ent in OpenSimRoot.Instance.LocalWorld.Entities.Values) { if (ent.localid == flags.AgentData.ObjectLocalID) { @@ -313,19 +314,19 @@ namespace OpenSim } */ break; case PacketType.CreateInventoryFolder: - Console.WriteLine(Pack.ToString()); + //Console.WriteLine(Pack.ToString()); break; case PacketType.CreateInventoryItem: - Console.WriteLine(Pack.ToString()); + //Console.WriteLine(Pack.ToString()); break; case PacketType.FetchInventory: Console.WriteLine("fetch item packet"); FetchInventoryPacket FetchInventory = (FetchInventoryPacket)Pack; - OpenSimMain.Instance.InventoryCache.FetchInventory(this, FetchInventory); + OpenSimRoot.Instance.InventoryCache.FetchInventory(this, FetchInventory); break; case PacketType.FetchInventoryDescendents: FetchInventoryDescendentsPacket Fetch = (FetchInventoryDescendentsPacket)Pack; - OpenSimMain.Instance.InventoryCache.FetchInventoryDescendents(this, Fetch); + OpenSimRoot.Instance.InventoryCache.FetchInventoryDescendents(this, Fetch); break; } } @@ -391,7 +392,7 @@ namespace OpenSim ResendUnacked(); } - public void ProcessOutPacket(Packet Pack) + protected virtual void ProcessOutPacket(Packet Pack) { // Keep track of when this packet was sent out @@ -464,11 +465,11 @@ namespace OpenSim if (Pack.Header.Zerocoded) { int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer); - OpenSimMain.Instance.Server.SendTo(ZeroOutBuffer, packetsize, SocketFlags.None, userEP); + OpenSimRoot.Instance.Application.SendPacketTo(ZeroOutBuffer, packetsize, SocketFlags.None, CircuitCode);//userEP); } else { - OpenSimMain.Instance.Server.SendTo(sendbuffer, sendbuffer.Length, SocketFlags.None, userEP); + OpenSimRoot.Instance.Application.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, CircuitCode); //userEP); } } catch (Exception) @@ -479,7 +480,7 @@ namespace OpenSim } - public void InPacket(Packet NewPack) + public virtual void InPacket(Packet NewPack) { // Handle appended ACKs if (NewPack.Header.AppendedAcks) @@ -524,7 +525,7 @@ namespace OpenSim } - public void OutPacket(Packet NewPack) + public virtual void OutPacket(Packet NewPack) { QueItem item = new QueItem(); item.Packet = NewPack; @@ -547,7 +548,7 @@ namespace OpenSim ClientThread.Start(); } - private void ClientLoop() + protected virtual void ClientLoop() { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs:ClientLoop() - Entered loop"); while (true) @@ -566,17 +567,17 @@ namespace OpenSim } } - private void InitNewClient() + protected virtual void InitNewClient() { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); - OpenSimMain.Instance.LocalWorld.AddViewerAgent(this); - world.Entity tempent = OpenSimMain.Instance.LocalWorld.Entities[this.AgentID]; + OpenSimRoot.Instance.LocalWorld.AddViewerAgent(this); + world.Entity tempent = OpenSimRoot.Instance.LocalWorld.Entities[this.AgentID]; this.ClientAvatar = (world.Avatar)tempent; } - private void AuthUser() + protected virtual void AuthUser() { - AuthenticateResponse sessionInfo = OpenSimMain.Instance.GridServers.GridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); + AuthenticateResponse sessionInfo = OpenSimRoot.Instance.GridServers.GridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); if (!sessionInfo.Authorised) { //session/circuit not authorised @@ -590,29 +591,28 @@ namespace OpenSim this.AgentID = cirpack.CircuitCode.ID; this.SessionID = cirpack.CircuitCode.SessionID; this.CircuitCode = cirpack.CircuitCode.Code; - InitNewClient(); + InitNewClient(); //shouldn't be called here as we might be a child agent and not want a full avatar this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; // Create Inventory, currently only works for sandbox mode - if (OpenSimMain.Instance.sandbox) + if (OpenSimRoot.Instance.Sandbox) { if (sessionInfo.LoginInfo.InventoryFolder != null) { this.CreateInventory(sessionInfo.LoginInfo.InventoryFolder); if (sessionInfo.LoginInfo.BaseFolder != null) { - OpenSimMain.Instance.InventoryCache.CreateNewInventoryFolder(this, sessionInfo.LoginInfo.BaseFolder); + OpenSimRoot.Instance.InventoryCache.CreateNewInventoryFolder(this, sessionInfo.LoginInfo.BaseFolder); this.newAssetFolder = sessionInfo.LoginInfo.BaseFolder; - AssetBase[] inventorySet = OpenSimMain.Instance.AssetCache.CreateNewInventorySet(this.AgentID); + AssetBase[] inventorySet = OpenSimRoot.Instance.AssetCache.CreateNewInventorySet(this.AgentID); if (inventorySet != null) { for (int i = 0; i < inventorySet.Length; i++) { if (inventorySet[i] != null) { - Console.WriteLine(Helpers.FieldToString(inventorySet[i].Data)); - OpenSimMain.Instance.InventoryCache.AddNewInventoryItem(this, sessionInfo.LoginInfo.BaseFolder, inventorySet[i]); + OpenSimRoot.Instance.InventoryCache.AddNewInventoryItem(this, sessionInfo.LoginInfo.BaseFolder, inventorySet[i]); } } } @@ -628,8 +628,8 @@ namespace OpenSim { AgentInventory inventory = new AgentInventory(); inventory.AgentID = this.AgentID; - OpenSimMain.Instance.InventoryCache.AddNewAgentsInventory(inventory); - OpenSimMain.Instance.InventoryCache.CreateNewInventoryFolder(this, baseFolder); + OpenSimRoot.Instance.InventoryCache.AddNewAgentsInventory(inventory); + OpenSimRoot.Instance.InventoryCache.CreateNewInventoryFolder(this, baseFolder); } } } diff --git a/OpenSim.RegionServer/SimConsole.cs b/OpenSim.RegionServer/SimConsole.cs index 5dd7ab3afa..d6d5e44210 100644 --- a/OpenSim.RegionServer/SimConsole.cs +++ b/OpenSim.RegionServer/SimConsole.cs @@ -156,11 +156,11 @@ namespace OpenSim break; case "regenerate": - OpenSimMain.Instance.LocalWorld.RegenerateTerrain(); + OpenSimRoot.Instance.LocalWorld.RegenerateTerrain(); break; case "shutdown": - OpenSimMain.Shutdown(); + OpenSimRoot.Instance.Shutdown(); break; } return null; @@ -170,16 +170,16 @@ namespace OpenSim public override void ShowCommands(string ShowWhat) { switch(ShowWhat) { case "uptime": - this.WriteLine("OpenSim has been running since " + OpenSimMain.Instance.startuptime.ToString()); - this.WriteLine("That is " + (DateTime.Now-OpenSimMain.Instance.startuptime).ToString()); + this.WriteLine("OpenSim has been running since " + OpenSimRoot.Instance.startuptime.ToString()); + this.WriteLine("That is " + (DateTime.Now-OpenSimRoot.Instance.startuptime).ToString()); break; case "users": OpenSim.world.Avatar TempAv; this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16}{5,-16}","Firstname", "Lastname","Agent ID", "Session ID", "Circuit", "IP")); - foreach (libsecondlife.LLUUID UUID in OpenSimMain.Instance.LocalWorld.Entities.Keys) { - if(OpenSimMain.Instance.LocalWorld.Entities[UUID].ToString()== "OpenSim.world.Avatar") + foreach (libsecondlife.LLUUID UUID in OpenSimRoot.Instance.LocalWorld.Entities.Keys) { + if(OpenSimRoot.Instance.LocalWorld.Entities[UUID].ToString()== "OpenSim.world.Avatar") { - TempAv=(OpenSim.world.Avatar)OpenSimMain.Instance.LocalWorld.Entities[UUID]; + TempAv=(OpenSim.world.Avatar)OpenSimRoot.Instance.LocalWorld.Entities[UUID]; this.WriteLine(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}",TempAv.firstname, TempAv.lastname,UUID, TempAv.ControllingClient.SessionID, TempAv.ControllingClient.CircuitCode, TempAv.ControllingClient.userEP.ToString())); } } @@ -190,7 +190,7 @@ namespace OpenSim // Displays a prompt to the user and then runs the command they entered public override void MainConsolePrompt() { string[] tempstrarray; - string tempstr = this.CmdPrompt("OpenSim-" + OpenSimMain.Instance.Cfg.RegionHandle.ToString() + " # "); + string tempstr = this.CmdPrompt("OpenSim-" + OpenSimRoot.Instance.Cfg.RegionHandle.ToString() + " # "); tempstrarray = tempstr.Split(' '); string cmd=tempstrarray[0]; Array.Reverse(tempstrarray); diff --git a/OpenSim.RegionServer/UserServer/LocalUserProfileManager.cs b/OpenSim.RegionServer/UserServer/LocalUserProfileManager.cs index 2b828f5072..83e340b473 100644 --- a/OpenSim.RegionServer/UserServer/LocalUserProfileManager.cs +++ b/OpenSim.RegionServer/UserServer/LocalUserProfileManager.cs @@ -29,8 +29,8 @@ namespace OpenSim.UserServer uint circode = (uint)response["circuit_code"]; theUser.AddSimCircuit(circode, LLUUID.Random()); response["home"] = "{'region_handle':[r" + (997 * 256).ToString() + ",r" + (996 * 256).ToString() + "], 'position':[r" + theUser.homepos.X.ToString() + ",r" + theUser.homepos.Y.ToString() + ",r" + theUser.homepos.Z.ToString() + "], 'look_at':[r" + theUser.homelookat.X.ToString() + ",r" + theUser.homelookat.Y.ToString() + ",r" + theUser.homelookat.Z.ToString() + "]}"; - response["sim_port"] = OpenSimMain.Instance.Cfg.IPListenPort; - response["sim_ip"] = OpenSimMain.Instance.Cfg.IPListenAddr; + response["sim_port"] = OpenSimRoot.Instance.Cfg.IPListenPort; + response["sim_ip"] = OpenSimRoot.Instance.Cfg.IPListenAddr; response["region_y"] = (Int32)996 * 256; response["region_x"] = (Int32)997* 256; @@ -67,7 +67,7 @@ namespace OpenSim.UserServer _login.InventoryFolder = new LLUUID((string)Inventory1["folder_id"]); //working on local computer if so lets add to the gridserver's list of sessions? - if (OpenSimMain.Instance.GridServers.GridServer.GetName() == "Local") + if (OpenSimRoot.Instance.GridServers.GridServer.GetName() == "Local") { ((LocalGridBase)this._gridServer).AddNewSession(_login); } diff --git a/OpenSim.RegionServer/UserServer/LoginServer.cs b/OpenSim.RegionServer/UserServer/LoginServer.cs index 1da23bf322..f50d5211d7 100644 --- a/OpenSim.RegionServer/UserServer/LoginServer.cs +++ b/OpenSim.RegionServer/UserServer/LoginServer.cs @@ -289,10 +289,11 @@ namespace OpenSim.UserServer XmlRpcResponse response = (XmlRpcResponse)(new XmlRpcResponseDeserializer()).Deserialize(this._defaultResponse); Hashtable responseData = (Hashtable)response.Value; - responseData["sim_port"] = OpenSimMain.Instance.Cfg.IPListenPort; - responseData["sim_ip"] = OpenSimMain.Instance.Cfg.IPListenAddr; + responseData["sim_port"] = OpenSimRoot.Instance.Cfg.IPListenPort; + responseData["sim_ip"] = OpenSimRoot.Instance.Cfg.IPListenAddr; responseData["agent_id"] = Agent.ToStringHyphenated(); responseData["session_id"] = Session.ToStringHyphenated(); + responseData["circuit_code"] = (Int32)(Util.RandomClass.Next()); responseData["seconds_since_epoch"] = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; responseData["login-flags"] = LoginFlags; responseData["global-textures"] = GlobalTextures; @@ -324,7 +325,7 @@ namespace OpenSim.UserServer _login.InventoryFolder = InventoryFolderID; //working on local computer if so lets add to the gridserver's list of sessions? - if (OpenSimMain.Instance.GridServers.GridServer.GetName() == "Local") + if (OpenSimRoot.Instance.GridServers.GridServer.GetName() == "Local") { ((LocalGridBase)this._gridServer).AddNewSession(_login); } diff --git a/OpenSim.RegionServer/world/Avatar.cs b/OpenSim.RegionServer/world/Avatar.cs index 3a4c8b9625..b4a3b82d85 100644 --- a/OpenSim.RegionServer/world/Avatar.cs +++ b/OpenSim.RegionServer/world/Avatar.cs @@ -27,9 +27,9 @@ namespace OpenSim.world { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs - Loading details from grid (DUMMY)"); ControllingClient = TheClient; - localid = 8880000 + (OpenSimMain.Instance.LocalWorld._localNumber++); + localid = 8880000 + (OpenSimRoot.Instance.LocalWorld._localNumber++); position = new LLVector3(100.0f, 100.0f, 30.0f); - position.Z = OpenSimMain.Instance.LocalWorld.LandMap[(int)position.Y * 256 + (int)position.X] + 1; + position.Z = OpenSimRoot.Instance.LocalWorld.LandMap[(int)position.Y * 256 + (int)position.X] + 1; } public PhysicsActor PhysActor @@ -73,11 +73,11 @@ namespace OpenSim.world //use CreateTerseBlock() ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock(); ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); - terse.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; // FIXME + terse.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; // FIXME terse.RegionData.TimeDilation = 64096; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData[0] = terseBlock; - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(terse); } @@ -95,11 +95,11 @@ namespace OpenSim.world //It has been a while since last update was sent so lets send one. ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock(); ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); - terse.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; // FIXME + terse.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; // FIXME terse.RegionData.TimeDilation = 64096; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData[0] = terseBlock; - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(terse); } @@ -141,7 +141,7 @@ namespace OpenSim.world AgentMovementCompletePacket mov = new AgentMovementCompletePacket(); mov.AgentData.SessionID = this.ControllingClient.SessionID; mov.AgentData.AgentID = this.ControllingClient.AgentID; - mov.Data.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; + mov.Data.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; // TODO - dynamicalise this stuff mov.Data.Timestamp = 1172750370; mov.Data.Position = new LLVector3(100f, 100f, 23f); @@ -156,7 +156,7 @@ namespace OpenSim.world System.Text.Encoding _enc = System.Text.Encoding.ASCII; //send a objectupdate packet with information about the clients avatar ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); - objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; + objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; objupdate.RegionData.TimeDilation = 64096; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; @@ -171,9 +171,9 @@ namespace OpenSim.world byte[] pb = pos2.GetBytes(); Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); - OpenSimMain.Instance.LocalWorld._localNumber++; + OpenSimRoot.Instance.LocalWorld._localNumber++; - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(objupdate); if (client.AgentID != ControllingClient.AgentID) @@ -215,7 +215,7 @@ namespace OpenSim.world System.Text.Encoding _enc = System.Text.Encoding.ASCII; //send a objectupdate packet with information about the clients avatar ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); - objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; + objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; objupdate.RegionData.TimeDilation = 64096; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; @@ -394,7 +394,7 @@ namespace OpenSim.world handshake.RegionInfo.SimAccess = 13; handshake.RegionInfo.WaterHeight = 20; handshake.RegionInfo.RegionFlags = 72458694; - handshake.RegionInfo.SimName = _enc.GetBytes(OpenSimMain.Instance.Cfg.RegionName + "\0"); + handshake.RegionInfo.SimName = _enc.GetBytes(OpenSimRoot.Instance.Cfg.RegionName + "\0"); handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000"); handshake.RegionInfo.TerrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975"); handshake.RegionInfo.TerrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3"); diff --git a/OpenSim.RegionServer/world/Primitive.cs b/OpenSim.RegionServer/world/Primitive.cs index efed7e3e51..b190d818df 100644 --- a/OpenSim.RegionServer/world/Primitive.cs +++ b/OpenSim.RegionServer/world/Primitive.cs @@ -99,7 +99,7 @@ namespace OpenSim.world { if (this.newPrimFlag) { - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(OurPacket); } @@ -108,11 +108,11 @@ namespace OpenSim.world else if (this.updateFlag) { ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); - terse.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; // FIXME + terse.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; // FIXME terse.RegionData.TimeDilation = 64096; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData[0] = this.CreateImprovedBlock(); - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(terse); } @@ -120,7 +120,7 @@ namespace OpenSim.world } else if (this.dirtyFlag) { - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { UpdateClient(client); } @@ -131,11 +131,11 @@ namespace OpenSim.world if (this._physActor != null && this.physicsEnabled) { ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); - terse.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; // FIXME + terse.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; // FIXME terse.RegionData.TimeDilation = 64096; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData[0] = this.CreateImprovedBlock(); - foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) + foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { client.OutPacket(terse); } @@ -254,7 +254,7 @@ namespace OpenSim.world public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID agentID, uint localID) { ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); - objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; + objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; objupdate.RegionData.TimeDilation = 64096; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; @@ -322,7 +322,7 @@ namespace OpenSim.world { //need to clean this up as it shares a lot of code with CreateFromPacket() ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); - objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; + objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle; objupdate.RegionData.TimeDilation = 64096; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; @@ -478,7 +478,7 @@ namespace OpenSim.world this.primData.LocalID = this.localid; this.primData.Position = this.position; this.primData.Rotation = new LLQuaternion(this.rotation.x, this.rotation.y, this.rotation.z, this.rotation.w); - OpenSimMain.Instance.LocalWorld.localStorage.StorePrim(this.primData); + OpenSimRoot.Instance.LocalWorld.localStorage.StorePrim(this.primData); } } diff --git a/OpenSim.RegionServer/world/World.cs b/OpenSim.RegionServer/world/World.cs index 3bd5e944e4..ba99233688 100644 --- a/OpenSim.RegionServer/world/World.cs +++ b/OpenSim.RegionServer/world/World.cs @@ -114,9 +114,9 @@ namespace OpenSim.world HeightmapGenHills hills = new HeightmapGenHills(); this.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false); this.phyScene.SetTerrain(this.LandMap); - OpenSimMain.Instance.Cfg.SaveMap(this.LandMap); + OpenSimRoot.Instance.Cfg.SaveMap(this.LandMap); - foreach(SimClient client in OpenSimMain.Instance.ClientThreads.Values) { + foreach(SimClient client in OpenSimRoot.Instance.ClientThreads.Values) { this.SendLayerData(client); } }