From b2eb26e4babbf87c8db84e67de116ef145feb2d6 Mon Sep 17 00:00:00 2001 From: MW Date: Tue, 29 May 2007 09:16:18 +0000 Subject: number of changes --- .../BasicPhysicsPlugin/BasicPhysicsPlugin.cs | 6 +- OpenSim/OpenSim.RegionServer/ClientView.API.cs | 198 ++++++++++++++++++++- OpenSim/OpenSim.RegionServer/ClientView.cs | 22 +-- OpenSim/OpenSim.RegionServer/RegionServerBase.cs | 2 +- OpenSim/OpenSim.RegionServer/VersionInfo.cs | 2 +- OpenSim/OpenSim.World/Avatar.cs | 40 +++-- OpenSim/OpenSim.World/World.cs | 9 +- OpenSim/OpenSim.World/WorldBase.cs | 8 +- OpenSim/OpenSim/OpenSimMain.cs | 50 ++++-- 9 files changed, 278 insertions(+), 59 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 54be853..69f5915 100644 --- a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs @@ -49,11 +49,7 @@ namespace OpenSim.Physics.BasicPhysicsPlugin public PhysicsScene GetScene() { - if(_mScene == null) - { - _mScene = new BasicScene(); - } - return(_mScene); + return new BasicScene(); } public string GetName() diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs index 579928c..55ff8a1 100644 --- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs +++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Inventory; +using OpenSim.Framework.Types; using libsecondlife; using libsecondlife.Packets; @@ -32,6 +33,8 @@ namespace OpenSim public event UpdatePrimVector OnUpdatePrimScale; public event StatusChange OnChildAgentStatus; public event GenericCall2 OnStopMovement; + public event NewAvatar OnNewAvatar; + public event GenericCall6 OnRemoveAvatar; public LLVector3 StartPos { @@ -70,7 +73,7 @@ namespace OpenSim this.OutPacket(reply); } - public void SendAppearance(AvatarWearable[] wearables) + public void SendWearables(AvatarWearable[] wearables) { AgentWearablesUpdatePacket aw = new AgentWearablesUpdatePacket(); aw.AgentData.AgentID = this.AgentID; @@ -90,6 +93,199 @@ namespace OpenSim this.OutPacket(aw); } + + public void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) + { + AvatarAppearancePacket avp = new AvatarAppearancePacket(); + avp.VisualParam = new AvatarAppearancePacket.VisualParamBlock[218]; + avp.ObjectData.TextureEntry = textureEntry; + + AvatarAppearancePacket.VisualParamBlock avblock = null; + for (int i = 0; i < 218; i++) + { + avblock = new AvatarAppearancePacket.VisualParamBlock(); + avblock.ParamValue = visualParams[i]; + avp.VisualParam[i] = avblock; + } + + avp.Sender.IsTrial = false; + avp.Sender.ID = agentID; + OutPacket(avp); + } + + /// + /// Send the region heightmap to the client + /// + /// heightmap + public virtual void SendLayerData(float[] map) + { + try + { + int[] patches = new int[4]; + + for (int y = 0; y < 16; y++) + { + for (int x = 0; x < 16; x = x + 4) + { + patches[0] = x + 0 + y * 16; + patches[1] = x + 1 + y * 16; + patches[2] = x + 2 + y * 16; + patches[3] = x + 3 + y * 16; + + Packet layerpack = TerrainManager.CreateLandPacket(map, patches); + OutPacket(layerpack); + } + } + } + catch (Exception e) + { + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "ClientView API.cs: SendLayerData() - Failed with exception " + e.ToString()); + } + } + + /// + /// Sends a specified patch to a client + /// + /// Patch coordinate (x) 0..16 + /// Patch coordinate (y) 0..16 + /// heightmap + public void SendLayerData(int px, int py, float[] map) + { + try + { + int[] patches = new int[1]; + int patchx, patchy; + patchx = px / 16; + patchy = py / 16; + + patches[0] = patchx + 0 + patchy * 16; + + Packet layerpack = TerrainManager.CreateLandPacket(map, patches); + OutPacket(layerpack); + } + catch (Exception e) + { + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "ClientView API .cs: SendLayerData() - Failed with exception " + e.ToString()); + } + } + + public void SendRegionHandshake(RegionInfo regionInfo) + { + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet"); + System.Text.Encoding _enc = System.Text.Encoding.ASCII; + RegionHandshakePacket handshake = new RegionHandshakePacket(); + + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details"); + handshake.RegionInfo.BillableFactor = 0; + handshake.RegionInfo.IsEstateManager = false; + handshake.RegionInfo.TerrainHeightRange00 = regionInfo.TerrainHeightRange00; + handshake.RegionInfo.TerrainHeightRange01 = regionInfo.TerrainHeightRange01; + handshake.RegionInfo.TerrainHeightRange10 = regionInfo.TerrainHeightRange10; + handshake.RegionInfo.TerrainHeightRange11 = regionInfo.TerrainHeightRange11; + handshake.RegionInfo.TerrainStartHeight00 = regionInfo.TerrainStartHeight00; + handshake.RegionInfo.TerrainStartHeight01 = regionInfo.TerrainStartHeight01; + handshake.RegionInfo.TerrainStartHeight10 = regionInfo.TerrainStartHeight10; + handshake.RegionInfo.TerrainStartHeight11 = regionInfo.TerrainStartHeight11; + handshake.RegionInfo.SimAccess = 13; + handshake.RegionInfo.WaterHeight = regionInfo.RegionWaterHeight; + uint regionFlags = 72458694; + if (regionInfo.RegionTerraform) + { + regionFlags -= 64; + } + handshake.RegionInfo.RegionFlags = regionFlags; + handshake.RegionInfo.SimName = _enc.GetBytes(regionInfo.RegionName + "\0"); + handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000"); + handshake.RegionInfo.TerrainBase0 = regionInfo.TerrainBase0; + handshake.RegionInfo.TerrainBase1 = regionInfo.TerrainBase1; + handshake.RegionInfo.TerrainBase2 = regionInfo.TerrainBase2; + handshake.RegionInfo.TerrainBase3 = regionInfo.TerrainBase3; + handshake.RegionInfo.TerrainDetail0 = regionInfo.TerrainDetail0; + handshake.RegionInfo.TerrainDetail1 = regionInfo.TerrainDetail1; + handshake.RegionInfo.TerrainDetail2 = regionInfo.TerrainDetail2; + handshake.RegionInfo.TerrainDetail3 = regionInfo.TerrainDetail3; + handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37"); + + OutPacket(handshake); + } + + public void SendAvatarData(RegionInfo regionInfo, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos) + { + 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 = regionInfo.RegionHandle; + objupdate.RegionData.TimeDilation = 64096; + objupdate.ObjectData = new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[1]; + objupdate.ObjectData[0] = this.CreateDefaultAvatarPacket(); + //give this avatar object a local id and assign the user a name + + objupdate.ObjectData[0].ID = avatarLocalID; + objupdate.ObjectData[0].FullID = avatarID; + objupdate.ObjectData[0].NameValue = _enc.GetBytes("FirstName STRING RW SV " + firstName + "\nLastName STRING RW SV " + lastName + " \0"); + libsecondlife.LLVector3 pos2 = new LLVector3((float)Pos.X, (float)Pos.Y, (float)Pos.Z); + byte[] pb = pos2.GetBytes(); + Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); + + OutPacket(objupdate); + + } + + protected void SetDefaultPacketValues(ref ObjectUpdatePacket.ObjectDataBlock objdata) + { + objdata.PSBlock = new byte[0]; + objdata.ExtraParams = new byte[1]; + objdata.MediaURL = new byte[0]; + objdata.NameValue = new byte[0]; + objdata.Text = new byte[0]; + objdata.TextColor = new byte[4]; + objdata.JointAxisOrAnchor = new LLVector3(0, 0, 0); + objdata.JointPivot = new LLVector3(0, 0, 0); + objdata.Material = 4; + objdata.TextureAnim = new byte[0]; + objdata.Sound = LLUUID.Zero; + LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); + objdata.TextureEntry = ntex.ToBytes(); + objdata.State = 0; + objdata.Data = new byte[0]; + + objdata.ObjectData = new byte[76]; + objdata.ObjectData[15] = 128; + objdata.ObjectData[16] = 63; + objdata.ObjectData[56] = 128; + objdata.ObjectData[61] = 102; + objdata.ObjectData[62] = 40; + objdata.ObjectData[63] = 61; + objdata.ObjectData[64] = 189; + } + + protected ObjectUpdatePacket.ObjectDataBlock CreateDefaultAvatarPacket() + { + libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock objdata = new ObjectUpdatePacket.ObjectDataBlock(); // new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock(data1, ref i); + + SetDefaultPacketValues(ref objdata); + objdata.UpdateFlags = 61 + (9 << 8) + (130 << 16) + (16 << 24); + objdata.PathCurve = 16; + objdata.ProfileCurve = 1; + objdata.PathScaleX = 100; + objdata.PathScaleY = 100; + objdata.ParentID = 0; + objdata.OwnerID = LLUUID.Zero; + objdata.Scale = new LLVector3(1, 1, 1); + objdata.PCode = 47; + System.Text.Encoding enc = System.Text.Encoding.ASCII; + libsecondlife.LLVector3 pos = new LLVector3(objdata.ObjectData, 16); + pos.X = 100f; + objdata.ID = 8880000; + objdata.NameValue = enc.GetBytes("FirstName STRING RW SV Test \nLastName STRING RW SV User \0"); + libsecondlife.LLVector3 pos2 = new LLVector3(100f, 100f, 23f); + //objdata.FullID=user.AgentID; + byte[] pb = pos.GetBytes(); + Array.Copy(pb, 0, objdata.ObjectData, 16, pb.Length); + + return objdata; + } #endregion } diff --git a/OpenSim/OpenSim.RegionServer/ClientView.cs b/OpenSim/OpenSim.RegionServer/ClientView.cs index 0419b7a..4d1634c 100644 --- a/OpenSim/OpenSim.RegionServer/ClientView.cs +++ b/OpenSim/OpenSim.RegionServer/ClientView.cs @@ -52,12 +52,16 @@ namespace OpenSim /// public partial class ClientView : ClientViewBase, IClientAPI { + public static TerrainManager TerrainManager; + protected static Dictionary PacketHandlers = new Dictionary(); //Global/static handlers for all clients protected Dictionary m_packetHandlers = new Dictionary(); //local handlers for this instance public LLUUID AgentID; public LLUUID SessionID; public LLUUID SecureSessionID = LLUUID.Zero; + public string FirstName; + public string LastName; public bool m_child = false; private UseCircuitCodePacket cirpack; public Thread ClientThread; @@ -112,13 +116,9 @@ namespace OpenSim { OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); this.m_child = false; - //this.m_world.RemoveViewerAgent(this); - this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); - OnChildAgentStatus(this.m_child); - //this.InitNewClient(); } public void DowngradeClient() @@ -126,8 +126,7 @@ namespace OpenSim OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child"); this.m_child = true; OnChildAgentStatus(this.m_child); - //this.m_world.RemoveViewerAgent(this); - //this.m_world.AddViewerAgent(this); + } public void KillClient() @@ -230,8 +229,8 @@ namespace OpenSim protected virtual void InitNewClient() { - OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); - // this.ClientAvatar = m_world.AddViewerAgent(this); + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); + OnNewAvatar(this, this.AgentID, this.m_child); } protected virtual void AuthUser() @@ -251,13 +250,14 @@ namespace OpenSim this.AgentID = cirpack.CircuitCode.ID; this.SessionID = cirpack.CircuitCode.SessionID; this.CircuitCode = cirpack.CircuitCode.Code; - InitNewClient(); - //this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; - // this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; + this.FirstName = sessionInfo.LoginInfo.First; + this.LastName = sessionInfo.LoginInfo.Last; + if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) { this.SecureSessionID = sessionInfo.LoginInfo.SecureSession; } + InitNewClient(); ClientLoop(); } diff --git a/OpenSim/OpenSim.RegionServer/RegionServerBase.cs b/OpenSim/OpenSim.RegionServer/RegionServerBase.cs index 7f18d34..3b9c6e0 100644 --- a/OpenSim/OpenSim.RegionServer/RegionServerBase.cs +++ b/OpenSim/OpenSim.RegionServer/RegionServerBase.cs @@ -46,7 +46,7 @@ namespace OpenSim protected List regionData = new List(); protected List m_localWorld = new List(); protected BaseHttpServer httpServer; - protected AuthenticateSessionsBase AuthenticateSessionsHandler; + protected List AuthenticateSessionsHandler = new List(); protected ConsoleBase m_console; diff --git a/OpenSim/OpenSim.RegionServer/VersionInfo.cs b/OpenSim/OpenSim.RegionServer/VersionInfo.cs index 38b6685..686024e 100644 --- a/OpenSim/OpenSim.RegionServer/VersionInfo.cs +++ b/OpenSim/OpenSim.RegionServer/VersionInfo.cs @@ -32,6 +32,6 @@ namespace OpenSim /// public class VersionInfo { - public static string Version = "0.2, SVN build "; + public static string Version = "0.3, SVN build "; } } diff --git a/OpenSim/OpenSim.World/Avatar.cs b/OpenSim/OpenSim.World/Avatar.cs index 551283a..77c18bf 100644 --- a/OpenSim/OpenSim.World/Avatar.cs +++ b/OpenSim/OpenSim.World/Avatar.cs @@ -7,6 +7,7 @@ using libsecondlife.Packets; using OpenSim.Physics.Manager; using OpenSim.Framework.Inventory; using OpenSim.Framework.Interfaces; +using OpenSim.Framework.Types; using Axiom.MathLib; namespace OpenSim.world @@ -40,13 +41,13 @@ namespace OpenSim.world public Avatar(IClientAPI TheClient, World world, string regionName, Dictionary clientThreads, ulong regionHandle, bool regionTerraform, ushort regionWater) { m_world = world; - // m_clientThreads = clientThreads; + // m_clientThreads = clientThreads; m_regionName = regionName; m_regionHandle = regionHandle; m_regionTerraform = regionTerraform; m_regionWaterHeight = regionWater; - OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Avatar.cs - Loading details from grid (DUMMY)"); + OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)"); ControllingClient = TheClient; localid = 8880000 + (this.m_world._localNumber++); Pos = ControllingClient.StartPos; @@ -65,6 +66,7 @@ namespace OpenSim.world this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); + /* //register for events ControllingClient.OnRequestWearables += new GenericCall(this.SendOurAppearance); ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance); @@ -74,6 +76,7 @@ namespace OpenSim.world ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); + * */ } public PhysicsActor PhysActor @@ -90,29 +93,29 @@ namespace OpenSim.world public void ChildStatusChange(bool status) { - + } public override void addForces() { - + } public static void SetupTemplate(string name) { - + } protected static void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata) { - + } public void CompleteMovement() { - + } public void HandleAgentUpdate(Packet pack) @@ -122,35 +125,36 @@ namespace OpenSim.world public void HandleUpdate(AgentUpdatePacket pack) { - + } //really really should be moved somewhere else (RegionInfo.cs ?) public void SendRegionHandshake(World regionInfo) { - + } public static void LoadAnims() { - + } public override void LandRenegerated() { - + } - } - public class NewForce - { - public float X; - public float Y; - public float Z; - public NewForce() + public class NewForce { + public float X; + public float Y; + public float Z; + public NewForce() + { + + } } } diff --git a/OpenSim/OpenSim.World/World.cs b/OpenSim/OpenSim.World/World.cs index 2580761..8c8c2a6 100644 --- a/OpenSim/OpenSim.World/World.cs +++ b/OpenSim/OpenSim.World/World.cs @@ -501,15 +501,14 @@ namespace OpenSim.world #region Add/Remove Avatar Methods - public override bool AddNewAvatar(IClientAPI agentClient, bool child) + public override void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child) { - - return false; + return ; } - public override bool RemoveAvatar(LLUUID agentID) + public override void RemoveAvatar(LLUUID agentID) { - return false; + return ; } #endregion diff --git a/OpenSim/OpenSim.World/WorldBase.cs b/OpenSim/OpenSim.World/WorldBase.cs index 33952bf..f8a4eda 100644 --- a/OpenSim/OpenSim.World/WorldBase.cs +++ b/OpenSim/OpenSim.World/WorldBase.cs @@ -137,14 +137,14 @@ namespace OpenSim.world #endregion #region Add/Remove Agent/Avatar - public virtual bool AddNewAvatar(IClientAPI remoteClient, bool child) + public virtual void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child) { - return false; + return ; } - public virtual bool RemoveAvatar(LLUUID agentID) + public virtual void RemoveAvatar(LLUUID agentID) { - return false; + return ; } #endregion diff --git a/OpenSim/OpenSim/OpenSimMain.cs b/OpenSim/OpenSim/OpenSimMain.cs index aa41aeb..22a5799 100644 --- a/OpenSim/OpenSim/OpenSimMain.cs +++ b/OpenSim/OpenSim/OpenSimMain.cs @@ -96,18 +96,12 @@ namespace OpenSim if (m_sandbox) { this.SetupLocalGridServers(); - //Authenticate Session Handler - AuthenticateSessionsLocal authen = new AuthenticateSessionsLocal(); - this.AuthenticateSessionsHandler = authen; this.checkServer = new CheckSumServer(12036); this.checkServer.ServerListener(); } else { this.SetupRemoteGridServers(); - //Authenticate Session Handler - AuthenticateSessionsRemote authen = new AuthenticateSessionsRemote(); - this.AuthenticateSessionsHandler = authen; } startuptime = DateTime.Now; @@ -129,7 +123,7 @@ namespace OpenSim { loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, this.user_accounts); loginServer.Startup(); - loginServer.SetSessionHandler(((AuthenticateSessionsLocal)this.AuthenticateSessionsHandler).AddNewSession); + loginServer.SetSessionHandler(((AuthenticateSessionsLocal)this.AuthenticateSessionsHandler[0]).AddNewSession); //sandbox mode with loginserver not using accounts httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod); @@ -187,18 +181,46 @@ namespace OpenSim World LocalWorld; UDPServer udpServer; RegionInfo regionDat = new RegionInfo(); + AuthenticateSessionsBase authenBase; string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Regions"); - string[] pluginFiles = Directory.GetFiles(path, "*.xml"); + string[] configFiles = Directory.GetFiles(path, "*.xml"); - for (int i = 0; i < pluginFiles.Length; i++) + if (configFiles.Length == 0) { - regionConfig = new XmlConfig(pluginFiles[i]); + string path2 = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Regions"); + string path3 = Path.Combine(path2, "default.xml"); + Console.WriteLine("Creating default region config file"); + //TODO create default region + IGenericConfig defaultConfig = new XmlConfig(path3); + defaultConfig.LoadData(); + defaultConfig.Commit(); + defaultConfig.Close(); + defaultConfig = null; + configFiles = Directory.GetFiles(path, "*.xml"); + } + + for (int i = 0; i < configFiles.Length; i++) + { + if (m_sandbox) + { + AuthenticateSessionsLocal authen = new AuthenticateSessionsLocal(); + this.AuthenticateSessionsHandler.Add(authen); + authenBase = authen; + } + else + { + AuthenticateSessionsRemote authen = new AuthenticateSessionsRemote(); + this.AuthenticateSessionsHandler.Add (authen); + authenBase = authen; + } + Console.WriteLine("Loading region config file"); + regionConfig = new XmlConfig(configFiles[i]); regionConfig.LoadData(); regionDat.InitConfig(this.m_sandbox, regionConfig); regionConfig.Close(); - udpServer = new UDPServer(regionDat.IPListenPort, this.AssetCache, this.InventoryCache, this.m_console, this.AuthenticateSessionsHandler); + udpServer = new UDPServer(regionDat.IPListenPort, this.AssetCache, this.InventoryCache, this.m_console, authenBase); m_udpServer.Add(udpServer); this.regionData.Add(regionDat); @@ -223,6 +245,8 @@ namespace OpenSim LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this.m_physicsEngine); LocalWorld.PhysScene.SetTerrain(LocalWorld.Terrain.getHeights1D()); LocalWorld.LoadPrimsFromStorage(); + + LocalWorld.StartTimer(); } } @@ -234,7 +258,7 @@ namespace OpenSim { // we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server - httpServer.AddXmlRPCHandler("expect_user", ((AuthenticateSessionsRemote)this.AuthenticateSessionsHandler).ExpectUser); + httpServer.AddXmlRPCHandler("expect_user", ((AuthenticateSessionsRemote)this.AuthenticateSessionsHandler[0]).ExpectUser); httpServer.AddXmlRPCHandler("agent_crossing", delegate(XmlRpcRequest request) @@ -248,7 +272,7 @@ namespace OpenSim agent_data.circuitcode = circuitcode; agent_data.startpos = new LLVector3(Single.Parse((string)requestData["pos_x"]), Single.Parse((string)requestData["pos_y"]), Single.Parse((string)requestData["pos_z"])); - AuthenticateSessionsHandler.UpdateAgentData(agent_data); + AuthenticateSessionsHandler[0].UpdateAgentData(agent_data); return new XmlRpcResponse(); }); -- cgit v1.1