From 582375509c82220c40579c4e4095225bd9d67010 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Mar 2010 22:48:49 +0000
Subject: refactor: move RezSingleAttachmentFromInventory() from SceneGraph to
AttachmentsModule
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 2 +-
OpenSim/Region/Framework/Scenes/Scene.cs | 6 +--
OpenSim/Region/Framework/Scenes/SceneGraph.cs | 53 ----------------------
3 files changed, 4 insertions(+), 57 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 7277527..dcd92d6 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1854,7 +1854,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.DebugFormat("[USER INVENTORY]: Rezzing single attachment from item {0} for {1}", itemID, remoteClient.Name);
- SceneObjectGroup att = m_sceneGraph.RezSingleAttachment(remoteClient, itemID, AttachmentPt);
+ SceneObjectGroup att = AttachmentsModule.RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt);
if (att == null)
{
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index d4d134f..50553dd 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2338,10 +2338,10 @@ namespace OpenSim.Region.Framework.Scenes
//m_log.DebugFormat(" >>> IncomingCreateObject(userID, itemID) <<< {0} {1}", userID, itemID);
ScenePresence sp = GetScenePresence(userID);
- if (sp != null)
+ if (sp != null && AttachmentsModule != null)
{
- uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID);
- m_sceneGraph.RezSingleAttachment(sp.ControllingClient, itemID, attPt);
+ uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID);
+ AttachmentsModule.RezSingleAttachmentFromInventory(sp.ControllingClient, itemID, attPt);
}
return false;
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index a88d456..d944834 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -486,59 +486,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- ///
- /// Rez an attachment
- ///
- ///
- ///
- ///
- /// The scene object that was attached. Null if the scene object could not be found
- public SceneObjectGroup RezSingleAttachment(IClientAPI remoteClient, UUID itemID, uint AttachmentPt)
- {
- IInventoryAccessModule invAccess = m_parentScene.RequestModuleInterface();
- if (invAccess != null)
- {
- SceneObjectGroup objatt = invAccess.RezObject(remoteClient,
- itemID, Vector3.Zero, Vector3.Zero, UUID.Zero, (byte)1, true,
- false, false, remoteClient.AgentId, true);
-
-// m_log.DebugFormat(
-// "[SCENE GRAPH]: Retrieved single object {0} for attachment to {1} on point {2}",
-// objatt.Name, remoteClient.Name, AttachmentPt);
-
- if (objatt != null)
- {
- bool tainted = false;
- if (AttachmentPt != 0 && AttachmentPt != objatt.GetAttachmentPoint())
- tainted = true;
-
- m_parentScene.AttachmentsModule.AttachObject(
- remoteClient, objatt.LocalId, AttachmentPt, Quaternion.Identity, objatt.AbsolutePosition, false);
- //objatt.ScheduleGroupForFullUpdate();
-
- if (tainted)
- objatt.HasGroupChanged = true;
-
- // Fire after attach, so we don't get messy perms dialogs
- // 3 == AttachedRez
- objatt.CreateScriptInstances(0, true, m_parentScene.DefaultScriptEngine, 3);
-
- // Do this last so that event listeners have access to all the effects of the attachment
- m_parentScene.EventManager.TriggerOnAttach(objatt.LocalId, itemID, remoteClient.AgentId);
- }
- else
- {
- m_log.WarnFormat(
- "[SCENE GRAPH]: Could not retrieve item {0} for attaching to avatar {1} at point {2}",
- itemID, remoteClient.Name, AttachmentPt);
- }
-
- return objatt;
- }
-
- return null;
- }
-
protected internal ScenePresence CreateAndAddChildScenePresence(IClientAPI client, AvatarAppearance appearance)
{
ScenePresence newAvatar = null;
--
cgit v1.1
From 315fa06c75d023ef3e4285842dd730a4d94b78d6 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Mar 2010 23:20:38 +0000
Subject: refactor: Move another RezSingleAttachment() from Scene.Inventory to
AttachmentsModule
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 25 +---------------------
OpenSim/Region/Framework/Scenes/Scene.cs | 8 +++----
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 12 +++++------
3 files changed, 11 insertions(+), 34 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index dcd92d6..41533a1 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1842,35 +1842,12 @@ namespace OpenSim.Region.Framework.Scenes
EventManager.TriggerOnAttach(localID, itemID, avatarID);
}
- ///
- /// Called when the client receives a request to rez a single attachment on to the avatar from inventory
- /// (RezSingleAttachmentFromInv packet).
- ///
- ///
- ///
- ///
- ///
- public UUID RezSingleAttachment(IClientAPI remoteClient, UUID itemID, uint AttachmentPt)
- {
- m_log.DebugFormat("[USER INVENTORY]: Rezzing single attachment from item {0} for {1}", itemID, remoteClient.Name);
-
- SceneObjectGroup att = AttachmentsModule.RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt);
-
- if (att == null)
- {
- AttachmentsModule.ShowDetachInUserInventory(itemID, remoteClient);
- return UUID.Zero;
- }
-
- return AttachmentsModule.SetAttachmentInventoryStatus(att, remoteClient, itemID, AttachmentPt);
- }
-
public void RezMultipleAttachments(IClientAPI remoteClient, RezMultipleAttachmentsFromInvPacket.HeaderDataBlock header,
RezMultipleAttachmentsFromInvPacket.ObjectDataBlock[] objects)
{
foreach (RezMultipleAttachmentsFromInvPacket.ObjectDataBlock obj in objects)
{
- RezSingleAttachment(remoteClient, obj.ItemID, obj.AttachmentPt);
+ AttachmentsModule.RezSingleAttachmentFromInventory(remoteClient, obj.ItemID, obj.AttachmentPt);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 50553dd..c510dc8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2642,13 +2642,13 @@ namespace OpenSim.Region.Framework.Scenes
}
public virtual void SubscribeToClientAttachmentEvents(IClientAPI client)
- {
- client.OnRezSingleAttachmentFromInv += RezSingleAttachment;
+ {
client.OnRezMultipleAttachmentsFromInv += RezMultipleAttachments;
client.OnObjectDetach += m_sceneGraph.DetachObject;
if (AttachmentsModule != null)
{
+ client.OnRezSingleAttachmentFromInv += AttachmentsModule.RezSingleAttachmentFromInventory;
client.OnObjectAttach += AttachmentsModule.AttachObject;
client.OnDetachAttachmentIntoInv += AttachmentsModule.ShowDetachInUserInventory;
}
@@ -2799,12 +2799,12 @@ namespace OpenSim.Region.Framework.Scenes
public virtual void UnSubscribeToClientAttachmentEvents(IClientAPI client)
{
- client.OnRezMultipleAttachmentsFromInv -= RezMultipleAttachments;
- client.OnRezSingleAttachmentFromInv -= RezSingleAttachment;
+ client.OnRezMultipleAttachmentsFromInv -= RezMultipleAttachments;
client.OnObjectDetach -= m_sceneGraph.DetachObject;
if (AttachmentsModule != null)
{
+ client.OnRezSingleAttachmentFromInv -= AttachmentsModule.RezSingleAttachmentFromInventory;
client.OnObjectAttach -= AttachmentsModule.AttachObject;
client.OnDetachAttachmentIntoInv -= AttachmentsModule.ShowDetachInUserInventory;
}
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 7661f1e..317c908 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3738,7 +3738,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (null == m_appearance)
{
- m_log.WarnFormat("[ATTACHMENT] Appearance has not been initialized for agent {0}", UUID);
+ m_log.WarnFormat("[ATTACHMENT]: Appearance has not been initialized for agent {0}", UUID);
return;
}
@@ -3762,12 +3762,12 @@ namespace OpenSim.Region.Framework.Scenes
try
{
// Rez from inventory
- UUID asset = m_scene.RezSingleAttachment(ControllingClient,
- itemID, (uint)p);
-
- m_log.InfoFormat("[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})",
- p, itemID, assetID, asset);
+ UUID asset
+ = m_scene.AttachmentsModule.RezSingleAttachmentFromInventory(ControllingClient, itemID, (uint)p);
+ m_log.InfoFormat(
+ "[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})",
+ p, itemID, assetID, asset);
}
catch (Exception e)
{
--
cgit v1.1
From 2ebc4be99d20269dd3cc261022f5f760b54fde6c Mon Sep 17 00:00:00 2001
From: dahlia
Date: Sat, 13 Mar 2010 12:04:49 -0800
Subject: add a null check in ScenePresence constructor
---
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 317c908..6f16ff3 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -676,7 +676,8 @@ namespace OpenSim.Region.Framework.Scenes
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, m_uuid);
- m_userLevel = account.UserLevel;
+ if (account != null)
+ m_userLevel = account.UserLevel;
IGroupsModule gm = m_scene.RequestModuleInterface();
if (gm != null)
--
cgit v1.1