From 07c8e79b0335437b5acbfdd040228015b1b1fb2f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 1 Jul 2016 19:32:14 +0100 Subject: missing file --- OpenSim/Region/Framework/Interfaces/IEventQueue.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs index f4014db..4361310 100644 --- a/OpenSim/Region/Framework/Interfaces/IEventQueue.cs +++ b/OpenSim/Region/Framework/Interfaces/IEventQueue.cs @@ -58,7 +58,6 @@ namespace OpenSim.Region.Framework.Interfaces void ChatterBoxSessionAgentListUpdates(UUID sessionID, UUID fromAgent, UUID anotherAgent, bool canVoiceChat, bool isModerator, bool textMute); void ParcelProperties(ParcelPropertiesMessage parcelPropertiesMessage, UUID avatarID); - void GroupMembership(AgentGroupDataUpdatePacket groupUpdate, UUID avatarID); void GroupMembershipData(UUID receiverAgent, GroupMembershipData[] data); OSD ScriptRunningEvent(UUID objectID, UUID itemID, bool running, bool mono); OSD BuildEvent(string eventName, OSD eventBody); -- cgit v1.1 From a443dcce8974a8ed197ad144599050f75e6aee25 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 3 Jul 2016 10:22:14 +0100 Subject: try to place avatars on a nicer location, when they arrive into a banned parcel --- OpenSim/Region/Framework/Scenes/Scene.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index a75b460..5290abb 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -4309,14 +4309,14 @@ namespace OpenSim.Region.Framework.Scenes if (banned || restricted) { ILandObject nearestParcel = GetNearestAllowedParcel(agentID, posX, posY); + Vector2? newPosition = null; if (nearestParcel != null) { //Move agent to nearest allowed - Vector2 newPosition = GetParcelSafeCorner(nearestParcel); - posX = newPosition.X; - posY = newPosition.Y; +// Vector2 newPosition = GetParcelSafeCorner(nearestParcel); + newPosition = nearestParcel.GetNearestPoint(new Vector3(posX, posY,0)); } - else + if(newPosition == null) { if (banned) { @@ -4329,6 +4329,11 @@ namespace OpenSim.Region.Framework.Scenes } return false; } + else + { + posX = newPosition.Value.X; + posY = newPosition.Value.Y; + } } reason = ""; return true; -- cgit v1.1 From 42dd02fc321a52179dda89a49d4bee2e9c18be45 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 3 Jul 2016 15:47:20 +0100 Subject: scale down position X and Y acording to region size on sending coarse Updates. Viewers need to scale up by same amount. --- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index f9f795f..90ee1d1 100755 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -242,6 +242,19 @@ namespace OpenSim.Region.Framework.Scenes coarseLocations = new List(); avatarUUIDs = new List(); + // coarse locations are sent as BYTE, so limited to the 255m max of normal regions + // try to work around that scale down X and Y acording to region size, so reducing the resolution + // + // viewers need to scale up + float scaleX = m_parentScene.RegionInfo.RegionSizeX / Constants.RegionSize; + if (scaleX == 0) + scaleX = 1.0f; + scaleX = 1.0f / scaleX; + float scaleY = m_parentScene.RegionInfo.RegionSizeY / Constants.RegionSize; + if (scaleY == 0) + scaleY = 1.0f; + scaleY = 1.0f / scaleY; + List presences = GetScenePresences(); for (int i = 0; i < Math.Min(presences.Count, maxLocations); ++i) { @@ -250,9 +263,11 @@ namespace OpenSim.Region.Framework.Scenes // If this presence is a child agent, we don't want its coarse locations if (sp.IsChildAgent) continue; + Vector3 pos = sp.AbsolutePosition; + pos.X *= scaleX; + pos.Y *= scaleY; - coarseLocations.Add(sp.AbsolutePosition); - + coarseLocations.Add(pos); avatarUUIDs.Add(sp.UUID); } } -- cgit v1.1 From e00603f78ad10b86abf25b432f6ebfea38506b34 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 3 Jul 2016 12:17:19 -0700 Subject: New config var: DisableObjectTransfer. If set to True, objects never cross; instead they stay in the region, possibly placed outside its borders. --- OpenSim/Region/Framework/Scenes/Scene.cs | 7 +++++++ OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 1 + 2 files changed, 8 insertions(+) (limited to 'OpenSim/Region/Framework') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 5290abb..0d19e94 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -250,6 +250,12 @@ namespace OpenSim.Region.Framework.Scenes /// public int m_linksetPhysCapacity = 0; + /// + /// When placed outside the region's border, do we transfer the objects or + /// do we keep simulating them here? + /// + public bool DisableObjectTransfer { get; set; } + public bool m_useFlySlow; public bool m_useTrashOnDelete = true; @@ -1155,6 +1161,7 @@ namespace OpenSim.Region.Framework.Scenes if (entityTransferConfig != null) { AllowAvatarCrossing = entityTransferConfig.GetBoolean("AllowAvatarCrossing", AllowAvatarCrossing); + DisableObjectTransfer = entityTransferConfig.GetBoolean("DisableObjectTransfer", false); } #region Interest Management diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index e226196..cb1bf55 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -556,6 +556,7 @@ namespace OpenSim.Region.Framework.Scenes && !Scene.PositionIsInCurrentRegion(val) && !IsAttachmentCheckFull() && !Scene.LoadingPrims + && !Scene.DisableObjectTransfer ) { if (!inTransit) -- cgit v1.1