From 39842eb4af3b5a8c52d56c0f7f05ad54f0651bb0 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Wed, 16 Sep 2009 15:45:40 -0700 Subject: * Adding Scale to EntityBase * Fixing the incorrect initialization of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity --- OpenSim/Region/Framework/Scenes/EntityBase.cs | 18 ++++++++----- OpenSim/Region/Framework/Scenes/Scene.cs | 4 +-- .../Region/Framework/Scenes/SceneObjectGroup.cs | 30 +++++++++++++++++----- 3 files changed, 36 insertions(+), 16 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs index 00c99c5..3ef4144 100644 --- a/OpenSim/Region/Framework/Scenes/EntityBase.cs +++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs @@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Scenes set { m_velocity = value; } } - protected Quaternion m_rotation = new Quaternion(0f, 0f, 1f, 0f); + protected Quaternion m_rotation; public virtual Quaternion Rotation { @@ -102,6 +102,14 @@ namespace OpenSim.Region.Framework.Scenes set { m_rotation = value; } } + protected Vector3 m_scale; + + public virtual Vector3 Scale + { + get { return m_scale; } + set { m_scale = value; } + } + protected uint m_localId; public virtual uint LocalId @@ -115,13 +123,9 @@ namespace OpenSim.Region.Framework.Scenes /// public EntityBase() { - m_uuid = UUID.Zero; - - m_pos = Vector3.Zero; - m_velocity = Vector3.Zero; - Rotation = Quaternion.Identity; + m_rotation = Quaternion.Identity; + m_scale = Vector3.One; m_name = "(basic entity)"; - m_rotationalvelocity = Vector3.Zero; } /// diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index d8478a2..5b3062b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -2296,8 +2296,8 @@ namespace OpenSim.Region.Framework.Scenes "to avatar {0} at position {1}", sp.UUID.ToString(), grp.AbsolutePosition); AttachObject(sp.ControllingClient, - grp.LocalId, (uint)0, - grp.GroupRotation, + grp.LocalId, 0, + grp.Rotation, grp.AbsolutePosition, false); RootPrim.RemFlag(PrimFlags.TemporaryOnRez); grp.SendGroupFullUpdate(); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 3c17bbe..0cf08b5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -204,9 +204,22 @@ namespace OpenSim.Region.Framework.Scenes get { return m_parts.Count; } } - public Quaternion GroupRotation + public override Quaternion Rotation { get { return m_rootPart.RotationOffset; } + set { m_rootPart.RotationOffset = value; } + } + + public override Vector3 Scale + { + get { return m_rootPart.Scale; } + set { m_rootPart.Scale = value; } + } + + public override Vector3 Velocity + { + get { return m_rootPart.Velocity; } + set { m_rootPart.Velocity = value; } } public UUID GroupID @@ -523,7 +536,7 @@ namespace OpenSim.Region.Framework.Scenes // Temporary commented to stop compiler warning //Vector3 partPosition = // new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z); - Quaternion parentrotation = GroupRotation; + Quaternion parentrotation = Rotation; // Telling the prim to raytrace. //EntityIntersection inter = part.TestIntersection(hRay, parentrotation); @@ -1866,14 +1879,17 @@ namespace OpenSim.Region.Framework.Scenes checkAtTargets(); - if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) - || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) - || (Math.Abs(lastPhysGroupRot.Y - GroupRotation.Y) > 0.1) - || (Math.Abs(lastPhysGroupRot.Z - GroupRotation.Z) > 0.1))) + Quaternion rot = Rotation; + + if (UsePhysics && + ((Math.Abs(lastPhysGroupRot.W - rot.W) > 0.1f) + || (Math.Abs(lastPhysGroupRot.X - rot.X) > 0.1f) + || (Math.Abs(lastPhysGroupRot.Y - rot.Y) > 0.1f) + || (Math.Abs(lastPhysGroupRot.Z - rot.Z) > 0.1f))) { m_rootPart.UpdateFlag = 1; - lastPhysGroupRot = GroupRotation; + lastPhysGroupRot = rot; } foreach (SceneObjectPart part in m_parts.Values) -- cgit v1.1 From 56edbe9b60e5ed5f1388e2d1d4d2a0d82cdeaf6d Mon Sep 17 00:00:00 2001 From: nlin Date: Fri, 18 Sep 2009 11:26:52 +0900 Subject: Alternate algorithm for fixing avatar capsule tilt (Mantis #2905) Eliminate dynamic capsule wobble. Instead introduce a small, fixed tilt, and allow the tilt to rotate with the avatar while moving; the tilt always faces away from the direction of avatar movement. The rotation while moving should eliminate direction-dependent behavior (e.g. only being able to climb on top of prims from certain directions). Falling animation is still too frequently invoked. Ideally the tilt should be completely eliminated, but doing so currently causes the avatar to fall through the terrain. --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 23fe2d3..6772f75 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2269,7 +2269,7 @@ namespace OpenSim.Region.Framework.Scenes { //Record the time we enter this state so we know whether to "land" or not m_animPersistUntil = DateTime.Now.Ticks; - return "FALLDOWN"; + return "FALLDOWN"; // this falling animation is invoked too frequently when capsule tilt correction is used - why? } } } -- cgit v1.1 From 4f3975f04e7bbaf7b7b8e286831714240ced5e6d Mon Sep 17 00:00:00 2001 From: Rob Smart Date: Fri, 18 Sep 2009 14:11:38 +0100 Subject: addition of a new script function osSetParcelSIPAddress(string SIPAddress), now including iVoiceModule This patch allows the land owner to dynamically set the SIP address of a particular land parcel from script. This allows predetermined SIP addresses to be used, making it easier to allow non OpenSim users to join a regions voice channel. Signed-off-by: dr scofield (aka dirk husemann) --- .../Region/Framework/Interfaces/IVoiceModule.cs | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 OpenSim/Region/Framework/Interfaces/IVoiceModule.cs (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs new file mode 100644 index 0000000..2e555fa --- /dev/null +++ b/OpenSim/Region/Framework/Interfaces/IVoiceModule.cs @@ -0,0 +1,45 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +using System.IO; +using OpenMetaverse; + +namespace OpenSim.Region.Framework.Interfaces +{ + public interface IVoiceModule + { + + /// + /// Set the SIP url to be used by a parcel, this will allow manual setting of a SIP address + /// for a particular piece of land, allowing region owners to use preconfigured SIP conference channels. + /// This is used by osSetParcelSIPAddress + /// + void setLandSIPAddress(string SIPAddress,UUID GlobalID); + + } +} -- cgit v1.1 From 730458be1f8c74da1c112df36ec54233b30caed0 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 25 Sep 2009 14:31:29 +0100 Subject: minor: remove some mono compiler warnings --- .../Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs index 5d65f98..62efd60 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs @@ -47,8 +47,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // This maps between inventory server urls and inventory server clients - private Dictionary m_inventoryServers = new Dictionary(); - +// private Dictionary m_inventoryServers = new Dictionary(); private Scene m_scene; #endregion @@ -72,13 +71,13 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid return null; } - private string UserInventoryURL(UUID userID) - { - CachedUserInfo uinfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(userID); - if (uinfo != null) - return (uinfo.UserProfile.UserInventoryURI == "") ? null : uinfo.UserProfile.UserInventoryURI; - return null; - } +// private string UserInventoryURL(UUID userID) +// { +// CachedUserInfo uinfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(userID); +// if (uinfo != null) +// return (uinfo.UserProfile.UserInventoryURI == "") ? null : uinfo.UserProfile.UserInventoryURI; +// return null; +// } private bool IsLocalUser(UUID userID) { -- cgit v1.1 From 902279f0fda655c8542b3e7ff7a8769bb3aff1a2 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 25 Sep 2009 08:39:09 -0700 Subject: Moved the property RegionLoginsEnabled from GridComms to the Scene -- not the scene itself but SceneCommunicationService, for now. Beginning to clear the code from using Region.Communications. grid stuff. --- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 204c319..56cd87d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -63,6 +63,13 @@ namespace OpenSim.Region.Framework.Scenes protected List m_agentsInTransit; + public bool RegionLoginsEnabled + { + get { return m_regionLoginsEnabled; } + set { m_regionLoginsEnabled = value; } + } + private bool m_regionLoginsEnabled = false; + /// /// An agent is crossing into this region /// -- cgit v1.1 From 0a0b532270d7cc952648b99ed7ab7ec3b0f99676 Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Fri, 25 Sep 2009 15:31:19 -0400 Subject: * Fixes teleporting within megaregions on HG enabled regions. You can teleport around now. (but it still doesn't fix the inconsistent attachment state when teleporting into region slots that are not the south west region on megaregions) --- .../Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs | 10 ++++++++-- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs index 5c99d73..efc644d 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs @@ -77,7 +77,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid if (regionHandle == m_regionInfo.RegionHandle) { // Teleport within the same region - if (position.X < 0 || position.X > Constants.RegionSize || position.Y < 0 || position.Y > Constants.RegionSize || position.Z < 0) + if (IsOutsideRegion(avatar.Scene, position) || position.Z < 0) { Vector3 emergencyPos = new Vector3(128, 128, 128); @@ -89,7 +89,13 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid // TODO: Get proper AVG Height float localAVHeight = 1.56f; - float posZLimit = (float)avatar.Scene.Heightmap[(int)position.X, (int)position.Y]; + float posZLimit = 22; + + if (position.X > 0 && position.X <= (int)Constants.RegionSize && position.Y > 0 && position.Y <= (int)Constants.RegionSize) + { + posZLimit = (float) avatar.Scene.Heightmap[(int) position.X, (int) position.Y]; + } + float newPosZ = posZLimit + localAVHeight; if (posZLimit >= (position.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ))) { diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 56cd87d..5f2333e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -1170,7 +1170,7 @@ namespace OpenSim.Region.Framework.Scenes } } - private bool IsOutsideRegion(Scene s, Vector3 pos) + protected bool IsOutsideRegion(Scene s, Vector3 pos) { if (s.TestBorderCross(pos,Cardinals.N)) -- cgit v1.1 From 2bb513329ac98914ff13a2817aa83b60d85603d9 Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Fri, 25 Sep 2009 16:06:04 -0400 Subject: * Does a full battery of tests to ensure that the object isn't an attachment before border crossing * Fixes 'Inconsistent Attachment State' when teleporting into another region besides the SW most region slot on a MegaRegion. * Fixes a host of other unintended attachment border cross edge cases that lead to Inconsistent attachment state. --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 3c17bbe..ad5d56f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -245,6 +245,11 @@ namespace OpenSim.Region.Framework.Scenes } } + private bool IsAttachmentCheckFull() + { + return (IsAttachment || (m_rootPart.Shape.PCode == 9 && m_rootPart.Shape.State != 0)); + } + /// /// The absolute position of this scene object in the scene /// @@ -257,7 +262,7 @@ namespace OpenSim.Region.Framework.Scenes if ((m_scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || m_scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W) || m_scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || m_scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S)) - && !IsAttachment) + && !IsAttachmentCheckFull()) { m_scene.CrossPrimGroupIntoNewRegion(val, this, true); } -- cgit v1.1 From 5757afe7665543e8b3ed4a322a7d6e095dafcdb3 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 26 Sep 2009 07:48:21 -0700 Subject: First pass at the heart surgery for grid services. Compiles and runs minimally. A few bugs to catch now. --- .../Framework/Scenes/Hypergrid/HGHyperlink.cs | 232 ----------------- .../Region/Framework/Scenes/Hypergrid/HGScene.cs | 3 +- .../Hypergrid/HGSceneCommunicationService.cs | 6 +- OpenSim/Region/Framework/Scenes/Scene.cs | 114 +++++---- .../Framework/Scenes/SceneCommunicationService.cs | 275 ++++++++------------- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 +- 6 files changed, 181 insertions(+), 455 deletions(-) delete mode 100644 OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs deleted file mode 100644 index a576feb..0000000 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Net; -using System.Reflection; -using log4net; -using OpenMetaverse; -using OpenSim.Framework; - -namespace OpenSim.Region.Framework.Scenes.Hypergrid -{ - public class HGHyperlink - { - private static readonly ILog m_log = - LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private static Random random = new Random(); - - public static RegionInfo TryLinkRegionToCoords(Scene m_scene, IClientAPI client, string mapName, uint xloc, uint yloc) - { - string host = "127.0.0.1"; - string portstr; - string regionName = ""; - uint port = 9000; - string[] parts = mapName.Split(new char[] { ':' }); - if (parts.Length >= 1) - { - host = parts[0]; - } - if (parts.Length >= 2) - { - portstr = parts[1]; - if (!UInt32.TryParse(portstr, out port)) - regionName = parts[1]; - } - // always take the last one - if (parts.Length >= 3) - { - regionName = parts[2]; - } - - // Sanity check. Don't ever link to this sim. - IPAddress ipaddr = null; - try - { - ipaddr = Util.GetHostFromDNS(host); - } - catch { } - - if ((ipaddr != null) && - !((m_scene.RegionInfo.ExternalEndPoint.Address.Equals(ipaddr)) && (m_scene.RegionInfo.HttpPort == port))) - { - RegionInfo regInfo; - bool success = TryCreateLink(m_scene, client, xloc, yloc, regionName, port, host, out regInfo); - if (success) - { - regInfo.RegionName = mapName; - return regInfo; - } - } - - return null; - } - - public static RegionInfo TryLinkRegion(Scene m_scene, IClientAPI client, string mapName) - { - uint xloc = (uint)(random.Next(0, Int16.MaxValue)); - return TryLinkRegionToCoords(m_scene, client, mapName, xloc, 0); - } - - public static bool TryCreateLink(Scene m_scene, IClientAPI client, uint xloc, uint yloc, - string externalRegionName, uint externalPort, string externalHostName, out RegionInfo regInfo) - { - m_log.DebugFormat("[HGrid]: Link to {0}:{1}, in {2}-{3}", externalHostName, externalPort, xloc, yloc); - - regInfo = new RegionInfo(); - regInfo.RegionName = externalRegionName; - regInfo.HttpPort = externalPort; - regInfo.ExternalHostName = externalHostName; - regInfo.RegionLocX = xloc; - regInfo.RegionLocY = yloc; - - try - { - regInfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)0); - } - catch (Exception e) - { - m_log.Warn("[HGrid]: Wrong format for link-region: " + e.Message); - return false; - } - regInfo.RemotingAddress = regInfo.ExternalEndPoint.Address.ToString(); - - // Finally, link it - try - { - m_scene.CommsManager.GridService.RegisterRegion(regInfo); - } - catch (Exception e) - { - m_log.Warn("[HGrid]: Unable to link region: " + e.Message); - return false; - } - - uint x, y; - if (!Check4096(m_scene, regInfo, out x, out y)) - { - m_scene.CommsManager.GridService.DeregisterRegion(regInfo); - if (client != null) - client.SendAlertMessage("Region is too far (" + x + ", " + y + ")"); - m_log.Info("[HGrid]: Unable to link, region is too far (" + x + ", " + y + ")"); - return false; - } - - if (!CheckCoords(m_scene.RegionInfo.RegionLocX, m_scene.RegionInfo.RegionLocY, x, y)) - { - m_scene.CommsManager.GridService.DeregisterRegion(regInfo); - if (client != null) - client.SendAlertMessage("Region has incompatible coordinates (" + x + ", " + y + ")"); - m_log.Info("[HGrid]: Unable to link, region has incompatible coordinates (" + x + ", " + y + ")"); - return false; - } - - m_log.Debug("[HGrid]: link region succeeded"); - return true; - } - - public static bool TryUnlinkRegion(Scene m_scene, string mapName) - { - RegionInfo regInfo = null; - if (mapName.Contains(":")) - { - string host = "127.0.0.1"; - //string portstr; - //string regionName = ""; - uint port = 9000; - string[] parts = mapName.Split(new char[] { ':' }); - if (parts.Length >= 1) - { - host = parts[0]; - } -// if (parts.Length >= 2) -// { -// portstr = parts[1]; -// if (!UInt32.TryParse(portstr, out port)) -// regionName = parts[1]; -// } - // always take the last one -// if (parts.Length >= 3) -// { -// regionName = parts[2]; -// } - regInfo = m_scene.CommsManager.GridService.RequestNeighbourInfo(host, port); - } - else - { - regInfo = m_scene.CommsManager.GridService.RequestNeighbourInfo(mapName); - } - if (regInfo != null) - { - return m_scene.CommsManager.GridService.DeregisterRegion(regInfo); - } - else - { - m_log.InfoFormat("[HGrid]: Region {0} not found", mapName); - return false; - } - } - - /// - /// Cope with this viewer limitation. - /// - /// - /// - public static bool Check4096(Scene m_scene, RegionInfo regInfo, out uint x, out uint y) - { - ulong realHandle; - if (UInt64.TryParse(regInfo.regionSecret, out realHandle)) - { - Utils.LongToUInts(realHandle, out x, out y); - x = x / Constants.RegionSize; - y = y / Constants.RegionSize; - - if ((Math.Abs((int)m_scene.RegionInfo.RegionLocX - (int)x) >= 4096) || - (Math.Abs((int)m_scene.RegionInfo.RegionLocY - (int)y) >= 4096)) - { - return false; - } - return true; - } - else - { - m_scene.CommsManager.GridService.RegisterRegion(regInfo); - m_log.Debug("[HGrid]: Gnomes. Region deregistered."); - x = y = 0; - return false; - } - } - - public static bool CheckCoords(uint thisx, uint thisy, uint x, uint y) - { - if ((thisx == x) && (thisy == y)) - return false; - return true; - } - - } -} diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs index bf55df7..b1981b6 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs @@ -29,6 +29,7 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using TPFlags = OpenSim.Framework.Constants.TeleportFlags; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes.Hypergrid { @@ -50,7 +51,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid if (UserProfile != null) { - RegionInfo regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegion); + GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, UserProfile.HomeRegionID); //if (regionInfo != null) //{ // UserProfile.HomeRegionID = regionInfo.RegionID; diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs index 5c99d73..e8e5e78 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs @@ -38,6 +38,7 @@ using OpenSim.Framework.Communications; using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Capabilities; using OpenSim.Region.Framework.Interfaces; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes.Hypergrid { @@ -106,7 +107,10 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid } else { - RegionInfo reg = RequestNeighbouringRegionInfo(regionHandle); + uint x = 0, y = 0; + Utils.LongToUInts(regionHandle, out x, out y); + GridRegion reg = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y); + if (reg != null) { diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index d8478a2..8990f29 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -49,6 +49,7 @@ using OpenSim.Region.Framework.Scenes.Serialization; using OpenSim.Region.Physics.Manager; using Timer=System.Timers.Timer; using TPFlags = OpenSim.Framework.Constants.TeleportFlags; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { @@ -193,6 +194,26 @@ namespace OpenSim.Region.Framework.Scenes } } + protected IGridService m_GridService = null; + + public IGridService GridService + { + get + { + if (m_GridService == null) + { + m_GridService = RequestModuleInterface(); + + if (m_GridService == null) + { + throw new Exception("No IGridService available. This could happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. Please also check that you have the correct version of your inventory service dll. Sometimes old versions of this dll will still exist. Do a clean checkout and re-create the opensim.ini from the opensim.ini.example."); + } + } + + return m_GridService; + } + } + protected IXMLRPC m_xmlrpcModule; protected IWorldComm m_worldCommModule; protected IAvatarFactory m_AvatarFactory; @@ -1336,24 +1357,31 @@ namespace OpenSim.Region.Framework.Scenes RegisterCommsEvents(); // These two 'commands' *must be* next to each other or sim rebooting fails. - m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo); + //m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo); + + GridRegion region = new GridRegion(RegionInfo); + bool success = GridService.RegisterRegion(RegionInfo.ScopeID, region); + if (!success) + throw new Exception("Can't register with grid"); + + m_sceneGridService.SetScene(this); m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface(), RegionInfo); - Dictionary dGridSettings = m_sceneGridService.GetGridSettings(); + //Dictionary dGridSettings = m_sceneGridService.GetGridSettings(); - if (dGridSettings.ContainsKey("allow_forceful_banlines")) - { - if (dGridSettings["allow_forceful_banlines"] != "TRUE") - { - m_log.Info("[GRID]: Grid is disabling forceful parcel banlists"); - EventManager.TriggerSetAllowForcefulBan(false); - } - else - { - m_log.Info("[GRID]: Grid is allowing forceful parcel banlists"); - EventManager.TriggerSetAllowForcefulBan(true); - } - } + //if (dGridSettings.ContainsKey("allow_forceful_banlines")) + //{ + // if (dGridSettings["allow_forceful_banlines"] != "TRUE") + // { + // m_log.Info("[GRID]: Grid is disabling forceful parcel banlists"); + // EventManager.TriggerSetAllowForcefulBan(false); + // } + // else + // { + // m_log.Info("[GRID]: Grid is allowing forceful parcel banlists"); + // EventManager.TriggerSetAllowForcefulBan(true); + // } + //} } /// @@ -2717,10 +2745,12 @@ namespace OpenSim.Region.Framework.Scenes UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(agentId); if (UserProfile != null) { - RegionInfo regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegionID); + GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, UserProfile.HomeRegionID); if (regionInfo == null) { - regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegion); + uint x = 0, y = 0; + Utils.LongToUInts(UserProfile.HomeRegion, out x, out y); + regionInfo = GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y); if (regionInfo != null) // home region can be away temporarily, too { UserProfile.HomeRegionID = regionInfo.RegionID; @@ -3111,7 +3141,11 @@ namespace OpenSim.Region.Framework.Scenes if (m_interregionCommsIn != null) m_interregionCommsIn.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; + // this does nothing; should be removed m_sceneGridService.Close(); + + if (!GridService.DeregisterRegion(m_regInfo.RegionID)) + m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName); } /// @@ -3557,30 +3591,6 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Requests information about this region from gridcomms - /// - /// - /// - public RegionInfo RequestNeighbouringRegionInfo(ulong regionHandle) - { - return m_sceneGridService.RequestNeighbouringRegionInfo(regionHandle); - } - - /// - /// Requests textures for map from minimum region to maximum region in world cordinates - /// - /// - /// - /// - /// - /// - public void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY) - { - m_log.DebugFormat("[MAPBLOCK]: {0}-{1}, {2}-{3}", minX, minY, maxX, maxY); - m_sceneGridService.RequestMapBlocks(remoteClient, minX, minY, maxX, maxY); - } - - /// /// Tries to teleport agent to other region. /// /// @@ -3591,7 +3601,7 @@ namespace OpenSim.Region.Framework.Scenes public void RequestTeleportLocation(IClientAPI remoteClient, string regionName, Vector3 position, Vector3 lookat, uint teleportFlags) { - RegionInfo regionInfo = m_sceneGridService.RequestClosestRegion(regionName); + GridRegion regionInfo = GridService.GetRegionByName(UUID.Zero, regionName); if (regionInfo == null) { // can't find the region: Tell viewer and abort @@ -3680,7 +3690,7 @@ namespace OpenSim.Region.Framework.Scenes /// public void RequestTeleportLandmark(IClientAPI remoteClient, UUID regionID, Vector3 position) { - RegionInfo info = CommsManager.GridService.RequestNeighbourInfo(regionID); + GridRegion info = GridService.GetRegionByUUID(UUID.Zero, regionID); if (info == null) { @@ -3864,10 +3874,6 @@ namespace OpenSim.Region.Framework.Scenes return LandChannel.GetLandObject((int)x, (int)y).landData; } - public RegionInfo RequestClosestRegion(string name) - { - return m_sceneGridService.RequestClosestRegion(name); - } #endregion @@ -4178,14 +4184,18 @@ namespace OpenSim.Region.Framework.Scenes public void RegionHandleRequest(IClientAPI client, UUID regionID) { - RegionInfo info; + ulong handle = 0; if (regionID == RegionInfo.RegionID) - info = RegionInfo; + handle = RegionInfo.RegionHandle; else - info = CommsManager.GridService.RequestNeighbourInfo(regionID); + { + GridRegion r = GridService.GetRegionByUUID(UUID.Zero, regionID); + if (r != null) + handle = r.RegionHandle; + } - if (info != null) - client.SendRegionHandle(regionID, info.RegionHandle); + if (handle != 0) + client.SendRegionHandle(regionID, handle); } public void TerrainUnAcked(IClientAPI client, int patchX, int patchY) diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 56cd87d..60e89e0 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -41,6 +41,7 @@ using OpenSim.Framework.Capabilities; using OpenSim.Region.Framework.Interfaces; using OpenSim.Services.Interfaces; using OSD = OpenMetaverse.StructuredData.OSD; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { @@ -58,6 +59,7 @@ namespace OpenSim.Region.Framework.Scenes protected CommunicationsManager m_commsProvider; protected IInterregionCommsOut m_interregionCommsOut; protected RegionInfo m_regionInfo; + protected Scene m_scene; protected RegionCommsListener regionCommsHost; @@ -131,6 +133,13 @@ namespace OpenSim.Region.Framework.Scenes m_agentsInTransit = new List(); } + public void SetScene(Scene s) + { + m_scene = s; + m_regionInfo = s.RegionInfo; + m_interregionCommsOut = m_scene.RequestModuleInterface(); + } + /// /// Register a region with the grid /// @@ -138,40 +147,30 @@ namespace OpenSim.Region.Framework.Scenes /// Thrown if region registration fails. public void RegisterRegion(IInterregionCommsOut comms_out, RegionInfo regionInfos) { - m_interregionCommsOut = comms_out; + //m_interregionCommsOut = comms_out; - m_regionInfo = regionInfos; - m_commsProvider.GridService.gdebugRegionName = regionInfos.RegionName; - regionCommsHost = m_commsProvider.GridService.RegisterRegion(m_regionInfo); + //m_regionInfo = regionInfos; + //m_commsProvider.GridService.gdebugRegionName = regionInfos.RegionName; + //regionCommsHost = m_commsProvider.GridService.RegisterRegion(m_regionInfo); - if (regionCommsHost != null) - { - //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got" + regionCommsHost.ToString()); - - regionCommsHost.debugRegionName = regionInfos.RegionName; - regionCommsHost.OnExpectPrim += IncomingPrimCrossing; - regionCommsHost.OnExpectUser += NewUserConnection; - regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing; - regionCommsHost.OnCloseAgentConnection += CloseConnection; - regionCommsHost.OnRegionUp += newRegionUp; - regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate; - regionCommsHost.OnLogOffUser += GridLogOffUser; - regionCommsHost.OnGetLandData += FetchLandData; - } - else - { - //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got null"); - } - } - - /// - /// Returns a region with the name closest to string provided - /// - /// Partial Region Name for matching - /// Region Information for the region - public RegionInfo RequestClosestRegion(string name) - { - return m_commsProvider.GridService.RequestClosestRegion(name); + //if (regionCommsHost != null) + //{ + // //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got" + regionCommsHost.ToString()); + + // regionCommsHost.debugRegionName = regionInfos.RegionName; + // regionCommsHost.OnExpectPrim += IncomingPrimCrossing; + // regionCommsHost.OnExpectUser += NewUserConnection; + // regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing; + // regionCommsHost.OnCloseAgentConnection += CloseConnection; + // regionCommsHost.OnRegionUp += newRegionUp; + // regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate; + // regionCommsHost.OnLogOffUser += GridLogOffUser; + // regionCommsHost.OnGetLandData += FetchLandData; + //} + //else + //{ + // //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got null"); + //} } /// @@ -180,30 +179,31 @@ namespace OpenSim.Region.Framework.Scenes /// public void Close() { - if (regionCommsHost != null) - { - regionCommsHost.OnLogOffUser -= GridLogOffUser; - regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate; - regionCommsHost.OnRegionUp -= newRegionUp; - regionCommsHost.OnExpectUser -= NewUserConnection; - regionCommsHost.OnExpectPrim -= IncomingPrimCrossing; - regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing; - regionCommsHost.OnCloseAgentConnection -= CloseConnection; - regionCommsHost.OnGetLandData -= FetchLandData; + + //if (regionCommsHost != null) + //{ + // regionCommsHost.OnLogOffUser -= GridLogOffUser; + // regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate; + // regionCommsHost.OnRegionUp -= newRegionUp; + // regionCommsHost.OnExpectUser -= NewUserConnection; + // regionCommsHost.OnExpectPrim -= IncomingPrimCrossing; + // regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing; + // regionCommsHost.OnCloseAgentConnection -= CloseConnection; + // regionCommsHost.OnGetLandData -= FetchLandData; - try - { - m_commsProvider.GridService.DeregisterRegion(m_regionInfo); - } - catch (Exception e) - { - m_log.ErrorFormat( - "[GRID]: Deregistration of region {0} from the grid failed - {1}. Continuing", - m_regionInfo.RegionName, e); - } + // try + // { + // m_commsProvider.GridService.DeregisterRegion(m_regionInfo); + // } + // catch (Exception e) + // { + // m_log.ErrorFormat( + // "[GRID]: Deregistration of region {0} from the grid failed - {1}. Continuing", + // m_regionInfo.RegionName, e); + // } - regionCommsHost = null; - } + // regionCommsHost = null; + //} } #region CommsManager Event handlers @@ -337,7 +337,7 @@ namespace OpenSim.Region.Framework.Scenes #region Inform Client of Neighbours private delegate void InformClientOfNeighbourDelegate( - ScenePresence avatar, AgentCircuitData a, SimpleRegionInfo reg, IPEndPoint endPoint, bool newAgent); + ScenePresence avatar, AgentCircuitData a, GridRegion reg, IPEndPoint endPoint, bool newAgent); private void InformClientOfNeighbourCompleted(IAsyncResult iar) { @@ -355,7 +355,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// /// - private void InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, SimpleRegionInfo reg, + private void InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, GridRegion reg, IPEndPoint endPoint, bool newAgent) { // Let's wait just a little to give time to originating regions to catch up with closing child agents @@ -371,11 +371,15 @@ namespace OpenSim.Region.Framework.Scenes string capsPath = "http://" + reg.ExternalHostName + ":" + reg.HttpPort + "/CAPS/" + a.CapsPath + "0000/"; + m_log.DebugFormat("[XXX] CAPS = {0}", capsPath); + m_log.DebugFormat("[XXX] ExternalEndPoint = {0}", endPoint.ToString()); + string reason = String.Empty; //bool regionAccepted = m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, a); bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, out reason); + m_log.DebugFormat("[XXX] Here 1 {0}", regionAccepted); if (regionAccepted && newAgent) { @@ -390,6 +394,7 @@ namespace OpenSim.Region.Framework.Scenes } #endregion + m_log.DebugFormat("[XXX] HERE 2"); eq.EnableSimulator(reg.RegionHandle, endPoint, avatar.UUID); eq.EstablishAgentCommunication(avatar.UUID, endPoint, capsPath); m_log.DebugFormat("[CAPS]: Sending new CAPS seed url {0} to client {1} in region {2}", @@ -407,17 +412,7 @@ namespace OpenSim.Region.Framework.Scenes } - public void RequestNeighbors(RegionInfo region) - { - // List neighbours = - m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); - //IPEndPoint blah = new IPEndPoint(); - - //blah.Address = region.RemotingAddress; - //blah.Port = region.RemotingPort; - } - - public List RequestNeighbors(Scene pScene, uint pRegionLocX, uint pRegionLocY) + public List RequestNeighbours(Scene pScene, uint pRegionLocX, uint pRegionLocY) { Border[] northBorders = pScene.NorthBorders.ToArray(); Border[] southBorders = pScene.SouthBorders.ToArray(); @@ -427,50 +422,34 @@ namespace OpenSim.Region.Framework.Scenes // Legacy one region. Provided for simplicity while testing the all inclusive method in the else statement. if (northBorders.Length <= 1 && southBorders.Length <= 1 && eastBorders.Length <= 1 && westBorders.Length <= 1) { - return m_commsProvider.GridService.RequestNeighbours(pRegionLocX, pRegionLocY); + return m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID); } else { Vector2 extent = Vector2.Zero; - for (int i=0;i extent.X) ? eastBorders[i].BorderLine.Z : extent.X; } - for (int i=0;i extent.Y) ? northBorders[i].BorderLine.Z : extent.Y; } - List neighbourList = new List(); - // Loss of fraction on purpose extent.X = ((int)extent.X / (int)Constants.RegionSize) + 1; extent.Y = ((int)extent.Y / (int)Constants.RegionSize) + 1; - int startX = (int) pRegionLocX - 1; - int startY = (int) pRegionLocY - 1; + int startX = (int)(pRegionLocX - 1) * (int)Constants.RegionSize; + int startY = (int)(pRegionLocY - 1) * (int)Constants.RegionSize; - int endX = (int) pRegionLocX + (int)extent.X; - int endY = (int) pRegionLocY + (int)extent.Y; + int endX = ((int)pRegionLocX + (int)extent.X) * (int)Constants.RegionSize; + int endY = ((int)pRegionLocY + (int)extent.Y) * (int)Constants.RegionSize; - for (int i=startX;i neighbours = m_scene.GridService.GetRegionRange(m_regionInfo.ScopeID, startX, endX, startY, endY); + neighbours.RemoveAll(delegate(GridRegion r) { return r.RegionID == m_regionInfo.RegionID; }); + + return neighbours; //SimpleRegionInfo regionData = m_commsProvider.GridService.RequestNeighbourInfo() //return m_commsProvider.GridService.RequestNeighbours(pRegionLocX, pRegionLocY); } @@ -482,23 +461,24 @@ namespace OpenSim.Region.Framework.Scenes /// public void EnableNeighbourChildAgents(ScenePresence avatar, List lstneighbours) { - List neighbours = new List(); + //List neighbours = new List(); + List neighbours = new List(); - //m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); - for (int i = 0; i < lstneighbours.Count; i++) - { - // We don't want to keep sending to regions that consistently fail on comms. - if (!(lstneighbours[i].commFailTF)) - { - neighbours.Add(new SimpleRegionInfo(lstneighbours[i])); - } - } + ////m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); + //for (int i = 0; i < lstneighbours.Count; i++) + //{ + // // We don't want to keep sending to regions that consistently fail on comms. + // if (!(lstneighbours[i].commFailTF)) + // { + // neighbours.Add(new SimpleRegionInfo(lstneighbours[i])); + // } + //} // we're going to be using the above code once neighbour cache is correct. Currently it doesn't appear to be // So we're temporarily going back to the old method of grabbing it from the Grid Server Every time :/ if (m_regionInfo != null) { neighbours = - RequestNeighbors(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); + RequestNeighbours(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); } else { @@ -547,8 +527,9 @@ namespace OpenSim.Region.Framework.Scenes /// Create the necessary child agents List cagents = new List(); - foreach (SimpleRegionInfo neighbour in neighbours) - { + //foreach (SimpleRegionInfo neighbour in neighbours) + foreach (GridRegion neighbour in neighbours) + { if (neighbour.RegionHandle != avatar.Scene.RegionInfo.RegionHandle) { @@ -588,7 +569,7 @@ namespace OpenSim.Region.Framework.Scenes bool newAgent = false; int count = 0; - foreach (SimpleRegionInfo neighbour in neighbours) + foreach (GridRegion neighbour in neighbours) { // Don't do it if there's already an agent in that region if (newRegions.Contains(neighbour.RegionHandle)) @@ -641,7 +622,7 @@ namespace OpenSim.Region.Framework.Scenes /// This informs a single neighboring region about agent "avatar". /// Calls an asynchronous method to do so.. so it doesn't lag the sim. /// - public void InformNeighborChildAgent(ScenePresence avatar, SimpleRegionInfo region) + public void InformNeighborChildAgent(ScenePresence avatar, GridRegion region) { AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); agent.BaseFolder = UUID.Zero; @@ -700,18 +681,16 @@ namespace OpenSim.Region.Framework.Scenes } } - /// - /// Called by scene when region is initialized (not always when it's listening for agents) - /// This is an inter-region message that informs the surrounding neighbors that the sim is up. - /// + public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region) { //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); - - List neighbours = new List(); + + List neighbours = new List(); // This stays uncached because we don't already know about our neighbors at this point. - neighbours = m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); + + neighbours = m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID); if (neighbours != null) { for (int i = 0; i < neighbours.Count; i++) @@ -727,6 +706,7 @@ namespace OpenSim.Region.Framework.Scenes //bool val = m_commsProvider.InterRegion.RegionUp(new SerializableRegionInfo(region)); } + public delegate void SendChildAgentDataUpdateDelegate(AgentPosition cAgentData, ulong regionHandle); /// @@ -822,41 +802,6 @@ namespace OpenSim.Region.Framework.Scenes } } - /// - /// Helper function to request neighbors from grid-comms - /// - /// - /// - public virtual RegionInfo RequestNeighbouringRegionInfo(ulong regionHandle) - { - //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending Grid Services Request about neighbor " + regionHandle.ToString()); - return m_commsProvider.GridService.RequestNeighbourInfo(regionHandle); - } - - /// - /// Helper function to request neighbors from grid-comms - /// - /// - /// - public virtual RegionInfo RequestNeighbouringRegionInfo(UUID regionID) - { - //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending Grid Services Request about neighbor " + regionID); - return m_commsProvider.GridService.RequestNeighbourInfo(regionID); - } - - /// - /// Requests map blocks in area of minX, maxX, minY, MaxY in world cordinates - /// - /// - /// - /// - /// - public virtual void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY) - { - List mapBlocks; - mapBlocks = m_commsProvider.GridService.RequestNeighbourMapBlocks(minX - 4, minY - 4, minX + 4, minY + 4); - remoteClient.SendMapBlock(mapBlocks, 0); - } /// /// Try to teleport an agent to a new region. @@ -921,7 +866,10 @@ namespace OpenSim.Region.Framework.Scenes } else { - RegionInfo reg = RequestNeighbouringRegionInfo(regionHandle); + uint x = 0, y = 0; + Utils.LongToUInts(regionHandle, out x, out y); + GridRegion reg = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y); + if (reg != null) { m_log.DebugFormat( @@ -1228,10 +1176,10 @@ namespace OpenSim.Region.Framework.Scenes return false; } - private List NeighbourHandles(List neighbours) + private List NeighbourHandles(List neighbours) { List handles = new List(); - foreach (SimpleRegionInfo reg in neighbours) + foreach (GridRegion reg in neighbours) { handles.Add(reg.RegionHandle); } @@ -1482,7 +1430,10 @@ namespace OpenSim.Region.Framework.Scenes m_log.DebugFormat("[SCENE COMM]: Crossing agent {0} {1} to {2}-{3}", agent.Firstname, agent.Lastname, neighbourx, neighboury); ulong neighbourHandle = Utils.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize)); - SimpleRegionInfo neighbourRegion = RequestNeighbouringRegionInfo(neighbourHandle); + + int x = (int)(neighbourx * Constants.RegionSize), y = (int)(neighboury * Constants.RegionSize); + GridRegion neighbourRegion = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y); + if (neighbourRegion != null && agent.ValidateAttachments()) { pos = pos + (agent.Velocity); @@ -1609,11 +1560,6 @@ namespace OpenSim.Region.Framework.Scenes } - public Dictionary GetGridSettings() - { - return m_commsProvider.GridService.GetGridSettings(); - } - public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat) { m_commsProvider.LogOffUser(userid, regionid, regionhandle, position, lookat); @@ -1650,19 +1596,14 @@ namespace OpenSim.Region.Framework.Scenes return m_commsProvider.GetUserFriendList(friendlistowner); } - public List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY) - { - return m_commsProvider.GridService.RequestNeighbourMapBlocks(minX, minY, maxX, maxY); - } - public List GenerateAgentPickerRequestResponse(UUID queryID, string query) { return m_commsProvider.GenerateAgentPickerRequestResponse(queryID, query); } - public List RequestNamedRegions(string name, int maxNumber) + public List RequestNamedRegions(string name, int maxNumber) { - return m_commsProvider.GridService.RequestNamedRegions(name, maxNumber); + return m_scene.GridService.GetRegionsByName(UUID.Zero, name, maxNumber); } //private void Dump(string msg, List handles) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 6772f75..286b7ca 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -36,6 +36,7 @@ using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes.Types; using OpenSim.Region.Physics.Manager; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { @@ -2934,8 +2935,9 @@ namespace OpenSim.Region.Framework.Scenes else if (dir > 3 && dir < 7) // Heading Sout neighboury--; - ulong neighbourHandle = Utils.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize)); - SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); + int x = (int)(neighbourx * Constants.RegionSize); + int y = (int)(neighboury * Constants.RegionSize); + GridRegion neighbourRegion = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, x, y); if (neighbourRegion == null) { -- cgit v1.1 From 632bb7126277b6e8b524b76fb181a079b51adcf4 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 26 Sep 2009 08:49:48 -0700 Subject: Fixed MapBlocks bug, wrong order of arguments. First version that seems completely functional. Also fixed the notification of the message server in standalone -- that server doesn't usually exist. --- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index d0b0f01..9071701 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -371,15 +371,10 @@ namespace OpenSim.Region.Framework.Scenes string capsPath = "http://" + reg.ExternalHostName + ":" + reg.HttpPort + "/CAPS/" + a.CapsPath + "0000/"; - m_log.DebugFormat("[XXX] CAPS = {0}", capsPath); - m_log.DebugFormat("[XXX] ExternalEndPoint = {0}", endPoint.ToString()); - string reason = String.Empty; - //bool regionAccepted = m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, a); - + bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, out reason); - m_log.DebugFormat("[XXX] Here 1 {0}", regionAccepted); if (regionAccepted && newAgent) { @@ -394,7 +389,6 @@ namespace OpenSim.Region.Framework.Scenes } #endregion - m_log.DebugFormat("[XXX] HERE 2"); eq.EnableSimulator(reg.RegionHandle, endPoint, avatar.UUID); eq.EstablishAgentCommunication(avatar.UUID, endPoint, capsPath); m_log.DebugFormat("[CAPS]: Sending new CAPS seed url {0} to client {1} in region {2}", -- cgit v1.1 From f4bf581b96347b8d7f115eca74fa84a644eb729c Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 26 Sep 2009 21:00:51 -0700 Subject: Moved all HG1 operations to HGGridConnector.cs and HypergridServerConnector.cs/HypergridServiceConnector.cs, away from Region.Communications and HGNetworkServersInfo. Fixed small bugs with hyperlinked regions' map positions. --- .../Framework/Scenes/Hypergrid/HGAssetMapper.cs | 33 ++++++++++------------ .../Hypergrid/HGSceneCommunicationService.cs | 19 +++++++++---- 2 files changed, 29 insertions(+), 23 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs index 62efd60..b6fa41d 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs @@ -35,6 +35,7 @@ using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Clients; using OpenSim.Region.Framework.Scenes.Serialization; +using OpenSim.Services.Interfaces; //using HyperGrid.Framework; //using OpenSim.Region.Communications.Hypergrid; @@ -50,6 +51,18 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid // private Dictionary m_inventoryServers = new Dictionary(); private Scene m_scene; + + private IHyperlinkService m_hyper; + IHyperlinkService HyperlinkService + { + get + { + if (m_hyper == null) + m_hyper = m_scene.RequestModuleInterface(); + return m_hyper; + } + } + #endregion #region Constructor @@ -79,22 +92,6 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid // return null; // } - private bool IsLocalUser(UUID userID) - { - CachedUserInfo uinfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(userID); - - if (uinfo != null) - { - if (HGNetworkServersInfo.Singleton.IsLocalUser(uinfo.UserProfile)) - { - m_log.Debug("[HGScene]: Home user " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName); - return true; - } - } - - m_log.Debug("[HGScene]: Foreign user " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName); - return false; - } public AssetBase FetchAsset(string url, UUID assetID) { @@ -170,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid public void Get(UUID assetID, UUID ownerID) { - if (!IsLocalUser(ownerID)) + if (!HyperlinkService.IsLocalUser(ownerID)) { // Get the item from the remote asset server onto the local AssetCache // and place an entry in m_assetMap @@ -228,7 +225,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid public void Post(UUID assetID, UUID ownerID) { - if (!IsLocalUser(ownerID)) + if (!HyperlinkService.IsLocalUser(ownerID)) { // Post the item from the local AssetCache onto the remote asset server // and place an entry in m_assetMap diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs index ee5eb90..1217f9b 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs @@ -38,6 +38,7 @@ using OpenSim.Framework.Communications; using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Capabilities; using OpenSim.Region.Framework.Interfaces; +using OpenSim.Services.Interfaces; using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes.Hypergrid @@ -46,11 +47,19 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - public readonly IHyperlink m_hg; + private IHyperlinkService m_hg; + IHyperlinkService HyperlinkService + { + get + { + if (m_hg == null) + m_hg = m_scene.RequestModuleInterface(); + return m_hg; + } + } - public HGSceneCommunicationService(CommunicationsManager commsMan, IHyperlink hg) : base(commsMan) + public HGSceneCommunicationService(CommunicationsManager commsMan) : base(commsMan) { - m_hg = hg; } @@ -129,13 +138,13 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid /// Hypergrid mod start /// /// - bool isHyperLink = m_hg.IsHyperlinkRegion(reg.RegionHandle); + bool isHyperLink = (HyperlinkService.GetHyperlinkRegion(reg.RegionHandle) != null); bool isHomeUser = true; ulong realHandle = regionHandle; CachedUserInfo uinfo = m_commsProvider.UserProfileCacheService.GetUserDetails(avatar.UUID); if (uinfo != null) { - isHomeUser = HGNetworkServersInfo.Singleton.IsLocalUser(uinfo.UserProfile); + isHomeUser = HyperlinkService.IsLocalUser(uinfo.UserProfile.ID); realHandle = m_hg.FindRegionHandle(regionHandle); m_log.Debug("XXX ---- home user? " + isHomeUser + " --- hyperlink? " + isHyperLink + " --- real handle: " + realHandle.ToString()); } -- cgit v1.1 From 5d09c53a1a42b38e1ee35cfbb5571d70b75380f4 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 27 Sep 2009 10:14:10 -0700 Subject: Unpacking the mess with OtherRegionUp, so we can have a real cache of the neighbours in the grid service modules. --- OpenSim/Region/Framework/Scenes/EventManager.cs | 13 ++++ OpenSim/Region/Framework/Scenes/Scene.cs | 63 +++++----------- OpenSim/Region/Framework/Scenes/SceneBase.cs | 3 +- .../Framework/Scenes/SceneCommunicationService.cs | 87 +++++++++------------- .../Framework/Scenes/Tests/SceneBaseTests.cs | 3 +- 5 files changed, 74 insertions(+), 95 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 287d8d9..7424b24 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -32,6 +32,7 @@ using OpenSim.Framework; using OpenSim.Framework.Client; using OpenSim.Region.Framework.Interfaces; using Caps=OpenSim.Framework.Capabilities.Caps; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { @@ -305,6 +306,9 @@ namespace OpenSim.Region.Framework.Scenes public delegate void Attach(uint localID, UUID itemID, UUID avatarID); public event Attach OnAttach; + public delegate void RegionUp(GridRegion region); + public event RegionUp OnRegionUp; + public class MoneyTransferArgs : EventArgs { public UUID sender; @@ -446,6 +450,7 @@ namespace OpenSim.Region.Framework.Scenes private EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = null; private Attach handlerOnAttach = null; + private RegionUp handlerOnRegionUp = null; public void TriggerOnAttach(uint localID, UUID itemID, UUID avatarID) { @@ -1035,5 +1040,13 @@ namespace OpenSim.Region.Framework.Scenes if (handlerSetRootAgentScene != null) handlerSetRootAgentScene(agentID, scene); } + + public void TriggerOnRegionUp(GridRegion otherRegion) + { + handlerOnRegionUp = OnRegionUp; + if (handlerOnRegionUp != null) + handlerOnRegionUp(otherRegion); + } + } } diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 8990f29..55478da 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -587,10 +587,7 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Another region is up. Gets called from Grid Comms: - /// (OGS1 -> LocalBackEnd -> RegionListened -> SceneCommunicationService) - /// We have to tell all our ScenePresences about it, and add it to the - /// neighbor list. + /// Another region is up. /// /// We only add it to the neighbor list if it's within 1 region from here. /// Agents may have draw distance values that cross two regions though, so @@ -599,47 +596,27 @@ namespace OpenSim.Region.Framework.Scenes /// /// RegionInfo handle for the new region. /// True after all operations complete, throws exceptions otherwise. - public override bool OtherRegionUp(RegionInfo otherRegion) + public override void OtherRegionUp(GridRegion otherRegion) { - m_log.InfoFormat("[SCENE]: Region {0} up in coords {1}-{2}", otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY); + uint xcell = (uint)((int)otherRegion.RegionLocX / (int)Constants.RegionSize); + uint ycell = (uint)((int)otherRegion.RegionLocY / (int)Constants.RegionSize); + m_log.InfoFormat("[SCENE]: (on region {0}): Region {1} up in coords {2}-{3}", + RegionInfo.RegionName, otherRegion.RegionName, xcell, ycell); if (RegionInfo.RegionHandle != otherRegion.RegionHandle) { - for (int i = 0; i < m_neighbours.Count; i++) - { - // The purpose of this loop is to re-update the known neighbors - // when another region comes up on top of another one. - // The latest region in that location ends up in the - // 'known neighbors list' - // Additionally, the commFailTF property gets reset to false. - if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle) - { - lock (m_neighbours) - { - m_neighbours[i] = otherRegion; - - } - } - } - - // If the value isn't in the neighbours, add it. - // If the RegionInfo isn't exact but is for the same XY World location, - // then the above loop will fix that. - - if (!(CheckNeighborRegion(otherRegion))) - { - lock (m_neighbours) - { - m_neighbours.Add(otherRegion); - //m_log.Info("[UP]: " + otherRegion.RegionHandle.ToString()); - } - } // If these are cast to INT because long + negative values + abs returns invalid data - int resultX = Math.Abs((int)otherRegion.RegionLocX - (int)RegionInfo.RegionLocX); - int resultY = Math.Abs((int)otherRegion.RegionLocY - (int)RegionInfo.RegionLocY); + int resultX = Math.Abs((int)xcell - (int)RegionInfo.RegionLocX); + int resultY = Math.Abs((int)ycell - (int)RegionInfo.RegionLocY); if (resultX <= 1 && resultY <= 1) { + RegionInfo regInfo = new RegionInfo(xcell, ycell, otherRegion.InternalEndPoint, otherRegion.ExternalHostName); + regInfo.RegionID = otherRegion.RegionID; + regInfo.RegionName = otherRegion.RegionName; + regInfo.ScopeID = otherRegion.ScopeID; + regInfo.ExternalHostName = otherRegion.ExternalHostName; + try { ForEachScenePresence(delegate(ScenePresence agent) @@ -653,7 +630,7 @@ namespace OpenSim.Region.Framework.Scenes List old = new List(); old.Add(otherRegion.RegionHandle); agent.DropOldNeighbours(old); - InformClientOfNeighbor(agent, otherRegion); + InformClientOfNeighbor(agent, regInfo); } } ); @@ -672,7 +649,6 @@ namespace OpenSim.Region.Framework.Scenes otherRegion.RegionLocY.ToString() + ")"); } } - return true; } public void AddNeighborRegion(RegionInfo region) @@ -704,9 +680,10 @@ namespace OpenSim.Region.Framework.Scenes } // Alias IncomingHelloNeighbour OtherRegionUp, for now - public bool IncomingHelloNeighbour(RegionInfo neighbour) + public GridRegion IncomingHelloNeighbour(RegionInfo neighbour) { - return OtherRegionUp(neighbour); + OtherRegionUp(new GridRegion(neighbour)); + return new GridRegion(RegionInfo); } /// @@ -3104,7 +3081,7 @@ namespace OpenSim.Region.Framework.Scenes m_sceneGridService.OnExpectUser += HandleNewUserConnection; m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent; - m_sceneGridService.OnRegionUp += OtherRegionUp; + //m_eventManager.OnRegionUp += OtherRegionUp; //m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; m_sceneGridService.OnExpectPrim += IncomingInterRegionPrimGroup; //m_sceneGridService.OnRemoveKnownRegionFromAvatar += HandleRemoveKnownRegionsFromAvatar; @@ -3132,7 +3109,7 @@ namespace OpenSim.Region.Framework.Scenes //m_sceneGridService.OnRemoveKnownRegionFromAvatar -= HandleRemoveKnownRegionsFromAvatar; m_sceneGridService.OnExpectPrim -= IncomingInterRegionPrimGroup; //m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; - m_sceneGridService.OnRegionUp -= OtherRegionUp; + //m_eventManager.OnRegionUp -= OtherRegionUp; m_sceneGridService.OnExpectUser -= HandleNewUserConnection; m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent; diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 2a82237..2af98cc 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs @@ -36,6 +36,7 @@ using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Framework.Communications.Cache; using OpenSim.Region.Framework.Interfaces; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes { @@ -227,7 +228,7 @@ namespace OpenSim.Region.Framework.Scenes return false; } - public abstract bool OtherRegionUp(RegionInfo thisRegion); + public abstract void OtherRegionUp(GridRegion otherRegion); public virtual string GetSimulatorVersion() { diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 9071701..3294ceb 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -93,10 +93,10 @@ namespace OpenSim.Region.Framework.Scenes /// public event PrimCrossing OnPrimCrossingIntoRegion; - /// - /// A New Region is up and available - /// - public event RegionUp OnRegionUp; + ///// + ///// A New Region is up and available + ///// + //public event RegionUp OnRegionUp; /// /// We have a child agent for this avatar and we're getting a status update about it @@ -119,7 +119,7 @@ namespace OpenSim.Region.Framework.Scenes private ExpectPrimDelegate handlerExpectPrim = null; // OnExpectPrim; private CloseAgentConnection handlerCloseAgentConnection = null; // OnCloseAgentConnection; private PrimCrossing handlerPrimCrossingIntoRegion = null; // OnPrimCrossingIntoRegion; - private RegionUp handlerRegionUp = null; // OnRegionUp; + //private RegionUp handlerRegionUp = null; // OnRegionUp; private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate; //private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar; private LogOffUser handlerLogOffUser = null; @@ -239,22 +239,6 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// A New Region is now available. Inform the scene that there is a new region available. - /// - /// Information about the new region that is available - /// True if the event was handled - protected bool newRegionUp(RegionInfo region) - { - handlerRegionUp = OnRegionUp; - if (handlerRegionUp != null) - { - //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: newRegionUp Fired for User:" + region.RegionName); - handlerRegionUp(region); - } - return true; - } - - /// /// Inform the scene that we've got an update about a child agent that we have /// /// @@ -647,31 +631,23 @@ namespace OpenSim.Region.Framework.Scenes /// private void InformNeighboursThatRegionIsUpAsync(INeighbourService neighbourService, RegionInfo region, ulong regionhandle) { - m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here"); - //RegionUpData regiondata = new RegionUpData(region.RegionLocX, region.RegionLocY, region.ExternalHostName, region.InternalEndPoint.Port); + uint x = 0, y = 0; + Utils.LongToUInts(regionhandle, out x, out y); - //bool regionAccepted = - // m_commsProvider.InterRegion.RegionUp(new SerializableRegionInfo(region), regionhandle); - - //bool regionAccepted = m_interregionCommsOut.SendHelloNeighbour(regionhandle, region); - bool regionAccepted = false; + GridRegion neighbour = null; if (neighbourService != null) - regionAccepted = neighbourService.HelloNeighbour(regionhandle, region); + neighbour = neighbourService.HelloNeighbour(regionhandle, region); else m_log.DebugFormat("[SCS]: No neighbour service provided for informing neigbhours of this region"); - if (regionAccepted) + if (neighbour != null) { - m_log.Info("[INTERGRID]: Completed informing neighbors that I'm here"); - handlerRegionUp = OnRegionUp; - - // yes, we're notifying ourselves. - if (handlerRegionUp != null) - handlerRegionUp(region); + m_log.DebugFormat("[INTERGRID]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize); + m_scene.EventManager.TriggerOnRegionUp(neighbour); } else { - m_log.Warn("[INTERGRID]: Failed to inform neighbors that I'm here."); + m_log.WarnFormat("[INTERGRID]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize); } } @@ -680,22 +656,33 @@ namespace OpenSim.Region.Framework.Scenes { //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); + for (int x = (int)region.RegionLocX - 1; x <= region.RegionLocX + 1; x++) + for (int y = (int)region.RegionLocY - 1; y <= region.RegionLocY + 1; y++) + if (!((x == region.RegionLocX) && (y == region.RegionLocY))) // skip this region + { + ulong handle = Utils.UIntsToLong((uint)x * Constants.RegionSize, (uint)y * Constants.RegionSize); + InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; - List neighbours = new List(); - // This stays uncached because we don't already know about our neighbors at this point. + d.BeginInvoke(neighbourService, region, handle, + InformNeighborsThatRegionisUpCompleted, + d); + } - neighbours = m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID); - if (neighbours != null) - { - for (int i = 0; i < neighbours.Count; i++) - { - InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; + //List neighbours = new List(); + //// This stays uncached because we don't already know about our neighbors at this point. - d.BeginInvoke(neighbourService, region, neighbours[i].RegionHandle, - InformNeighborsThatRegionisUpCompleted, - d); - } - } + //neighbours = m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID); + //if (neighbours != null) + //{ + // for (int i = 0; i < neighbours.Count; i++) + // { + // InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; + + // d.BeginInvoke(neighbourService, region, neighbours[i].RegionHandle, + // InformNeighborsThatRegionisUpCompleted, + // d); + // } + //} //bool val = m_commsProvider.InterRegion.RegionUp(new SerializableRegionInfo(region)); } diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs index f6737a5..5c9e66f 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs @@ -29,6 +29,7 @@ using System; using NUnit.Framework; using OpenMetaverse; using OpenSim.Framework; +using GridRegion = OpenSim.Services.Interfaces.GridRegion; namespace OpenSim.Region.Framework.Scenes.Tests { @@ -65,7 +66,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests throw new NotImplementedException(); } - public override bool OtherRegionUp(RegionInfo thisRegion) + public override void OtherRegionUp(GridRegion otherRegion) { throw new NotImplementedException(); } -- cgit v1.1 From 2432cc607ec206b79149c1e9b1aa995794fec3bc Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 27 Sep 2009 13:43:57 -0700 Subject: Neighbours cache working. --- OpenSim/Region/Framework/Scenes/Scene.cs | 4 ++++ OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 55478da..bb47ff4 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -611,6 +611,9 @@ namespace OpenSim.Region.Framework.Scenes int resultY = Math.Abs((int)ycell - (int)RegionInfo.RegionLocY); if (resultX <= 1 && resultY <= 1) { + // Let the grid service module know, so this can be cached + m_eventManager.TriggerOnRegionUp(otherRegion); + RegionInfo regInfo = new RegionInfo(xcell, ycell, otherRegion.InternalEndPoint, otherRegion.ExternalHostName); regInfo.RegionID = otherRegion.RegionID; regInfo.RegionName = otherRegion.RegionName; @@ -641,6 +644,7 @@ namespace OpenSim.Region.Framework.Scenes // This shouldn't happen too often anymore. m_log.Error("[SCENE]: Couldn't inform client of regionup because we got a null reference exception"); } + } else { diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 3294ceb..4a2db5e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs @@ -455,14 +455,12 @@ namespace OpenSim.Region.Framework.Scenes // So we're temporarily going back to the old method of grabbing it from the Grid Server Every time :/ if (m_regionInfo != null) { - neighbours = - RequestNeighbours(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); + neighbours = RequestNeighbours(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); } else { m_log.Debug("[ENABLENEIGHBOURCHILDAGENTS]: m_regionInfo was null in EnableNeighbourChildAgents, is this a NPC?"); } - /// We need to find the difference between the new regions where there are no child agents /// and the regions where there are already child agents. We only send notification to the former. -- cgit v1.1 From f00126dc2dfc9e23aa50227f02ee9adbe1efdfa6 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Tue, 29 Sep 2009 08:32:59 +0900 Subject: Add copyright header. Formatting cleanup. --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 51bb114..ec262b0 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -3517,7 +3517,7 @@ if (m_shape != null) { } else { // Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like - // (mumbles, well, at least if you have infinte CPU powers :-) ) + // (mumbles, well, at least if you have infinte CPU powers :-)) PhysicsActor pa = this.PhysActor; if (pa != null) { -- cgit v1.1 From 4eca59ec13bb48309120fea24890341c65157c65 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Sep 2009 17:33:34 -0700 Subject: Improved the Local grid connector to fetch data from the DB when it doesn't find it in the cache. Commented out the Standalone teleport test because it's failing, and the scene setup is very confusing. I suspect it may be wrong -- the connectors-as-ISharedRegionModules are being instantiated several times when there are several scenes. --- OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs index 1d460dd..1dc1627 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs @@ -52,7 +52,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests /// Test a teleport between two regions that are not neighbours and do not share any neighbours in common. /// /// Does not yet do what is says on the tin. - [Test, LongRunning] + /// Commenting for now + //[Test, LongRunning] public void TestSimpleNotNeighboursTeleport() { TestHelper.InMethod(); @@ -117,11 +118,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests // shared module ISharedRegionModule interregionComms = new RESTInterregionComms(); - Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm); + Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm, "grid"); SceneSetupHelpers.SetupSceneModules(sceneA, new IniConfigSource(), interregionComms); sceneA.RegisterRegionWithGrid(); - Scene sceneB = SceneSetupHelpers.SetupScene("sceneB", sceneBId, 1010, 1010, cm); + Scene sceneB = SceneSetupHelpers.SetupScene("sceneB", sceneBId, 1010, 1010, cm, "grid"); SceneSetupHelpers.SetupSceneModules(sceneB, new IniConfigSource(), interregionComms); sceneB.RegisterRegionWithGrid(); -- cgit v1.1 From a60ed0562ca403b5881e221ccbdd8366ff053a27 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Sep 2009 17:42:35 -0700 Subject: I think I have fixed something that was broken in the scene setup (tests) and that needs to be reflected in all other services setups. But the teleport test still doesn't work. Commenting it for now. --- OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs index 1dc1627..751c1cd 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs @@ -118,14 +118,15 @@ namespace OpenSim.Region.Framework.Scenes.Tests // shared module ISharedRegionModule interregionComms = new RESTInterregionComms(); - Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm, "grid"); - SceneSetupHelpers.SetupSceneModules(sceneA, new IniConfigSource(), interregionComms); - sceneA.RegisterRegionWithGrid(); Scene sceneB = SceneSetupHelpers.SetupScene("sceneB", sceneBId, 1010, 1010, cm, "grid"); SceneSetupHelpers.SetupSceneModules(sceneB, new IniConfigSource(), interregionComms); sceneB.RegisterRegionWithGrid(); + Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm, "grid"); + SceneSetupHelpers.SetupSceneModules(sceneA, new IniConfigSource(), interregionComms); + sceneA.RegisterRegionWithGrid(); + UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000041"); TestClient client = SceneSetupHelpers.AddRootAgent(sceneA, agentId); -- cgit v1.1 From bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 29 Sep 2009 07:54:56 -0700 Subject: A little hack to see if this fixes the problems with ~20% of SOG's becoming phantom after an import to megaregions. --- OpenSim/Region/Framework/Scenes/Scene.cs | 5 +++++ OpenSim/Region/Framework/Scenes/SceneGraph.cs | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index bb47ff4..39f3007 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -4141,6 +4141,11 @@ namespace OpenSim.Region.Framework.Scenes m_sceneGraph.ForEachClient(action); } + public void ForEachSOG(Action action) + { + m_sceneGraph.ForEachSOG(action); + } + /// /// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself /// will not affect the original list of objects in the scene. diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 48dea07..0c471aa 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -1134,6 +1134,23 @@ namespace OpenSim.Region.Framework.Scenes } } + protected internal void ForEachSOG(Action action) + { + List objlist = new List(SceneObjectGroupsByFullID.Values); + foreach (SceneObjectGroup obj in objlist) + { + try + { + action(obj); + } + catch (Exception e) + { + // Catch it and move on. This includes situations where splist has inconsistent info + m_log.WarnFormat("[SCENE]: Problem processing action in ForEachSOG: ", e.Message); + } + } + } + #endregion #region Client Event handlers -- cgit v1.1 From 2a7bedb5e93cca37093220bfc11cc4ce45e45cfe Mon Sep 17 00:00:00 2001 From: Alan M Webb Date: Tue, 29 Sep 2009 08:35:21 -0400 Subject: This fix addresses the problem where phantom objects do not always behave like they are phantom, and llVolumeDetect seems to operate in a random fashion. Signed-off-by: dr scofield (aka dirk husemann) --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index ec262b0..cce45fe 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -3455,6 +3455,7 @@ if (m_shape != null) { RotationOffset, UsePhysics); + pa = PhysActor; if (pa != null) { pa.LocalID = LocalId; @@ -3513,7 +3514,6 @@ if (m_shape != null) { AddFlag(PrimFlags.Phantom); // We set this flag also if VD is active this.VolumeDetectActive = true; } - } else { // Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like -- cgit v1.1 From ee205e7e812e170f670e690a4e0fa9caa652f226 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 Oct 2009 01:00:09 +0900 Subject: Formatting cleanup. --- .../Interfaces/IAgentAssetTransactions.cs | 2 +- OpenSim/Region/Framework/Interfaces/ICommander.cs | 4 ++-- .../Region/Framework/Interfaces/IDialogModule.cs | 10 ++++----- .../Region/Framework/Interfaces/IEntityCreator.cs | 8 ++++---- .../Framework/Interfaces/IEntityInventory.cs | 6 +++--- .../Region/Framework/Interfaces/IFriendsModule.cs | 6 +++--- OpenSim/Region/Framework/Interfaces/IGodsModule.cs | 4 ++-- .../Interfaces/IInventoryArchiverModule.cs | 8 ++++---- .../Region/Framework/Interfaces/ILandChannel.cs | 4 ++-- .../Framework/Interfaces/IRegionArchiverModule.cs | 8 ++++---- .../Framework/Interfaces/IRegionDataStore.cs | 8 ++++---- .../Interfaces/IRegionSerialiserModule.cs | 2 +- .../Region/Framework/Interfaces/ISoundModule.cs | 4 ++-- .../Framework/Interfaces/IVegetationModule.cs | 4 ++-- .../Region/Framework/Interfaces/IWorldMapModule.cs | 4 ++-- .../Scenes/AsyncSceneObjectGroupDeleter.cs | 22 ++++++++++---------- .../Region/Framework/Scenes/AvatarAnimations.cs | 2 +- OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs | 6 +++--- OpenSim/Region/Framework/Scenes/EntityManager.cs | 2 +- OpenSim/Region/Framework/Scenes/EventManager.cs | 4 ++-- .../Hypergrid/HGSceneCommunicationService.cs | 2 +- .../Region/Framework/Scenes/RegionStatsHandler.cs | 6 +++--- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 2 +- .../Framework/Scenes/Scene.PacketHandlers.cs | 14 ++++++------- .../Region/Framework/Scenes/Scene.Permissions.cs | 16 +++++++-------- OpenSim/Region/Framework/Scenes/Scene.cs | 8 ++++---- OpenSim/Region/Framework/Scenes/SceneBase.cs | 8 ++++---- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 +- OpenSim/Region/Framework/Scenes/SceneManager.cs | 12 +++++------ .../Region/Framework/Scenes/SceneObjectGroup.cs | 24 +++++++++++----------- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 18 ++++++++-------- .../Framework/Scenes/SceneObjectPartInventory.cs | 4 ++-- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 14 ++++++------- .../Scenes/Serialization/SceneObjectSerializer.cs | 16 +++++++-------- .../Scenes/Serialization/SceneXmlLoader.cs | 2 +- .../Region/Framework/Scenes/SimStatsReporter.cs | 2 +- .../Framework/Scenes/Tests/EntityManagerTests.cs | 14 ++++++------- .../Scenes/Tests/SceneObjectBasicTests.cs | 16 +++++++-------- .../Scenes/Tests/SceneObjectLinkingTests.cs | 12 +++++------ .../Region/Framework/Scenes/Tests/SceneTests.cs | 4 ++-- .../Scenes/Tests/StandaloneTeleportTests.cs | 4 ++-- OpenSim/Region/Framework/Scenes/UuidGatherer.cs | 12 +++++------ 42 files changed, 165 insertions(+), 165 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs index c1ed1ac..0cc8fb6 100644 --- a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs +++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs @@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Interfaces sbyte type, byte wearableType, uint nextOwnerMask); void HandleTaskItemUpdateFromTransaction( - IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item); + IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item); void RemoveAgentAssetTransactions(UUID userID); } diff --git a/OpenSim/Region/Framework/Interfaces/ICommander.cs b/OpenSim/Region/Framework/Interfaces/ICommander.cs index 9371bea..6b872c1 100644 --- a/OpenSim/Region/Framework/Interfaces/ICommander.cs +++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs @@ -33,7 +33,7 @@ namespace OpenSim.Region.Framework.Interfaces { /// /// The name of this commander - /// + /// string Name { get; } /// @@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The commands available for this commander /// - Dictionary Commands { get; } + Dictionary Commands { get; } void ProcessConsoleCommand(string function, string[] args); void RegisterCommand(string commandName, ICommand command); diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs index a6ca7f1..d1c37da 100644 --- a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs @@ -37,15 +37,15 @@ namespace OpenSim.Region.Framework.Interfaces /// small interval. /// /// - /// - void SendAlertToUser(IClientAPI client, string message); + /// + void SendAlertToUser(IClientAPI client, string message); /// /// Send an alert message to a particular user. /// /// /// - /// + /// void SendAlertToUser(IClientAPI client, string message, bool modal); /// @@ -104,7 +104,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// void SendUrlToUser( - UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url); + UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url); /// /// Send a notification to all users in the scene. This notification should remain around until the @@ -116,7 +116,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The user sending the message /// The name of the user doing the sending - /// The message being sent to the user + /// The message being sent to the user void SendNotificationToUsersInRegion(UUID fromAvatarID, string fromAvatarName, string message); /// diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs index f3a3747..c39627c 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs @@ -29,13 +29,13 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Scenes; -namespace OpenSim.Region.Framework.Interfaces +namespace OpenSim.Region.Framework.Interfaces { /// /// Interface to a class that is capable of creating entities - /// + /// public interface IEntityCreator - { + { /// /// The entities that this class is capable of creating. These match the PCode format. /// @@ -51,6 +51,6 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// The entity created, or null if the creation failed - SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape); + SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape); } } diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs index 1ed92fb..2c906a2 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs @@ -64,7 +64,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Change every item in this inventory to a new group. /// - /// + /// void ChangeInventoryGroup(UUID groupID); /// @@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// - /// + /// void CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource); /// @@ -150,7 +150,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Return the name with which a client can request a xfer of this prim's inventory metadata - /// + /// string GetInventoryFileName(); bool GetInventoryFileName(IClientAPI client, uint localID); diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs index af54c76..7a8aba2 100644 --- a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs @@ -29,7 +29,7 @@ using OpenMetaverse; using OpenSim.Framework; namespace OpenSim.Region.Framework.Interfaces -{ +{ public interface IFriendsModule { /// @@ -43,7 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces /// FIXME: This is somewhat too tightly coupled - it should arguably be possible to offer friendships even if the /// receiving user is not currently online. /// - /// - void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage); + /// + void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage); } } diff --git a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs index 02abb05..552ce01 100644 --- a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs @@ -29,7 +29,7 @@ using OpenMetaverse; using OpenSim.Framework; namespace OpenSim.Region.Framework.Interfaces -{ +{ /// /// This interface provides god related methods /// @@ -53,6 +53,6 @@ namespace OpenSim.Region.Framework.Interfaces /// the person that is being kicked /// This isn't used apparently /// The message to send to the user after it's been turned into a field - void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason); + void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason); } } diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs index 1622564..2d038ce 100644 --- a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs @@ -30,7 +30,7 @@ using System.IO; using OpenSim.Framework.Communications.Cache; namespace OpenSim.Region.Framework.Interfaces -{ +{ /// /// Used for the OnInventoryArchiveSaved event. /// @@ -43,11 +43,11 @@ namespace OpenSim.Region.Framework.Interfaces public delegate void InventoryArchiveSaved( Guid id, bool succeeded, CachedUserInfo userInfo, string invPath, Stream saveStream, Exception reportedException); - public interface IInventoryArchiverModule + public interface IInventoryArchiverModule { /// /// Fired when an archive inventory save has been completed. - /// + /// event InventoryArchiveSaved OnInventoryArchiveSaved; /// @@ -69,6 +69,6 @@ namespace OpenSim.Region.Framework.Interfaces /// The inventory path from which the inventory should be saved. /// The stream to which the inventory archive will be saved /// true if the first stage of the operation succeeded, false otherwise - bool ArchiveInventory(Guid id, string firstName, string lastName, string invPath, string pass, Stream saveStream); + bool ArchiveInventory(Guid id, string firstName, string lastName, string invPath, string pass, Stream saveStream); } } diff --git a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs index 19b8574..74f404f 100644 --- a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs +++ b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs @@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Value between 0 - 256 on the x axis of the point /// Value between 0 - 256 on the y axis of the point - /// Land object at the point supplied + /// Land object at the point supplied ILandObject GetLandObject(int x, int y); ILandObject GetLandObject(int localID); @@ -51,7 +51,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// Value between 0 - 256 on the x axis of the point /// Value between 0 - 256 on the y axis of the point - /// Land object at the point supplied + /// Land object at the point supplied ILandObject GetLandObject(float x, float y); bool IsLandPrimCountTainted(); diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs index 78b5322..fa64333 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs @@ -54,7 +54,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// If supplied, this request Id is later returned in the saved event - void ArchiveRegion(string savePath, Guid requestId); + void ArchiveRegion(string savePath, Guid requestId); /// /// Archive the region to a stream. @@ -88,7 +88,7 @@ namespace OpenSim.Region.Framework.Interfaces /// settings in the archive will be ignored. /// /// If supplied, this request Id is later returned in the saved event - void DearchiveRegion(string loadPath, bool merge, Guid requestId); + void DearchiveRegion(string loadPath, bool merge, Guid requestId); /// /// Dearchive a region from a stream. This replaces the existing scene. @@ -109,8 +109,8 @@ namespace OpenSim.Region.Framework.Interfaces /// /// If true, the loaded region merges with the existing one rather than replacing it. Any terrain or region /// settings in the archive will be ignored. - /// + /// /// If supplied, this request Id is later returned in the saved event - void DearchiveRegion(Stream loadStream, bool merge, Guid requestId); + void DearchiveRegion(Stream loadStream, bool merge, Guid requestId); } } diff --git a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs index 41a1e51..78bd622 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs @@ -71,21 +71,21 @@ namespace OpenSim.Region.Framework.Interfaces /// Load persisted objects from region storage. /// /// the Region UUID - /// List of loaded groups + /// List of loaded groups List LoadObjects(UUID regionUUID); /// /// Store a terrain revision in region storage /// /// HeightField data - /// region UUID + /// region UUID void StoreTerrain(double[,] terrain, UUID regionID); /// /// Load the latest terrain revision from region storage /// /// the region UUID - /// Heightfield data + /// Heightfield data double[,] LoadTerrain(UUID regionID); void StoreLandObject(ILandObject Parcel); @@ -96,7 +96,7 @@ namespace OpenSim.Region.Framework.Interfaces /// delete from landaccesslist where LandUUID=globalID /// /// - /// + /// void RemoveLandObject(UUID globalID); List LoadLandObjects(UUID regionUUID); diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs index bfd25d3..e7562a5 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs @@ -117,6 +117,6 @@ namespace OpenSim.Region.Framework.Interfaces /// /// /// - string SerializeGroupToXml2(SceneObjectGroup grp); + string SerializeGroupToXml2(SceneObjectGroup grp); } } diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs index 3d803ee..379fabd 100644 --- a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs +++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs @@ -29,12 +29,12 @@ using System; using OpenMetaverse; namespace OpenSim.Region.Framework.Interfaces -{ +{ public interface ISoundModule { void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID, double gain, Vector3 position, byte flags); void TriggerSound( - UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle); + UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle); } } \ No newline at end of file diff --git a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs index 344601f..403d542 100644 --- a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs @@ -29,7 +29,7 @@ using OpenMetaverse; using OpenSim.Region.Framework.Scenes; namespace OpenSim.Region.Framework.Interfaces -{ +{ public interface IVegetationModule : IEntityCreator { /// @@ -44,6 +44,6 @@ namespace OpenSim.Region.Framework.Interfaces /// /// SceneObjectGroup AddTree( - UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree); + UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree); } } diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs index a0b0888..de1bcd4 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs @@ -26,9 +26,9 @@ */ namespace OpenSim.Region.Framework.Interfaces -{ +{ public interface IWorldMapModule { - void LazySaveGeneratedMaptile(byte[] data, bool temporary); + void LazySaveGeneratedMaptile(byte[] data, bool temporary); } } diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index 7ac1e7e..5b571c7 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs @@ -34,7 +34,7 @@ using OpenMetaverse; using OpenSim.Framework; namespace OpenSim.Region.Framework.Scenes -{ +{ class DeleteToInventoryHolder { public DeRezAction action; @@ -49,7 +49,7 @@ namespace OpenSim.Region.Framework.Scenes /// up the main client thread. /// public class AsyncSceneObjectGroupDeleter - { + { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -58,16 +58,16 @@ namespace OpenSim.Region.Framework.Scenes /// public bool Enabled; - private Timer m_inventoryTicker = new Timer(2000); - private readonly Queue m_inventoryDeletes = new Queue(); - private Scene m_scene; + private Timer m_inventoryTicker = new Timer(2000); + private readonly Queue m_inventoryDeletes = new Queue(); + private Scene m_scene; public AsyncSceneObjectGroupDeleter(Scene scene) { m_scene = scene; m_inventoryTicker.AutoReset = false; - m_inventoryTicker.Elapsed += InventoryRunDeleteTimer; + m_inventoryTicker.Elapsed += InventoryRunDeleteTimer; } /// @@ -113,7 +113,7 @@ namespace OpenSim.Region.Framework.Scenes { //m_log.Debug("[SCENE]: Sent item successfully to inventory, continuing..."); } - } + } /// /// Move the next object in the queue to inventory. Then delete it properly from the scene. @@ -121,7 +121,7 @@ namespace OpenSim.Region.Framework.Scenes /// public bool InventoryDeQueueAndDelete() { - DeleteToInventoryHolder x = null; + DeleteToInventoryHolder x = null; try { @@ -142,9 +142,9 @@ namespace OpenSim.Region.Framework.Scenes try { - m_scene.DeleteToInventory(x.action, x.folderID, x.objectGroup, x.remoteClient); + m_scene.DeleteToInventory(x.action, x.folderID, x.objectGroup, x.remoteClient); if (x.permissionToDelete) - m_scene.DeleteSceneObject(x.objectGroup, false); + m_scene.DeleteSceneObject(x.objectGroup, false); } catch (Exception e) { @@ -166,6 +166,6 @@ namespace OpenSim.Region.Framework.Scenes m_log.Debug("[SCENE]: No objects left in inventory send queue."); return false; - } + } } } diff --git a/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs b/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs index 06b1d22..72d599a 100644 --- a/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs +++ b/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs @@ -47,7 +47,7 @@ namespace OpenSim.Region.Framework.Scenes { if (nod.Attributes["name"] != null) { - string name = (string)nod.Attributes["name"].Value; + string name = (string)nod.Attributes["name"].Value; UUID id = (UUID)nod.InnerText; string animState = (string)nod.Attributes["state"].Value; diff --git a/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs b/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs index 1dd9613..5f2eb0d 100644 --- a/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs +++ b/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs @@ -234,7 +234,7 @@ namespace OpenSim.Region.Framework.Scenes /// - /// Variable length strings seem to be null terminated in the animation asset.. but.. + /// Variable length strings seem to be null terminated in the animation asset.. but.. /// use with caution, home grown. /// advances the index. /// @@ -273,7 +273,7 @@ namespace OpenSim.Region.Framework.Scenes byte[] interm = new byte[endpos-i]; for (; iZXY t = y; y = z; diff --git a/OpenSim/Region/Framework/Scenes/EntityManager.cs b/OpenSim/Region/Framework/Scenes/EntityManager.cs index 504b90a..0ceef39 100644 --- a/OpenSim/Region/Framework/Scenes/EntityManager.cs +++ b/OpenSim/Region/Framework/Scenes/EntityManager.cs @@ -144,7 +144,7 @@ namespace OpenSim.Region.Framework.Scenes { m_log.ErrorFormat("Remove Entity failed for {0}", localID, e); return false; - } + } } } diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 7424b24..753344d 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -290,7 +290,7 @@ namespace OpenSim.Region.Framework.Scenes /// Guid.Empty is returned. /// public delegate void OarFileSaved(Guid guid, string message); - public event OarFileSaved OnOarFileSaved; + public event OarFileSaved OnOarFileSaved; /// /// Called when the script compile queue becomes empty @@ -1004,7 +1004,7 @@ namespace OpenSim.Region.Framework.Scenes handlerOarFileSaved = OnOarFileSaved; if (handlerOarFileSaved != null) handlerOarFileSaved(requestId, message); - } + } public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) { diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs index 1217f9b..d7e62a8 100644 --- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs @@ -357,7 +357,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid m_commsProvider.UserProfileCacheService.RemoveUser(avatar.UUID); m_log.DebugFormat( "[HGSceneCommService]: User {0} is going to another region, profile cache removed", - avatar.UUID); + avatar.UUID); } } else diff --git a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs index 7c02f9a..73f918e 100644 --- a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs +++ b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs @@ -53,7 +53,7 @@ namespace OpenSim.Region.Framework.Scenes public class RegionStatsHandler : IStreamedRequestHandler - { + { private string osRXStatsURI = String.Empty; private string osXStatsURI = String.Empty; //private string osSecret = String.Empty; @@ -87,13 +87,13 @@ namespace OpenSim.Region.Framework.Scenes } public string Path - { + { // This is for the region and is the regionSecret hashed get { return "/" + osRXStatsURI + "/"; } } private string Report() - { + { OSDMap args = new OSDMap(30); //int time = Util.ToUnixTime(DateTime.Now); args["OSStatsURI"] = OSD.FromString("http://" + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort + "/" + osXStatsURI + "/"); diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index eb397f6..a4460e4 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -1015,7 +1015,7 @@ namespace OpenSim.Region.Framework.Scenes return MoveTaskInventoryItem(avatar.ControllingClient, folderId, part, itemId); } else - { + { InventoryItemBase agentItem = CreateAgentInventoryItemFromTask(avatarId, part, itemId); if (agentItem == null) diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index fddba86..6c9856d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs @@ -413,7 +413,7 @@ namespace OpenSim.Region.Framework.Scenes remoteClient.SendInventoryItemDetails(ownerID, item); } // else shouldn't we send an alert message? - } + } /// /// Tell the client about the various child items and folders contained in the requested folder. @@ -485,7 +485,7 @@ namespace OpenSim.Region.Framework.Scenes // TODO: This code for looking in the folder for the library should be folded back into the // CachedUserInfo so that this class doesn't have to know the details (and so that multiple libraries, etc. - // can be handled transparently). + // can be handled transparently). InventoryFolderImpl fold; if ((fold = CommsManager.UserProfileCacheService.LibraryRoot.FindFolder(folderID)) != null) { @@ -515,7 +515,7 @@ namespace OpenSim.Region.Framework.Scenes return contents; - } + } /// /// Handle an inventory folder creation request from the client. @@ -535,7 +535,7 @@ namespace OpenSim.Region.Framework.Scenes "[AGENT INVENTORY]: Failed to move create folder for user {0} {1}", remoteClient.Name, remoteClient.AgentId); } - } + } /// /// Handle a client request to update the inventory folder @@ -570,7 +570,7 @@ namespace OpenSim.Region.Framework.Scenes remoteClient.Name, remoteClient.AgentId); } } - } + } public void HandleMoveInventoryFolder(IClientAPI remoteClient, UUID folderID, UUID parentID) { @@ -588,7 +588,7 @@ namespace OpenSim.Region.Framework.Scenes { m_log.WarnFormat("[AGENT INVENTORY]: request to move folder {0} but folder not found", folderID); } - } + } /// /// This should delete all the items and folders in the given directory. @@ -609,7 +609,7 @@ namespace OpenSim.Region.Framework.Scenes { m_log.WarnFormat("[AGENT INVENTORY]: Exception on purge folder for user {0}: {1}", remoteClient.AgentId, e.Message); } - } + } private void PurgeFolderAsync(UUID userID, UUID folderID) diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs index 226ec15..d01cef7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs @@ -805,7 +805,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// /// - /// + /// public bool CanCreateObjectInventory(int invType, UUID objectID, UUID userID) { CreateObjectInventoryHandler handler = OnCreateObjectInventory; @@ -856,7 +856,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// /// - /// + /// public bool CanCreateUserInventory(int invType, UUID userID) { CreateUserInventoryHandler handler = OnCreateUserInventory; @@ -877,7 +877,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// /// - /// + /// public bool CanEditUserInventory(UUID itemID, UUID userID) { EditUserInventoryHandler handler = OnEditUserInventory; @@ -891,14 +891,14 @@ namespace OpenSim.Region.Framework.Scenes } } return true; - } + } /// /// Check whether the specified user is allowed to copy the given inventory item from their own inventory. /// /// /// - /// + /// public bool CanCopyUserInventory(UUID itemID, UUID userID) { CopyUserInventoryHandler handler = OnCopyUserInventory; @@ -912,14 +912,14 @@ namespace OpenSim.Region.Framework.Scenes } } return true; - } + } /// /// Check whether the specified user is allowed to edit the given inventory item within their own inventory. /// /// /// - /// + /// public bool CanDeleteUserInventory(UUID itemID, UUID userID) { DeleteUserInventoryHandler handler = OnDeleteUserInventory; @@ -933,7 +933,7 @@ namespace OpenSim.Region.Framework.Scenes } } return true; - } + } public bool CanTeleport(UUID userID) { diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 39f3007..f8db354 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -996,7 +996,7 @@ namespace OpenSim.Region.Framework.Scenes // Loop it if (m_frame == Int32.MaxValue) - m_frame = 0; + m_frame = 0; otherMS = Environment.TickCount; // run through all entities looking for updates (slow) @@ -2023,12 +2023,12 @@ namespace OpenSim.Region.Framework.Scenes return true; } break; - case Cardinals.W: + case Cardinals.W: foreach (Border b in WestBorders) { if (b.TestCross(position)) return true; - } + } break; } } @@ -3270,7 +3270,7 @@ namespace OpenSim.Region.Framework.Scenes m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region", agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); //reason = String.Format("You are not currently on the access list for {0}",RegionInfo.RegionName); - return false; + return false; } } diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 2af98cc..0ac4ed4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs @@ -92,7 +92,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Registered classes that are capable of creating entities. /// - protected Dictionary m_entityCreators = new Dictionary(); + protected Dictionary m_entityCreators = new Dictionary(); /// /// The last allocated local prim id. When a new local id is requested, the next number in the sequence is @@ -279,7 +279,7 @@ namespace OpenSim.Region.Framework.Scenes _primAllocateMutex.ReleaseMutex(); return myID; - } + } #region Module Methods @@ -473,7 +473,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Shows various details about the sim based on the parameters supplied by the console command in openSimMain. /// - /// What to show + /// What to show public virtual void Show(string[] showParams) { switch (showParams[0]) @@ -489,7 +489,7 @@ namespace OpenSim.Region.Framework.Scenes } break; } - } + } public void AddCommand(object mod, string command, string shorthelp, string longhelp, CommandDelegate callback) { diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 0c471aa..54ac792 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -845,7 +845,7 @@ namespace OpenSim.Region.Framework.Scenes ScenePresence sp; lock (ScenePresences) - { + { ScenePresences.TryGetValue(agentID, out sp); } diff --git a/OpenSim/Region/Framework/Scenes/SceneManager.cs b/OpenSim/Region/Framework/Scenes/SceneManager.cs index 0019b23..1d4efd0 100644 --- a/OpenSim/Region/Framework/Scenes/SceneManager.cs +++ b/OpenSim/Region/Framework/Scenes/SceneManager.cs @@ -192,7 +192,7 @@ namespace OpenSim.Region.Framework.Scenes public void SaveCurrentSceneToXml(string filename) { IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface(); - if (serialiser != null) + if (serialiser != null) serialiser.SavePrimsToXml(CurrentOrFirstScene, filename); } @@ -205,7 +205,7 @@ namespace OpenSim.Region.Framework.Scenes public void LoadCurrentSceneFromXml(string filename, bool generateNewIDs, Vector3 loadOffset) { IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface(); - if (serialiser != null) + if (serialiser != null) serialiser.LoadPrimsFromXml(CurrentOrFirstScene, filename, generateNewIDs, loadOffset); } @@ -216,14 +216,14 @@ namespace OpenSim.Region.Framework.Scenes public void SaveCurrentSceneToXml2(string filename) { IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface(); - if (serialiser != null) + if (serialiser != null) serialiser.SavePrimsToXml2(CurrentOrFirstScene, filename); } public void SaveNamedPrimsToXml2(string primName, string filename) { IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface(); - if (serialiser != null) + if (serialiser != null) serialiser.SaveNamedPrimsToXml2(CurrentOrFirstScene, primName, filename); } @@ -233,7 +233,7 @@ namespace OpenSim.Region.Framework.Scenes public void LoadCurrentSceneFromXml2(string filename) { IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface(); - if (serialiser != null) + if (serialiser != null) serialiser.LoadPrimsFromXml2(CurrentOrFirstScene, filename); } @@ -257,7 +257,7 @@ namespace OpenSim.Region.Framework.Scenes public void LoadArchiveToCurrentScene(string filename) { IRegionArchiverModule archiver = CurrentOrFirstScene.RequestModuleInterface(); - if (archiver != null) + if (archiver != null) archiver.DearchiveRegion(filename); } diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index ad5d56f..5c0024f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -263,7 +263,7 @@ namespace OpenSim.Region.Framework.Scenes if ((m_scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || m_scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W) || m_scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || m_scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S)) && !IsAttachmentCheckFull()) - { + { m_scene.CrossPrimGroupIntoNewRegion(val, this, true); } @@ -454,7 +454,7 @@ namespace OpenSim.Region.Framework.Scenes /// public void AttachToScene(Scene scene) { - m_scene = scene; + m_scene = scene; RegionHandle = m_scene.RegionInfo.RegionHandle; if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0) @@ -479,9 +479,9 @@ namespace OpenSim.Region.Framework.Scenes //m_log.DebugFormat("[SCENE]: Given local id {0} to part {1}, linknum {2}, parent {3} {4}", part.LocalId, part.UUID, part.LinkNum, part.ParentID, part.ParentUUID); } - ApplyPhysics(m_scene.m_physicalPrim); + ApplyPhysics(m_scene.m_physicalPrim); - ScheduleGroupForFullUpdate(); + ScheduleGroupForFullUpdate(); } public Vector3 GroupScale() @@ -1037,12 +1037,12 @@ namespace OpenSim.Region.Framework.Scenes m_rootPart = part; if (!IsAttachment) part.ParentID = 0; - part.LinkNum = 0; + part.LinkNum = 0; // No locking required since the SOG should not be in the scene yet - one can't change root parts after // the scene object has been attached to the scene m_parts.Add(m_rootPart.UUID, m_rootPart); - } + } /// /// Add a new part to this scene object. The part must already be correctly configured. @@ -1160,7 +1160,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Delete this group from its scene and tell all the scene presences about that deletion. - /// + /// /// Broadcast deletions to all clients. public void DeleteGroup(bool silent) { @@ -1267,11 +1267,11 @@ namespace OpenSim.Region.Framework.Scenes if (part.LocalId != m_rootPart.LocalId) { part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), part.VolumeDetectActive, m_physicalPrim); - } - } + } + } // Hack to get the physics scene geometries in the right spot - ResetChildPrimPhysicsPositions(); + ResetChildPrimPhysicsPositions(); } else { @@ -1494,7 +1494,7 @@ namespace OpenSim.Region.Framework.Scenes List partList; lock (m_parts) - { + { partList = new List(m_parts.Values); } @@ -1744,7 +1744,7 @@ namespace OpenSim.Region.Framework.Scenes rootpart.PhysActor.PIDHoverActive = false; } } - } + } } /// diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index cce45fe..c915e9f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -42,7 +42,7 @@ using OpenSim.Region.Framework.Scenes.Scripting; using OpenSim.Region.Physics.Manager; namespace OpenSim.Region.Framework.Scenes -{ +{ #region Enumerations [Flags] @@ -187,7 +187,7 @@ namespace OpenSim.Region.Framework.Scenes public IEntityInventory Inventory { get { return m_inventory; } - } + } protected SceneObjectPartInventory m_inventory; [XmlIgnore] @@ -309,9 +309,9 @@ namespace OpenSim.Region.Framework.Scenes RotationOffset = rotationOffset; Velocity = new Vector3(0, 0, 0); AngularVelocity = new Vector3(0, 0, 0); - Acceleration = new Vector3(0, 0, 0); + Acceleration = new Vector3(0, 0, 0); m_TextureAnimation = new byte[0]; - m_particleSystem = new byte[0]; + m_particleSystem = new byte[0]; // Prims currently only contain a single folder (Contents). From looking at the Second Life protocol, // this appears to have the same UUID (!) as the prim. If this isn't the case, one can't drag items from @@ -384,7 +384,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Access should be via Inventory directly - this property temporarily remains for xml serialization purposes - /// + /// public TaskInventoryDictionary TaskInventory { get { return m_inventory.Items; } @@ -3484,7 +3484,7 @@ if (m_shape != null) { } else // it already has a physical representation { - pa.IsPhysical = UsePhysics; + pa.IsPhysical = UsePhysics; DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim if (m_parentGroup != null) @@ -3775,7 +3775,7 @@ if (m_shape != null) { public override string ToString() { return String.Format("{0} {1} (parent {2}))", Name, UUID, ParentGroup); - } + } #endregion Public Methods @@ -3823,11 +3823,11 @@ if (m_shape != null) { _everyoneMask &= _nextOwnerMask; Inventory.ApplyNextOwnerPermissions(); - } + } public bool CanBeDeleted() { return Inventory.CanBeDeleted(); } - } + } } diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 76bcd7e..098e010 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -105,7 +105,7 @@ namespace OpenSim.Region.Framework.Scenes public void ForceInventoryPersistence() { HasInventoryChanged = true; - } + } /// /// Reset UUIDs for all the items in the prim's inventory. This involves either generating @@ -164,7 +164,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// Change every item in this inventory to a new group. /// - /// + /// public void ChangeInventoryGroup(UUID groupID) { lock (Items) diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 286b7ca..0e1b8d9 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -776,7 +776,7 @@ namespace OpenSim.Region.Framework.Scenes // Moved this from SendInitialData to ensure that m_appearance is initialized // before the inventory is processed in MakeRootAgent. This fixes a race condition // related to the handling of attachments - //m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); + //m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance); if (m_scene.TestBorderCross(pos, Cardinals.E)) { Border crossedBorder = m_scene.GetCrossedBorder(pos, Cardinals.E); @@ -1235,7 +1235,7 @@ namespace OpenSim.Region.Framework.Scenes if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) { StandUp(); - } + } // Check if Client has camera in 'follow cam' or 'build' mode. Vector3 camdif = (Vector3.One * m_bodyRot - Vector3.One * CameraRotation); @@ -1489,7 +1489,7 @@ namespace OpenSim.Region.Framework.Scenes { // m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed)); // m_log.DebugFormat( -// "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3); +// "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3); AddNewMovement(agent_control_v3, q); @@ -2306,7 +2306,7 @@ namespace OpenSim.Region.Framework.Scenes /// Rotate the avatar to the given rotation and apply a movement in the given relative vector /// /// The vector in which to move. This is relative to the rotation argument - /// The direction in which this avatar should now face. + /// The direction in which this avatar should now face. public void AddNewMovement(Vector3 vec, Quaternion rotation) { if (m_isChildAgent) @@ -2649,7 +2649,7 @@ namespace OpenSim.Region.Framework.Scenes /// Tell the client for this scene presence what items it should be wearing now /// public void SendWearables() - { + { ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++); } @@ -3175,7 +3175,7 @@ namespace OpenSim.Region.Framework.Scenes else { wears[i++] = UUID.Zero; - wears[i++] = UUID.Zero; + wears[i++] = UUID.Zero; } } cAgent.Wearables = wears; @@ -3487,7 +3487,7 @@ namespace OpenSim.Region.Framework.Scenes public bool HasAttachments() { - return m_attachments.Count > 0; + return m_attachments.Count > 0; } public bool HasScriptedAttachments() diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index fe74158..f7544ac 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs @@ -122,13 +122,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization "[SERIALIZER]: Deserialization of xml failed with {0}. xml was {1}", e, xmlData); return null; } - } + } /// /// Serialize a scene object to the original xml format /// /// - /// + /// public static string ToOriginalXmlFormat(SceneObjectGroup sceneObject) { using (StringWriter sw = new StringWriter()) @@ -140,13 +140,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization return sw.ToString(); } - } + } /// /// Serialize a scene object to the original xml format /// /// - /// + /// public static void ToOriginalXmlFormat(SceneObjectGroup sceneObject, XmlTextWriter writer) { //m_log.DebugFormat("[SERIALIZER]: Starting serialization of {0}", Name); @@ -238,13 +238,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization m_log.ErrorFormat("[SERIALIZER]: Deserialization of xml failed with {0}. xml was {1}", e, xmlData); return null; } - } + } /// /// Serialize a scene object to the 'xml2' format. /// /// - /// + /// public static string ToXml2Format(SceneObjectGroup sceneObject) { using (StringWriter sw = new StringWriter()) @@ -262,7 +262,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization /// Serialize a scene object to the 'xml2' format. /// /// - /// + /// public static void ToXml2Format(SceneObjectGroup sceneObject, XmlTextWriter writer) { //m_log.DebugFormat("[SERIALIZER]: Starting serialization of SOG {0} to XML2", Name); @@ -288,6 +288,6 @@ namespace OpenSim.Region.Framework.Scenes.Serialization writer.WriteEndElement(); // End of SceneObjectGroup //m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0} to XML2, {1}ms", Name, System.Environment.TickCount - time); - } + } } } diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs index 7fa1b8c..cf0f345 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs @@ -236,7 +236,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization } SavePrimListToXml2(primList, fileName); - } + } public static void SavePrimListToXml2(List entityList, string fileName) { diff --git a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs index 7f44bf1..ee288b3 100644 --- a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs @@ -450,7 +450,7 @@ namespace OpenSim.Region.Framework.Scenes { addFrameMS(ms); addAgentMS(ms); - } + } #endregion } diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs index 3b0e77f..fc66c85 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs @@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests { [TestFixture, LongRunning] public class EntityManagerTests - { + { static public Random random; SceneObjectGroup found; Scene scene = SceneSetupHelpers.SetupScene(); @@ -81,13 +81,13 @@ namespace OpenSim.Region.Framework.Scenes.Tests Assert.That(entman.ContainsKey(obj1), Is.False); Assert.That(entman.ContainsKey(li1), Is.False); - Assert.That(entman.ContainsKey(obj2), Is.False); - Assert.That(entman.ContainsKey(li2), Is.False); + Assert.That(entman.ContainsKey(obj2), Is.False); + Assert.That(entman.ContainsKey(li2), Is.False); } [Test] public void T011_ThreadAddRemoveTest() - { + { TestHelper.InMethod(); // Console.WriteLine("Beginning test {0}", MethodBase.GetCurrentMethod()); @@ -148,12 +148,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests int size = random.Next(40,80); char ch ; for (int i=0; i [TestFixture] public class SceneObjectBasicTests - { + { /// /// Test adding an object to a scene. /// [Test, LongRunning] public void TestAddSceneObject() - { + { TestHelper.InMethod(); Scene scene = SceneSetupHelpers.SetupScene(); @@ -61,7 +61,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests //m_log.Debug("retrievedPart : {0}", retrievedPart); // If the parts have the same UUID then we will consider them as one and the same - Assert.That(retrievedPart.UUID, Is.EqualTo(part.UUID)); + Assert.That(retrievedPart.UUID, Is.EqualTo(part.UUID)); } /// @@ -72,11 +72,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests { TestHelper.InMethod(); - TestScene scene = SceneSetupHelpers.SetupScene(); + TestScene scene = SceneSetupHelpers.SetupScene(); SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene); scene.DeleteSceneObject(part.ParentGroup, false); - SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); + SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId); Assert.That(retrievedPart, Is.Null); } @@ -115,13 +115,13 @@ namespace OpenSim.Region.Framework.Scenes.Tests //[Test] //public void TestDeleteSceneObjectAsyncToUserInventory() //{ - // TestHelper.InMethod(); - // //log4net.Config.XmlConfigurator.Configure(); + // TestHelper.InMethod(); + // //log4net.Config.XmlConfigurator.Configure(); // UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001"); // string myObjectName = "Fred"; - // TestScene scene = SceneSetupHelpers.SetupScene(); + // TestScene scene = SceneSetupHelpers.SetupScene(); // SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene, myObjectName); // Assert.That( diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index bf13607..e15dc84 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs @@ -45,7 +45,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests /// /// Linking tests /// - [TestFixture] + [TestFixture] public class SceneObjectLinkingTests { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -174,13 +174,13 @@ namespace OpenSim.Region.Framework.Scenes.Tests // Link grp4 to grp3. grp3.LinkToGroup(grp4); - // At this point we should have 4 parts total in two groups. + // At this point we should have 4 parts total in two groups. Assert.That(grp1.Children.Count == 2); Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); - Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); + Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); Assert.That(grp3.Children.Count == 2); Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); - Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); + Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); if (debugtest) { @@ -194,7 +194,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests m_log.Debug("Group3: Pos:"+grp3.AbsolutePosition+", Rot:"+grp3.Rotation); m_log.Debug("Group3: Prim1: OffsetPosition:"+part3.OffsetPosition+", OffsetRotation:"+part3.RotationOffset); m_log.Debug("Group3: Prim2: OffsetPosition:"+part4.OffsetPosition+", OffsetRotation:"+part4.RotationOffset); - } + } // Required for linking grp1.RootPart.UpdateFlag = 0; @@ -253,6 +253,6 @@ namespace OpenSim.Region.Framework.Scenes.Tests && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) && (part4.RotationOffset.W - compareQuaternion.W < 0.00003)); - } + } } } diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs index 1c9bce4..8a27b7b 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs @@ -41,11 +41,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests public class SceneTests { private class FakeStorageManager : StorageManager - { + { private class FakeRegionDataStore : IRegionDataStore { public void Initialise(string filename) - { + { } public void Dispose() diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs index 751c1cd..b46eb8e 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs @@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests { /// /// Teleport tests in a standalone OpenSim - /// + /// [TestFixture] public class StandaloneTeleportTests { @@ -53,7 +53,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests /// /// Does not yet do what is says on the tin. /// Commenting for now - //[Test, LongRunning] + //[Test, LongRunning] public void TestSimpleNotNeighboursTeleport() { TestHelper.InMethod(); diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs index f449e18..525a93a 100644 --- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs +++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs @@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Scenes { /// /// Gather uuids for a given entity. - /// + /// /// /// This does a deep inspection of the entity to retrieve all the assets it uses (whether as textures, as scripts /// contained in inventory, as scripts contained in objects contained in another object's inventory, etc. Assets @@ -82,7 +82,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// The uuid of the asset for which to gather referenced assets /// The type of the asset for the uuid given - /// The assets gathered + /// The assets gathered public void GatherAssetUuids(UUID assetUuid, AssetType assetType, IDictionary assetUuids) { assetUuids[assetUuid] = 1; @@ -142,7 +142,7 @@ namespace OpenSim.Region.Framework.Scenes // If the prim is a sculpt then preserve this information too if (part.Shape.SculptTexture != UUID.Zero) - assetUuids[part.Shape.SculptTexture] = 1; + assetUuids[part.Shape.SculptTexture] = 1; TaskInventoryDictionary taskDictionary = (TaskInventoryDictionary)part.TaskInventory.Clone(); @@ -167,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// The callback made when we request the asset for an object from the asset service. - /// + /// protected void AssetReceived(string id, Object sender, AssetBase asset) { lock (this) @@ -242,7 +242,7 @@ namespace OpenSim.Region.Framework.Scenes AssetBase assetBase = GetAsset(wearableAssetUuid); if (null != assetBase) - { + { //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data); wearableAsset.Decode(); @@ -275,6 +275,6 @@ namespace OpenSim.Region.Framework.Scenes SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml); GatherAssetUuids(sog, assetUuids); } - } + } } } \ No newline at end of file -- cgit v1.1 From 606e831ff5337fb5e94dcebf9d6852bd4c434d4b Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 1 Oct 2009 09:38:36 +0900 Subject: Formatting cleanup. --- OpenSim/Region/Framework/Interfaces/IDialogModule.cs | 4 ++-- OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs | 2 +- OpenSim/Region/Framework/Scenes/Border.cs | 8 ++++---- OpenSim/Region/Framework/Scenes/EntityBase.cs | 2 +- OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 2 +- OpenSim/Region/Framework/Scenes/Scene.cs | 2 +- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 2 +- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 6 +++--- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +- OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs index d1c37da..ce57c44 100644 --- a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs @@ -73,7 +73,7 @@ namespace OpenSim.Region.Framework.Interfaces void SendAlertToUser(string firstName, string lastName, string message, bool modal); /// - /// Send an alert message to all users in the scene. + /// Send an alert message to all users in the scene. /// /// void SendGeneralAlert(string message); @@ -129,7 +129,7 @@ namespace OpenSim.Region.Framework.Interfaces /// /// The user sending the message /// The name of the user doing the sending - /// The message being sent to the user + /// The message being sent to the user void SendNotificationToUsersInEstate(UUID fromAvatarID, string fromAvatarName, string message); } } diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs index fa64333..9ad2036 100644 --- a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs @@ -52,7 +52,7 @@ namespace OpenSim.Region.Framework.Interfaces /// This method occurs asynchronously. If you want notification of when it has completed then subscribe to /// the EventManager.OnOarFileSaved event. /// - /// + /// /// If supplied, this request Id is later returned in the saved event void ArchiveRegion(string savePath, Guid requestId); diff --git a/OpenSim/Region/Framework/Scenes/Border.cs b/OpenSim/Region/Framework/Scenes/Border.cs index 1488c5b..c6a6511 100644 --- a/OpenSim/Region/Framework/Scenes/Border.cs +++ b/OpenSim/Region/Framework/Scenes/Border.cs @@ -55,11 +55,11 @@ namespace OpenSim.Region.Framework.Scenes /// Creates a Border. The line is perpendicular to the direction cardinal. /// IE: if the direction cardinal is South, the line is West->East /// - /// The starting point for the line of the border. - /// The position of an object must be greater then this for this border to trigger. + /// The starting point for the line of the border. + /// The position of an object must be greater then this for this border to trigger. /// Perpendicular to the direction cardinal - /// The ending point for the line of the border. - /// The position of an object must be less then this for this border to trigger. + /// The ending point for the line of the border. + /// The position of an object must be less then this for this border to trigger. /// Perpendicular to the direction cardinal /// The position that triggers border the border /// cross parallel to the direction cardinal. On the North cardinal, this diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs index 00c99c5..c2ec6a5 100644 --- a/OpenSim/Region/Framework/Scenes/EntityBase.cs +++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs @@ -130,7 +130,7 @@ namespace OpenSim.Region.Framework.Scenes public abstract void UpdateMovement(); /// - /// Performs any updates that need to be done at each frame, as opposed to immediately. + /// Performs any updates that need to be done at each frame, as opposed to immediately. /// These included scheduled updates and updates that occur due to physics processing. /// public abstract void Update(); diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 6c9856d..e561efb 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs @@ -544,7 +544,7 @@ namespace OpenSim.Region.Framework.Scenes /// FIXME: We call add new inventory folder because in the data layer, we happen to use an SQL REPLACE /// so this will work to rename an existing folder. Needless to say, to rely on this is very confusing, /// and needs to be changed. - /// + /// /// /// /// diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index f8db354..05a6f13 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -3419,7 +3419,7 @@ namespace OpenSim.Region.Framework.Scenes /// We've got an update about an agent that sees into this region, /// send it to ScenePresence for processing It's the full data. /// - /// Agent that contains all of the relevant things about an agent. + /// Agent that contains all of the relevant things about an agent. /// Appearance, animations, position, etc. /// true if we handled it. public virtual bool IncomingChildAgentDataUpdate(AgentData cAgentData) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 5c0024f..25489d8 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -133,7 +133,7 @@ namespace OpenSim.Region.Framework.Scenes /// Is this scene object acting as an attachment? /// /// We return false if the group has already been deleted. - /// + /// /// TODO: At the moment set must be done on the part itself. There may be a case for doing it here since I /// presume either all or no parts in a linkset can be part of an attachment (in which /// case the value would get proprogated down into all the descendent parts). diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index c915e9f..ea6bc9c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -142,7 +142,7 @@ namespace OpenSim.Region.Framework.Scenes public UUID FromItemID = UUID.Zero; /// - /// The UUID of the user inventory item from which this object was rezzed if this is a root part. + /// The UUID of the user inventory item from which this object was rezzed if this is a root part. /// If UUID.Zero then either this is not a root part or there is no connection with a user inventory item. /// private UUID m_fromUserInventoryItemID = UUID.Zero; @@ -363,7 +363,7 @@ namespace OpenSim.Region.Framework.Scenes /// /// A relic from when we we thought that prims contained folder objects. In - /// reality, prim == folder + /// reality, prim == folder /// Exposing this is not particularly good, but it's one of the least evils at the moment to see /// folder id from prim inventory item data, since it's not (yet) actually stored with the prim. /// @@ -3386,7 +3386,7 @@ if (m_shape != null) { } else { - IsPhantom = false; + IsPhantom = false; // If volumedetect is active we don't want phantom to be applied. // If this is a new call to VD out of the state "phantom" // this will also cause the prim to be visible to physics diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0e1b8d9..66fefa3 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2313,7 +2313,7 @@ namespace OpenSim.Region.Framework.Scenes { m_log.Debug("DEBUG: AddNewMovement: child agent, Making root agent!"); - // we have to reset the user's child agent connections. + // we have to reset the user's child agent connections. // Likely, here they've lost the eventqueue for other regions so border // crossings will fail at this point unless we reset them. diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs index 288fb36..0ed00de 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs @@ -127,7 +127,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests // Assert.That( // scene.CommsManager.UserAdminService.AddUser( // "Bob", "Hoskins", "test", "test@test.com", 1000, 1000, agentId), - // Is.EqualTo(agentId)); + // Is.EqualTo(agentId)); // IClientAPI client = SceneSetupHelpers.AddRootAgent(scene, agentId); -- cgit v1.1 From 8e3dd64282495e8f7b18efcb2a2e57218a3db6ad Mon Sep 17 00:00:00 2001 From: James J Greensky Date: Wed, 30 Sep 2009 16:52:59 -0700 Subject: Removed an innefficent List.Contains lookup from UpdateQueue Changed the underlying data structure used to detected duplicate in OpenSim.Region.Framework.Scenes.Types.UpdateQueue from a List to a Dictionary. --- OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs index 21cda09..213e954 100644 --- a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs +++ b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs @@ -38,7 +38,7 @@ namespace OpenSim.Region.Framework.Scenes.Types { private Queue m_queue; - private List m_ids; + private Dictionary m_ids; private object m_syncObject = new object(); @@ -50,7 +50,7 @@ namespace OpenSim.Region.Framework.Scenes.Types public UpdateQueue() { m_queue = new Queue(); - m_ids = new List(); + m_ids = new Dictionary(); } public void Clear() @@ -66,9 +66,8 @@ namespace OpenSim.Region.Framework.Scenes.Types { lock (m_syncObject) { - if (!m_ids.Contains(part.UUID)) - { - m_ids.Add(part.UUID); + if (!m_ids.ContainsKey(part.UUID)) { + m_ids.Add(part.UUID, true); m_queue.Enqueue(part); } } -- cgit v1.1 From d6301db382111bf57a7893215ea84b7e6b09187e Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 2 Oct 2009 00:45:31 +0100 Subject: Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity" This reverts commit 39842eb4af3b5a8c52d56c0f7f05ad54f0651bb0. --- OpenSim/Region/Framework/Scenes/EntityBase.cs | 18 +++++-------- OpenSim/Region/Framework/Scenes/Scene.cs | 4 +-- .../Region/Framework/Scenes/SceneObjectGroup.cs | 30 +++++----------------- 3 files changed, 16 insertions(+), 36 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs index 27a0785..c2ec6a5 100644 --- a/OpenSim/Region/Framework/Scenes/EntityBase.cs +++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs @@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Scenes set { m_velocity = value; } } - protected Quaternion m_rotation; + protected Quaternion m_rotation = new Quaternion(0f, 0f, 1f, 0f); public virtual Quaternion Rotation { @@ -102,14 +102,6 @@ namespace OpenSim.Region.Framework.Scenes set { m_rotation = value; } } - protected Vector3 m_scale; - - public virtual Vector3 Scale - { - get { return m_scale; } - set { m_scale = value; } - } - protected uint m_localId; public virtual uint LocalId @@ -123,9 +115,13 @@ namespace OpenSim.Region.Framework.Scenes /// public EntityBase() { - m_rotation = Quaternion.Identity; - m_scale = Vector3.One; + m_uuid = UUID.Zero; + + m_pos = Vector3.Zero; + m_velocity = Vector3.Zero; + Rotation = Quaternion.Identity; m_name = "(basic entity)"; + m_rotationalvelocity = Vector3.Zero; } /// diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 0aa587e..05a6f13 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -2305,8 +2305,8 @@ namespace OpenSim.Region.Framework.Scenes "to avatar {0} at position {1}", sp.UUID.ToString(), grp.AbsolutePosition); AttachObject(sp.ControllingClient, - grp.LocalId, 0, - grp.Rotation, + grp.LocalId, (uint)0, + grp.GroupRotation, grp.AbsolutePosition, false); RootPrim.RemFlag(PrimFlags.TemporaryOnRez); grp.SendGroupFullUpdate(); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 6807e1b..25489d8 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -204,22 +204,9 @@ namespace OpenSim.Region.Framework.Scenes get { return m_parts.Count; } } - public override Quaternion Rotation + public Quaternion GroupRotation { get { return m_rootPart.RotationOffset; } - set { m_rootPart.RotationOffset = value; } - } - - public override Vector3 Scale - { - get { return m_rootPart.Scale; } - set { m_rootPart.Scale = value; } - } - - public override Vector3 Velocity - { - get { return m_rootPart.Velocity; } - set { m_rootPart.Velocity = value; } } public UUID GroupID @@ -541,7 +528,7 @@ namespace OpenSim.Region.Framework.Scenes // Temporary commented to stop compiler warning //Vector3 partPosition = // new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z); - Quaternion parentrotation = Rotation; + Quaternion parentrotation = GroupRotation; // Telling the prim to raytrace. //EntityIntersection inter = part.TestIntersection(hRay, parentrotation); @@ -1884,17 +1871,14 @@ namespace OpenSim.Region.Framework.Scenes checkAtTargets(); - Quaternion rot = Rotation; - - if (UsePhysics && - ((Math.Abs(lastPhysGroupRot.W - rot.W) > 0.1f) - || (Math.Abs(lastPhysGroupRot.X - rot.X) > 0.1f) - || (Math.Abs(lastPhysGroupRot.Y - rot.Y) > 0.1f) - || (Math.Abs(lastPhysGroupRot.Z - rot.Z) > 0.1f))) + if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1) + || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1) + || (Math.Abs(lastPhysGroupRot.Y - GroupRotation.Y) > 0.1) + || (Math.Abs(lastPhysGroupRot.Z - GroupRotation.Z) > 0.1))) { m_rootPart.UpdateFlag = 1; - lastPhysGroupRot = rot; + lastPhysGroupRot = GroupRotation; } foreach (SceneObjectPart part in m_parts.Values) -- cgit v1.1 From 24d5b5750369cbc90aa60e0ae34387e3ba6e1416 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Thu, 1 Oct 2009 17:28:42 -0700 Subject: Added messages to assertions in the failing tests, so that we know which ones are failing. --- .../Scenes/Tests/SceneObjectLinkingTests.cs | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index e15dc84..aa2f53f 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs @@ -94,10 +94,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests } // root part should have no offset position or rotation - Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); + Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, + "root part should have no offset position or rotation"); // offset position should be root part position - part2.absolute position. - Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); + Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), + "offset position should be root part position - part2.absolute position."); float roll = 0; float pitch = 0; @@ -116,7 +118,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests if (debugtest) m_log.Debug(rotEuler2); - Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); + Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), + "Not exactly sure what this is asserting..."); // Delink part 2 grp1.DelinkFromGroup(part2.LocalId); @@ -125,7 +128,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests m_log.Debug("Group2: Prim2: OffsetPosition:" + part2.AbsolutePosition + ", OffsetRotation:" + part2.RotationOffset); Assert.That(grp1.Children.Count, Is.EqualTo(1), "Group 1 still contained part2 after delink."); - Assert.That(part2.AbsolutePosition == Vector3.Zero); + Assert.That(part2.AbsolutePosition == Vector3.Zero, "The absolute position should be zero"); } [Test] @@ -175,10 +178,10 @@ namespace OpenSim.Region.Framework.Scenes.Tests grp3.LinkToGroup(grp4); // At this point we should have 4 parts total in two groups. - Assert.That(grp1.Children.Count == 2); + Assert.That(grp1.Children.Count == 2, "Group1 children count should be 2"); Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); - Assert.That(grp3.Children.Count == 2); + Assert.That(grp3.Children.Count == 2, "Group3 children count should be 2"); Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); @@ -201,10 +204,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests grp3.RootPart.UpdateFlag = 0; // root part should have no offset position or rotation - Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); + Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, + "root part should have no offset position or rotation (again)"); // offset position should be root part position - part2.absolute position. - Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); + Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), + "offset position should be root part position - part2.absolute position (again)"); float roll = 0; float pitch = 0; @@ -223,7 +228,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests if (debugtest) m_log.Debug(rotEuler2); - Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); + Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), + "Not sure what this assertion is all about..."); // Now we're linking the first group to the third group. This will make the first group child parts of the third one. grp3.LinkToGroup(grp1); @@ -246,13 +252,14 @@ namespace OpenSim.Region.Framework.Scenes.Tests m_log.Debug("Group3: Prim2: OffsetPosition:" + part4.OffsetPosition + ", OffsetRotation:" + part4.RotationOffset); } - Assert.That(part2.AbsolutePosition == Vector3.Zero); - Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20)); + Assert.That(part2.AbsolutePosition == Vector3.Zero, "Badness 1"); + Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20), "Badness 2"); Quaternion compareQuaternion = new Quaternion(0, 0.7071068f, 0, 0.7071068f); Assert.That((part4.RotationOffset.X - compareQuaternion.X < 0.00003) && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) - && (part4.RotationOffset.W - compareQuaternion.W < 0.00003)); + && (part4.RotationOffset.W - compareQuaternion.W < 0.00003), + "Badness 3"); } } } -- cgit v1.1