Yet more refactoring

zircon
MW 2007-03-20 18:14:15 +00:00
parent e7295a1af0
commit 7a31585d5a
16 changed files with 265 additions and 140 deletions

View File

@ -31,6 +31,7 @@
<Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral"> <Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Axiom.MathLib.dll</HintPath> <HintPath>..\..\bin\Axiom.MathLib.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />

View File

@ -27,6 +27,7 @@
<Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral"> <Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Axiom.MathLib.dll</HintPath> <HintPath>..\..\bin\Axiom.MathLib.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />

View File

@ -27,10 +27,12 @@
<Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral"> <Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\Axiom.MathLib.dll</HintPath> <HintPath>..\..\bin\Axiom.MathLib.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="PhysX_Wrapper_Dotnet, Version=1.0.2628.28883, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PhysX_Wrapper_Dotnet, Version=1.0.2628.28883, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\PhysX_Wrapper_Dotnet.dll</HintPath> <HintPath>..\..\bin\PhysX_Wrapper_Dotnet.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />

View File

@ -63,7 +63,7 @@ namespace OpenSim.CAPS
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("SimHttp.cs:StartHTTP() - Spawned main thread OK"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("SimHttp.cs:StartHTTP() - Spawned main thread OK");
Listener = new HttpListener(); Listener = new HttpListener();
Listener.Prefixes.Add("http://+:" + OpenSimMain.Instance.Cfg.IPListenPort + "/"); Listener.Prefixes.Add("http://+:" + OpenSimRoot.Instance.Cfg.IPListenPort + "/");
Listener.Start(); Listener.Start();
HttpListenerContext context; HttpListenerContext context;
@ -96,9 +96,9 @@ namespace OpenSim.CAPS
agent_data.lastname = (string)requestData["lastname"]; agent_data.lastname = (string)requestData["lastname"];
agent_data.AgentID = new LLUUID((string)requestData["agent_id"]); agent_data.AgentID = new LLUUID((string)requestData["agent_id"]);
agent_data.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); 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 "<?xml version=\"1.0\"?><methodResponse><params /></methodResponse>"; return "<?xml version=\"1.0\"?><methodResponse><params /></methodResponse>";
break; break;

View File

@ -18,12 +18,13 @@ namespace OpenSim
{ {
} }
public void LoadPlugins() public virtual void Initialise()
{ {
//load the dlls
this.AssetServer = this.LoadAssetDll(this.AssetDll); this.AssetServer = this.LoadAssetDll(this.AssetDll);
this.GridServer = this.LoadGridDll(this.GridDll); this.GridServer = this.LoadGridDll(this.GridDll);
} }
public void Close() public virtual void Close()
{ {
this.AssetServer.Close(); this.AssetServer.Close();
this.GridServer.Close(); this.GridServer.Close();

View File

@ -58,6 +58,8 @@
<ItemGroup> <ItemGroup>
<Compile Include="Assets\InventoryCache.cs" /> <Compile Include="Assets\InventoryCache.cs" />
<Compile Include="Grid.cs" /> <Compile Include="Grid.cs" />
<Compile Include="OpenSimApplication.cs" />
<Compile Include="OpenSimRoot.cs" />
<Compile Include="UserServer\LocalUserProfileManager.cs" /> <Compile Include="UserServer\LocalUserProfileManager.cs" />
<Compile Include="OpenSimMain.cs" /> <Compile Include="OpenSimMain.cs" />
<Compile Include="QueItem.cs" /> <Compile Include="QueItem.cs" />

View File

@ -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);
}
}

View File

@ -51,11 +51,11 @@ namespace OpenSim
/// <summary> /// <summary>
/// Description of MainForm. /// Description of MainForm.
/// </summary> /// </summary>
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 get
{ {
@ -69,6 +69,11 @@ namespace OpenSim
public SimCAPSHTTPServer HttpServer; public SimCAPSHTTPServer HttpServer;
public AssetCache AssetCache; public AssetCache AssetCache;
public InventoryCache InventoryCache; public InventoryCache InventoryCache;
public Dictionary<EndPoint, SimClient> ClientThreads = new Dictionary<EndPoint, SimClient>();
public DateTime startuptime;
*/
private Dictionary<EndPoint, uint> clientCircuits = new Dictionary<EndPoint, uint>();
private PhysicsManager physManager;
public Socket Server; public Socket Server;
private IPEndPoint ServerIncoming; private IPEndPoint ServerIncoming;
@ -78,9 +83,6 @@ namespace OpenSim
private EndPoint epSender; private EndPoint epSender;
private AsyncCallback ReceivedData; private AsyncCallback ReceivedData;
public DateTime startuptime;
public Dictionary<EndPoint, SimClient> ClientThreads = new Dictionary<EndPoint, SimClient>();
private PhysicsManager physManager;
private System.Timers.Timer timer1 = new System.Timers.Timer(); private System.Timers.Timer timer1 = new System.Timers.Timer();
private string ConfigDll = "SimConfig.dll"; private string ConfigDll = "SimConfig.dll";
private string _physicsEngine = "basicphysics"; private string _physicsEngine = "basicphysics";
@ -94,55 +96,58 @@ namespace OpenSim
Console.WriteLine("Starting...\n"); Console.WriteLine("Starting...\n");
OpenSim.Framework.Console.MainConsole.Instance = new SimConsole(OpenSim.Framework.Console.ConsoleBase.ConsoleType.Local, "", 0); 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; sim.sandbox = false;
Instance.loginserver = false; sim.loginserver = false;
Instance._physicsEngine = "basicphysics"; sim._physicsEngine = "basicphysics";
for (int i = 0; i < args.Length; i++) for (int i = 0; i < args.Length; i++)
{ {
if (args[i] == "-sandbox") if (args[i] == "-sandbox")
{ {
Instance.sandbox = true; sim.sandbox = true;
OpenSimRoot.Instance.Sandbox = true;
} }
if (args[i] == "-loginserver") if (args[i] == "-loginserver")
{ {
Instance.loginserver = true; sim.loginserver = true;
} }
if (args[i] == "-realphysx") if (args[i] == "-realphysx")
{ {
Instance._physicsEngine = "RealPhysX"; sim._physicsEngine = "RealPhysX";
OpenSim.world.Avatar.PhysicsEngineFlying = true; OpenSim.world.Avatar.PhysicsEngineFlying = true;
} }
} }
OpenSimMain.Instance.GridServers = new Grid(); OpenSimRoot.Instance.GridServers = new Grid();
if (Instance.sandbox) if (sim.sandbox)
{ {
OpenSimMain.Instance.GridServers.AssetDll = "LocalGridServers.dll"; OpenSimRoot.Instance.GridServers.AssetDll = "LocalGridServers.dll";
OpenSimMain.Instance.GridServers.GridDll = "LocalGridServers.dll"; OpenSimRoot.Instance.GridServers.GridDll = "LocalGridServers.dll";
OpenSimMain.Instance.GridServers.LoadPlugins(); OpenSimRoot.Instance.GridServers.Initialise();
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Starting in Sandbox mode"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Starting in Sandbox mode");
} }
else else
{ {
OpenSimMain.Instance.GridServers.AssetDll = "RemoteGridServers.dll"; OpenSimRoot.Instance.GridServers.AssetDll = "RemoteGridServers.dll";
OpenSimMain.Instance.GridServers.GridDll = "RemoteGridServers.dll"; OpenSimRoot.Instance.GridServers.GridDll = "RemoteGridServers.dll";
OpenSimMain.Instance.GridServers.LoadPlugins(); OpenSimRoot.Instance.GridServers.Initialise();
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Starting in Grid mode"); 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(); loginServer.Startup();
} }
Instance.AssetCache = new AssetCache(OpenSimMain.Instance.GridServers.AssetServer); OpenSimRoot.Instance.AssetCache = new AssetCache(OpenSimRoot.Instance.GridServers.AssetServer);
Instance.InventoryCache = new InventoryCache(); OpenSimRoot.Instance.InventoryCache = new InventoryCache();
Instance.Startup(); OpenSimRoot.Instance.StartUp();
while (true) 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 // We check our local database first, then the grid for config options
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration");
Cfg = this.LoadConfigDll(this.ConfigDll); OpenSimRoot.Instance.Cfg = this.LoadConfigDll(this.ConfigDll);
Cfg.InitConfig(this.sandbox); OpenSimRoot.Instance.Cfg.InitConfig(this.sandbox);
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Contacting gridserver"); 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"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Initialising world");
Instance.LocalWorld = new World(); OpenSimRoot.Instance.LocalWorld = new World();
Instance.LocalWorld.LandMap = Cfg.LoadWorld(); OpenSimRoot.Instance.LocalWorld.LandMap = OpenSimRoot.Instance.Cfg.LoadWorld();
this.physManager = new OpenSim.Physics.Manager.PhysicsManager(); this.physManager = new OpenSim.Physics.Manager.PhysicsManager();
this.physManager.LoadPlugins(); this.physManager.LoadPlugins();
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting up messaging system"); 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 OpenSimRoot.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.SetTerrain(OpenSimRoot.Instance.LocalWorld.LandMap);
OpenSimMain.Instance.GridServers.AssetServer.SetServerInfo(OpenSimMain.Instance.Cfg.AssetURL, OpenSimMain.Instance.Cfg.AssetSendKey); OpenSimRoot.Instance.GridServers.AssetServer.SetServerInfo(OpenSimRoot.Instance.Cfg.AssetURL, OpenSimRoot.Instance.Cfg.AssetSendKey);
OpenSimMain.Instance.GridServers.GridServer.SetServerInfo(OpenSimMain.Instance.Cfg.GridURL, OpenSimMain.Instance.Cfg.GridSendKey, OpenSimMain.Instance.Cfg.GridRecvKey); 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. OpenSimRoot.Instance.LocalWorld.LoadStorageDLL("Db4LocalStorage.dll"); //all these dll names shouldn't be hard coded.
Instance.LocalWorld.LoadPrimsFromStorage(); OpenSimRoot.Instance.LocalWorld.LoadPrimsFromStorage();
if (this.sandbox) if (this.sandbox)
{ {
this.AssetCache.LoadDefaultTextureSet(); OpenSimRoot.Instance.AssetCache.LoadDefaultTextureSet();
} }
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting CAPS HTTP server"); 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.Enabled = true;
timer1.Interval = 100; timer1.Interval = 100;
@ -235,14 +240,18 @@ namespace OpenSim
packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer); packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
// This is either a new client or a packet to send to an old one // 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) else if (packet.Type == PacketType.UseCircuitCode)
{ // new client { // new client
SimClient newuser = new SimClient(epSender, (UseCircuitCodePacket)packet); UseCircuitCodePacket useCircuit = (UseCircuitCodePacket)packet;
ClientThreads.Add(epSender, newuser); 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 else
{ // invalid client { // invalid client
@ -254,9 +263,9 @@ namespace OpenSim
private void MainServerListener() private void MainServerListener()
{ {
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:MainServerListener() - New thread started"); 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 = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
Server.Bind(ServerIncoming); 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<EndPoint, uint> 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<EndPoint, uint> 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() - 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 listener thread");
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Killing clients"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Killing clients");
// IMPLEMENT THIS // IMPLEMENT THIS
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Closing console and terminating"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Main.cs:Shutdown() - Closing console and terminating");
OpenSimMain.Instance.LocalWorld.Close(); OpenSimRoot.Instance.LocalWorld.Close();
OpenSimMain.Instance.GridServers.Close(); OpenSimRoot.Instance.GridServers.Close();
OpenSim.Framework.Console.MainConsole.Instance.Close(); OpenSim.Framework.Console.MainConsole.Instance.Close();
Environment.Exit(0); Environment.Exit(0);
} }
@ -287,7 +325,7 @@ namespace OpenSim
void Timer1Tick(object sender, System.EventArgs e) void Timer1Tick(object sender, System.EventArgs e)
{ {
Instance.LocalWorld.Update(); OpenSimRoot.Instance.LocalWorld.Update();
} }
} }

View File

@ -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<EndPoint, SimClient> ClientThreads = new Dictionary<EndPoint, SimClient>();
public Dictionary<uint, SimClient> ClientThreads = new Dictionary<uint, SimClient>();
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();
}
}
}
}

View File

@ -60,7 +60,7 @@ namespace OpenSim
private BlockingQueue<QueItem> PacketQueue; private BlockingQueue<QueItem> PacketQueue;
private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>(); private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>();
private Dictionary<uint, Packet> NeedAck = new Dictionary<uint, Packet>(); private Dictionary<uint, Packet> NeedAck = new Dictionary<uint, Packet>();
private Dictionary<LLUUID, AssetBase> UploadedAssets = new Dictionary<LLUUID, AssetBase>(); //private Dictionary<LLUUID, AssetBase> UploadedAssets = new Dictionary<LLUUID, AssetBase>();
private System.Timers.Timer AckTimer; private System.Timers.Timer AckTimer;
private uint Sequence = 0; private uint Sequence = 0;
private object SequenceLock = new object(); private object SequenceLock = new object();
@ -70,7 +70,7 @@ namespace OpenSim
private LLUUID newAssetFolder = LLUUID.Zero; private LLUUID newAssetFolder = LLUUID.Zero;
private bool debug = false; private bool debug = false;
public void ack_pack(Packet Pack) private void ack_pack(Packet Pack)
{ {
//libsecondlife.Packets.PacketAckPacket ack_it = new PacketAckPacket(); //libsecondlife.Packets.PacketAckPacket ack_it = new PacketAckPacket();
//ack_it.Packets = new PacketAckPacket.PacketsBlock[1]; //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); ack_pack(Pack);
if (debug) if (debug)
@ -103,15 +103,15 @@ namespace OpenSim
switch (Pack.Type) switch (Pack.Type)
{ {
case PacketType.CompleteAgentMovement: case PacketType.CompleteAgentMovement:
ClientAvatar.CompleteMovement(OpenSimMain.Instance.LocalWorld); ClientAvatar.CompleteMovement(OpenSimRoot.Instance.LocalWorld);
ClientAvatar.SendInitialPosition(); ClientAvatar.SendInitialPosition();
break; break;
case PacketType.RegionHandshakeReply: case PacketType.RegionHandshakeReply:
OpenSimMain.Instance.LocalWorld.SendLayerData(this); OpenSimRoot.Instance.LocalWorld.SendLayerData(this);
break; break;
case PacketType.AgentWearablesRequest: case PacketType.AgentWearablesRequest:
ClientAvatar.SendInitialAppearance(); ClientAvatar.SendInitialAppearance();
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
if (client.AgentID != this.AgentID) if (client.AgentID != this.AgentID)
{ {
@ -120,10 +120,10 @@ namespace OpenSim
client.ClientAvatar.SendAppearanceToOtherAgent(this); client.ClientAvatar.SendAppearanceToOtherAgent(this);
} }
} }
OpenSimMain.Instance.LocalWorld.GetInitialPrims(this); OpenSimRoot.Instance.LocalWorld.GetInitialPrims(this);
break; break;
case PacketType.ObjectAdd: case PacketType.ObjectAdd:
OpenSimMain.Instance.LocalWorld.AddNewPrim((ObjectAddPacket)Pack, this); OpenSimRoot.Instance.LocalWorld.AddNewPrim((ObjectAddPacket)Pack, this);
break; break;
case PacketType.ObjectLink: case PacketType.ObjectLink:
OpenSim.Framework.Console.MainConsole.Instance.WriteLine(Pack.ToString()); OpenSim.Framework.Console.MainConsole.Instance.WriteLine(Pack.ToString());
@ -135,7 +135,7 @@ namespace OpenSim
ObjectShapePacket shape = (ObjectShapePacket)Pack; ObjectShapePacket shape = (ObjectShapePacket)Pack;
for (int i = 0; i < shape.ObjectData.Length; i++) 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) if (ent.localid == shape.ObjectData[i].ObjectLocalID)
{ {
@ -152,7 +152,7 @@ namespace OpenSim
if (multipleupdate.ObjectData[i].Type == 9) //change position if (multipleupdate.ObjectData[i].Type == 9) //change position
{ {
libsecondlife.LLVector3 pos = new LLVector3(multipleupdate.ObjectData[i].Data, 0); 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) if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID)
{ {
@ -166,7 +166,7 @@ namespace OpenSim
else if (multipleupdate.ObjectData[i].Type == 10)//rotation else if (multipleupdate.ObjectData[i].Type == 10)//rotation
{ {
libsecondlife.LLQuaternion rot = new LLQuaternion(multipleupdate.ObjectData[i].Data, 0, true); 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) if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID)
{ {
@ -179,7 +179,7 @@ namespace OpenSim
{ {
libsecondlife.LLVector3 scale = new LLVector3(multipleupdate.ObjectData[i].Data, 12); 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) if (ent.localid == multipleupdate.ObjectData[i].ObjectLocalID)
{ {
@ -193,13 +193,13 @@ namespace OpenSim
RequestImagePacket imageRequest = (RequestImagePacket)Pack; RequestImagePacket imageRequest = (RequestImagePacket)Pack;
for (int i = 0; i < imageRequest.RequestImage.Length; i++) 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; break;
case PacketType.TransferRequest: case PacketType.TransferRequest:
//Console.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got transfer request"); //Console.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got transfer request");
TransferRequestPacket transfer = (TransferRequestPacket)Pack; TransferRequestPacket transfer = (TransferRequestPacket)Pack;
OpenSimMain.Instance.AssetCache.AddAssetRequest(this, transfer); OpenSimRoot.Instance.AssetCache.AddAssetRequest(this, transfer);
break; break;
case PacketType.AgentUpdate: case PacketType.AgentUpdate:
ClientAvatar.HandleUpdate((AgentUpdatePacket)Pack); ClientAvatar.HandleUpdate((AgentUpdatePacket)Pack);
@ -219,17 +219,18 @@ namespace OpenSim
kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
kill.ObjectData[0].ID = this.ClientAvatar.localid; 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); client.OutPacket(kill);
} }
OpenSimMain.Instance.GridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode); OpenSimRoot.Instance.GridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode);
lock (OpenSimMain.Instance.LocalWorld.Entities) 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 //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(); this.ClientThread.Abort();
break; break;
case PacketType.ChatFromViewer: case PacketType.ChatFromViewer:
@ -246,7 +247,7 @@ namespace OpenSim
reply.ChatData.FromName = _enc.GetBytes(this.ClientAvatar.firstname + " " + this.ClientAvatar.lastname + "\0"); reply.ChatData.FromName = _enc.GetBytes(this.ClientAvatar.firstname + " " + this.ClientAvatar.lastname + "\0");
reply.ChatData.OwnerID = this.AgentID; reply.ChatData.OwnerID = this.AgentID;
reply.ChatData.SourceID = 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); client.OutPacket(reply);
} }
@ -255,7 +256,7 @@ namespace OpenSim
ObjectImagePacket imagePack = (ObjectImagePacket)Pack; ObjectImagePacket imagePack = (ObjectImagePacket)Pack;
for (int i = 0; i < imagePack.ObjectData.Length; i++) 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) if (ent.localid == imagePack.ObjectData[i].ObjectLocalID)
{ {
@ -266,7 +267,7 @@ namespace OpenSim
break; break;
case PacketType.ObjectFlagUpdate: case PacketType.ObjectFlagUpdate:
ObjectFlagUpdatePacket flags = (ObjectFlagUpdatePacket)Pack; 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) if (ent.localid == flags.AgentData.ObjectLocalID)
{ {
@ -313,19 +314,19 @@ namespace OpenSim
} */ } */
break; break;
case PacketType.CreateInventoryFolder: case PacketType.CreateInventoryFolder:
Console.WriteLine(Pack.ToString()); //Console.WriteLine(Pack.ToString());
break; break;
case PacketType.CreateInventoryItem: case PacketType.CreateInventoryItem:
Console.WriteLine(Pack.ToString()); //Console.WriteLine(Pack.ToString());
break; break;
case PacketType.FetchInventory: case PacketType.FetchInventory:
Console.WriteLine("fetch item packet"); Console.WriteLine("fetch item packet");
FetchInventoryPacket FetchInventory = (FetchInventoryPacket)Pack; FetchInventoryPacket FetchInventory = (FetchInventoryPacket)Pack;
OpenSimMain.Instance.InventoryCache.FetchInventory(this, FetchInventory); OpenSimRoot.Instance.InventoryCache.FetchInventory(this, FetchInventory);
break; break;
case PacketType.FetchInventoryDescendents: case PacketType.FetchInventoryDescendents:
FetchInventoryDescendentsPacket Fetch = (FetchInventoryDescendentsPacket)Pack; FetchInventoryDescendentsPacket Fetch = (FetchInventoryDescendentsPacket)Pack;
OpenSimMain.Instance.InventoryCache.FetchInventoryDescendents(this, Fetch); OpenSimRoot.Instance.InventoryCache.FetchInventoryDescendents(this, Fetch);
break; break;
} }
} }
@ -391,7 +392,7 @@ namespace OpenSim
ResendUnacked(); ResendUnacked();
} }
public void ProcessOutPacket(Packet Pack) protected virtual void ProcessOutPacket(Packet Pack)
{ {
// Keep track of when this packet was sent out // Keep track of when this packet was sent out
@ -464,11 +465,11 @@ namespace OpenSim
if (Pack.Header.Zerocoded) if (Pack.Header.Zerocoded)
{ {
int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer); 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 else
{ {
OpenSimMain.Instance.Server.SendTo(sendbuffer, sendbuffer.Length, SocketFlags.None, userEP); OpenSimRoot.Instance.Application.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, CircuitCode); //userEP);
} }
} }
catch (Exception) catch (Exception)
@ -479,7 +480,7 @@ namespace OpenSim
} }
public void InPacket(Packet NewPack) public virtual void InPacket(Packet NewPack)
{ {
// Handle appended ACKs // Handle appended ACKs
if (NewPack.Header.AppendedAcks) 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(); QueItem item = new QueItem();
item.Packet = NewPack; item.Packet = NewPack;
@ -547,7 +548,7 @@ namespace OpenSim
ClientThread.Start(); ClientThread.Start();
} }
private void ClientLoop() protected virtual void ClientLoop()
{ {
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs:ClientLoop() - Entered loop"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs:ClientLoop() - Entered loop");
while (true) 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"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs:InitNewClient() - Adding viewer agent to world");
OpenSimMain.Instance.LocalWorld.AddViewerAgent(this); OpenSimRoot.Instance.LocalWorld.AddViewerAgent(this);
world.Entity tempent = OpenSimMain.Instance.LocalWorld.Entities[this.AgentID]; world.Entity tempent = OpenSimRoot.Instance.LocalWorld.Entities[this.AgentID];
this.ClientAvatar = (world.Avatar)tempent; 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) if (!sessionInfo.Authorised)
{ {
//session/circuit not authorised //session/circuit not authorised
@ -590,29 +591,28 @@ namespace OpenSim
this.AgentID = cirpack.CircuitCode.ID; this.AgentID = cirpack.CircuitCode.ID;
this.SessionID = cirpack.CircuitCode.SessionID; this.SessionID = cirpack.CircuitCode.SessionID;
this.CircuitCode = cirpack.CircuitCode.Code; 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.firstname = sessionInfo.LoginInfo.First;
this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last;
// Create Inventory, currently only works for sandbox mode // Create Inventory, currently only works for sandbox mode
if (OpenSimMain.Instance.sandbox) if (OpenSimRoot.Instance.Sandbox)
{ {
if (sessionInfo.LoginInfo.InventoryFolder != null) if (sessionInfo.LoginInfo.InventoryFolder != null)
{ {
this.CreateInventory(sessionInfo.LoginInfo.InventoryFolder); this.CreateInventory(sessionInfo.LoginInfo.InventoryFolder);
if (sessionInfo.LoginInfo.BaseFolder != null) 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; this.newAssetFolder = sessionInfo.LoginInfo.BaseFolder;
AssetBase[] inventorySet = OpenSimMain.Instance.AssetCache.CreateNewInventorySet(this.AgentID); AssetBase[] inventorySet = OpenSimRoot.Instance.AssetCache.CreateNewInventorySet(this.AgentID);
if (inventorySet != null) if (inventorySet != null)
{ {
for (int i = 0; i < inventorySet.Length; i++) for (int i = 0; i < inventorySet.Length; i++)
{ {
if (inventorySet[i] != null) if (inventorySet[i] != null)
{ {
Console.WriteLine(Helpers.FieldToString(inventorySet[i].Data)); OpenSimRoot.Instance.InventoryCache.AddNewInventoryItem(this, sessionInfo.LoginInfo.BaseFolder, inventorySet[i]);
OpenSimMain.Instance.InventoryCache.AddNewInventoryItem(this, sessionInfo.LoginInfo.BaseFolder, inventorySet[i]);
} }
} }
} }
@ -628,8 +628,8 @@ namespace OpenSim
{ {
AgentInventory inventory = new AgentInventory(); AgentInventory inventory = new AgentInventory();
inventory.AgentID = this.AgentID; inventory.AgentID = this.AgentID;
OpenSimMain.Instance.InventoryCache.AddNewAgentsInventory(inventory); OpenSimRoot.Instance.InventoryCache.AddNewAgentsInventory(inventory);
OpenSimMain.Instance.InventoryCache.CreateNewInventoryFolder(this, baseFolder); OpenSimRoot.Instance.InventoryCache.CreateNewInventoryFolder(this, baseFolder);
} }
} }
} }

View File

@ -156,11 +156,11 @@ namespace OpenSim
break; break;
case "regenerate": case "regenerate":
OpenSimMain.Instance.LocalWorld.RegenerateTerrain(); OpenSimRoot.Instance.LocalWorld.RegenerateTerrain();
break; break;
case "shutdown": case "shutdown":
OpenSimMain.Shutdown(); OpenSimRoot.Instance.Shutdown();
break; break;
} }
return null; return null;
@ -170,16 +170,16 @@ namespace OpenSim
public override void ShowCommands(string ShowWhat) { public override void ShowCommands(string ShowWhat) {
switch(ShowWhat) { switch(ShowWhat) {
case "uptime": case "uptime":
this.WriteLine("OpenSim has been running since " + OpenSimMain.Instance.startuptime.ToString()); this.WriteLine("OpenSim has been running since " + OpenSimRoot.Instance.startuptime.ToString());
this.WriteLine("That is " + (DateTime.Now-OpenSimMain.Instance.startuptime).ToString()); this.WriteLine("That is " + (DateTime.Now-OpenSimRoot.Instance.startuptime).ToString());
break; break;
case "users": case "users":
OpenSim.world.Avatar TempAv; 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")); 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) { foreach (libsecondlife.LLUUID UUID in OpenSimRoot.Instance.LocalWorld.Entities.Keys) {
if(OpenSimMain.Instance.LocalWorld.Entities[UUID].ToString()== "OpenSim.world.Avatar") 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())); 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 // Displays a prompt to the user and then runs the command they entered
public override void MainConsolePrompt() { public override void MainConsolePrompt() {
string[] tempstrarray; 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(' '); tempstrarray = tempstr.Split(' ');
string cmd=tempstrarray[0]; string cmd=tempstrarray[0];
Array.Reverse(tempstrarray); Array.Reverse(tempstrarray);

View File

@ -29,8 +29,8 @@ namespace OpenSim.UserServer
uint circode = (uint)response["circuit_code"]; uint circode = (uint)response["circuit_code"];
theUser.AddSimCircuit(circode, LLUUID.Random()); 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["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_port"] = OpenSimRoot.Instance.Cfg.IPListenPort;
response["sim_ip"] = OpenSimMain.Instance.Cfg.IPListenAddr; response["sim_ip"] = OpenSimRoot.Instance.Cfg.IPListenAddr;
response["region_y"] = (Int32)996 * 256; response["region_y"] = (Int32)996 * 256;
response["region_x"] = (Int32)997* 256; response["region_x"] = (Int32)997* 256;
@ -67,7 +67,7 @@ namespace OpenSim.UserServer
_login.InventoryFolder = new LLUUID((string)Inventory1["folder_id"]); _login.InventoryFolder = new LLUUID((string)Inventory1["folder_id"]);
//working on local computer if so lets add to the gridserver's list of sessions? //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); ((LocalGridBase)this._gridServer).AddNewSession(_login);
} }

View File

@ -289,10 +289,11 @@ namespace OpenSim.UserServer
XmlRpcResponse response = (XmlRpcResponse)(new XmlRpcResponseDeserializer()).Deserialize(this._defaultResponse); XmlRpcResponse response = (XmlRpcResponse)(new XmlRpcResponseDeserializer()).Deserialize(this._defaultResponse);
Hashtable responseData = (Hashtable)response.Value; Hashtable responseData = (Hashtable)response.Value;
responseData["sim_port"] = OpenSimMain.Instance.Cfg.IPListenPort; responseData["sim_port"] = OpenSimRoot.Instance.Cfg.IPListenPort;
responseData["sim_ip"] = OpenSimMain.Instance.Cfg.IPListenAddr; responseData["sim_ip"] = OpenSimRoot.Instance.Cfg.IPListenAddr;
responseData["agent_id"] = Agent.ToStringHyphenated(); responseData["agent_id"] = Agent.ToStringHyphenated();
responseData["session_id"] = Session.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["seconds_since_epoch"] = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
responseData["login-flags"] = LoginFlags; responseData["login-flags"] = LoginFlags;
responseData["global-textures"] = GlobalTextures; responseData["global-textures"] = GlobalTextures;
@ -324,7 +325,7 @@ namespace OpenSim.UserServer
_login.InventoryFolder = InventoryFolderID; _login.InventoryFolder = InventoryFolderID;
//working on local computer if so lets add to the gridserver's list of sessions? //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); ((LocalGridBase)this._gridServer).AddNewSession(_login);
} }

View File

@ -27,9 +27,9 @@ namespace OpenSim.world
{ {
OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs - Loading details from grid (DUMMY)"); OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs - Loading details from grid (DUMMY)");
ControllingClient = TheClient; ControllingClient = TheClient;
localid = 8880000 + (OpenSimMain.Instance.LocalWorld._localNumber++); localid = 8880000 + (OpenSimRoot.Instance.LocalWorld._localNumber++);
position = new LLVector3(100.0f, 100.0f, 30.0f); 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 public PhysicsActor PhysActor
@ -73,11 +73,11 @@ namespace OpenSim.world
//use CreateTerseBlock() //use CreateTerseBlock()
ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock(); ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock();
ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); 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.RegionData.TimeDilation = 64096;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = terseBlock; terse.ObjectData[0] = terseBlock;
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
client.OutPacket(terse); client.OutPacket(terse);
} }
@ -95,11 +95,11 @@ namespace OpenSim.world
//It has been a while since last update was sent so lets send one. //It has been a while since last update was sent so lets send one.
ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock(); ImprovedTerseObjectUpdatePacket.ObjectDataBlock terseBlock = CreateTerseBlock();
ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); 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.RegionData.TimeDilation = 64096;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = terseBlock; terse.ObjectData[0] = terseBlock;
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
client.OutPacket(terse); client.OutPacket(terse);
} }
@ -141,7 +141,7 @@ namespace OpenSim.world
AgentMovementCompletePacket mov = new AgentMovementCompletePacket(); AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
mov.AgentData.SessionID = this.ControllingClient.SessionID; mov.AgentData.SessionID = this.ControllingClient.SessionID;
mov.AgentData.AgentID = this.ControllingClient.AgentID; mov.AgentData.AgentID = this.ControllingClient.AgentID;
mov.Data.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; mov.Data.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle;
// TODO - dynamicalise this stuff // TODO - dynamicalise this stuff
mov.Data.Timestamp = 1172750370; mov.Data.Timestamp = 1172750370;
mov.Data.Position = new LLVector3(100f, 100f, 23f); mov.Data.Position = new LLVector3(100f, 100f, 23f);
@ -156,7 +156,7 @@ namespace OpenSim.world
System.Text.Encoding _enc = System.Text.Encoding.ASCII; System.Text.Encoding _enc = System.Text.Encoding.ASCII;
//send a objectupdate packet with information about the clients avatar //send a objectupdate packet with information about the clients avatar
ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); ObjectUpdatePacket objupdate = new ObjectUpdatePacket();
objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle;
objupdate.RegionData.TimeDilation = 64096; objupdate.RegionData.TimeDilation = 64096;
objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1];
@ -171,9 +171,9 @@ namespace OpenSim.world
byte[] pb = pos2.GetBytes(); byte[] pb = pos2.GetBytes();
Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); 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); client.OutPacket(objupdate);
if (client.AgentID != ControllingClient.AgentID) if (client.AgentID != ControllingClient.AgentID)
@ -215,7 +215,7 @@ namespace OpenSim.world
System.Text.Encoding _enc = System.Text.Encoding.ASCII; System.Text.Encoding _enc = System.Text.Encoding.ASCII;
//send a objectupdate packet with information about the clients avatar //send a objectupdate packet with information about the clients avatar
ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); ObjectUpdatePacket objupdate = new ObjectUpdatePacket();
objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle;
objupdate.RegionData.TimeDilation = 64096; objupdate.RegionData.TimeDilation = 64096;
objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1];
@ -394,7 +394,7 @@ namespace OpenSim.world
handshake.RegionInfo.SimAccess = 13; handshake.RegionInfo.SimAccess = 13;
handshake.RegionInfo.WaterHeight = 20; handshake.RegionInfo.WaterHeight = 20;
handshake.RegionInfo.RegionFlags = 72458694; 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.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000");
handshake.RegionInfo.TerrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975"); handshake.RegionInfo.TerrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975");
handshake.RegionInfo.TerrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3"); handshake.RegionInfo.TerrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3");

View File

@ -99,7 +99,7 @@ namespace OpenSim.world
{ {
if (this.newPrimFlag) if (this.newPrimFlag)
{ {
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
client.OutPacket(OurPacket); client.OutPacket(OurPacket);
} }
@ -108,11 +108,11 @@ namespace OpenSim.world
else if (this.updateFlag) else if (this.updateFlag)
{ {
ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); 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.RegionData.TimeDilation = 64096;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = this.CreateImprovedBlock(); terse.ObjectData[0] = this.CreateImprovedBlock();
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
client.OutPacket(terse); client.OutPacket(terse);
} }
@ -120,7 +120,7 @@ namespace OpenSim.world
} }
else if (this.dirtyFlag) else if (this.dirtyFlag)
{ {
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
UpdateClient(client); UpdateClient(client);
} }
@ -131,11 +131,11 @@ namespace OpenSim.world
if (this._physActor != null && this.physicsEnabled) if (this._physActor != null && this.physicsEnabled)
{ {
ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); 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.RegionData.TimeDilation = 64096;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = this.CreateImprovedBlock(); terse.ObjectData[0] = this.CreateImprovedBlock();
foreach (SimClient client in OpenSimMain.Instance.ClientThreads.Values) foreach (SimClient client in OpenSimRoot.Instance.ClientThreads.Values)
{ {
client.OutPacket(terse); client.OutPacket(terse);
} }
@ -254,7 +254,7 @@ namespace OpenSim.world
public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID agentID, uint localID) public void CreateFromPacket(ObjectAddPacket addPacket, LLUUID agentID, uint localID)
{ {
ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); ObjectUpdatePacket objupdate = new ObjectUpdatePacket();
objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle;
objupdate.RegionData.TimeDilation = 64096; objupdate.RegionData.TimeDilation = 64096;
objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; 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() //need to clean this up as it shares a lot of code with CreateFromPacket()
ObjectUpdatePacket objupdate = new ObjectUpdatePacket(); ObjectUpdatePacket objupdate = new ObjectUpdatePacket();
objupdate.RegionData.RegionHandle = OpenSimMain.Instance.Cfg.RegionHandle; objupdate.RegionData.RegionHandle = OpenSimRoot.Instance.Cfg.RegionHandle;
objupdate.RegionData.TimeDilation = 64096; objupdate.RegionData.TimeDilation = 64096;
objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1];
@ -478,7 +478,7 @@ namespace OpenSim.world
this.primData.LocalID = this.localid; this.primData.LocalID = this.localid;
this.primData.Position = this.position; this.primData.Position = this.position;
this.primData.Rotation = new LLQuaternion(this.rotation.x, this.rotation.y, this.rotation.z, this.rotation.w); 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);
} }
} }

View File

@ -114,9 +114,9 @@ namespace OpenSim.world
HeightmapGenHills hills = new HeightmapGenHills(); HeightmapGenHills hills = new HeightmapGenHills();
this.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false); this.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false);
this.phyScene.SetTerrain(this.LandMap); 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); this.SendLayerData(client);
} }
} }