aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2010-02-08 19:02:20 +0000
committerJustin Clark-Casey (justincc)2010-02-08 19:02:20 +0000
commit00947cf2ca7a9315ae1d508507db0c95348e25ec (patch)
treeb6f9168e8cb6f299c2a66288bd5094dac49ccaa7 /OpenSim/Region/Framework/Scenes/Scene.cs
parentminor: log what kind of wearable cannot be found (diff)
downloadopensim-SC-00947cf2ca7a9315ae1d508507db0c95348e25ec.zip
opensim-SC-00947cf2ca7a9315ae1d508507db0c95348e25ec.tar.gz
opensim-SC-00947cf2ca7a9315ae1d508507db0c95348e25ec.tar.bz2
opensim-SC-00947cf2ca7a9315ae1d508507db0c95348e25ec.tar.xz
Add EventManager.OnIncomingSceneObject event which is triggered by an incoming scene object
Add a read-only Attachments property to ScenePresence
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs36
1 files changed, 22 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 73b0b3e..039d074 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2406,9 +2406,14 @@ namespace OpenSim.Region.Framework.Scenes
2406 return successYN; 2406 return successYN;
2407 } 2407 }
2408 2408
2409 /// <summary>
2410 /// Called when objects or attachments cross the border between regions.
2411 /// </summary>
2412 /// <param name="sog"></param>
2413 /// <returns></returns>
2409 public bool IncomingCreateObject(ISceneObject sog) 2414 public bool IncomingCreateObject(ISceneObject sog)
2410 { 2415 {
2411 //m_log.Debug(" >>> IncomingCreateObject <<< " + ((SceneObjectGroup)sog).AbsolutePosition + " deleted? " + ((SceneObjectGroup)sog).IsDeleted); 2416 //m_log.Debug(" >>> IncomingCreateObject(sog) <<< " + ((SceneObjectGroup)sog).AbsolutePosition + " deleted? " + ((SceneObjectGroup)sog).IsDeleted);
2412 SceneObjectGroup newObject; 2417 SceneObjectGroup newObject;
2413 try 2418 try
2414 { 2419 {
@@ -2425,7 +2430,12 @@ namespace OpenSim.Region.Framework.Scenes
2425 m_log.DebugFormat("[SCENE]: Problem adding scene object {0} in {1} ", sog.UUID, RegionInfo.RegionName); 2430 m_log.DebugFormat("[SCENE]: Problem adding scene object {0} in {1} ", sog.UUID, RegionInfo.RegionName);
2426 return false; 2431 return false;
2427 } 2432 }
2433
2428 newObject.RootPart.ParentGroup.CreateScriptInstances(0, false, DefaultScriptEngine, 1); 2434 newObject.RootPart.ParentGroup.CreateScriptInstances(0, false, DefaultScriptEngine, 1);
2435
2436 // Do this as late as possible so that listeners have full access to the incoming object
2437 EventManager.TriggerOnIncomingSceneObject(newObject);
2438
2429 return true; 2439 return true;
2430 } 2440 }
2431 2441
@@ -2437,6 +2447,8 @@ namespace OpenSim.Region.Framework.Scenes
2437 /// <returns>False</returns> 2447 /// <returns>False</returns>
2438 public virtual bool IncomingCreateObject(UUID userID, UUID itemID) 2448 public virtual bool IncomingCreateObject(UUID userID, UUID itemID)
2439 { 2449 {
2450 //m_log.DebugFormat(" >>> IncomingCreateObject(userID, itemID) <<< {0} {1}", userID, itemID);
2451
2440 ScenePresence sp = GetScenePresence(userID); 2452 ScenePresence sp = GetScenePresence(userID);
2441 if (sp != null) 2453 if (sp != null)
2442 { 2454 {
@@ -2496,29 +2508,25 @@ namespace OpenSim.Region.Framework.Scenes
2496 2508
2497 //RootPrim.SetParentLocalId(parentLocalID); 2509 //RootPrim.SetParentLocalId(parentLocalID);
2498 2510
2499 m_log.DebugFormat("[ATTACHMENT]: Received " + 2511 m_log.DebugFormat(
2500 "attachment {0}, inworld asset id {1}", 2512 "[ATTACHMENT]: Received attachment {0}, inworld asset id {1}", grp.GetFromItemID(), grp.UUID);
2501 //grp.RootPart.LastOwnerID.ToString(),
2502 grp.GetFromItemID(),
2503 grp.UUID.ToString());
2504 2513
2505 //grp.SetFromAssetID(grp.RootPart.LastOwnerID); 2514 //grp.SetFromAssetID(grp.RootPart.LastOwnerID);
2506 m_log.DebugFormat("[ATTACHMENT]: Attach " + 2515 m_log.DebugFormat(
2507 "to avatar {0} at position {1}", 2516 "[ATTACHMENT]: Attach to avatar {0} at position {1}", sp.UUID, grp.AbsolutePosition);
2508 sp.UUID.ToString(), grp.AbsolutePosition); 2517
2509 AttachObject(sp.ControllingClient, 2518 AttachObject(
2510 grp.LocalId, (uint)0, 2519 sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition, false);
2511 grp.GroupRotation,
2512 grp.AbsolutePosition, false);
2513 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2520 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2514 grp.SendGroupFullUpdate(); 2521 grp.SendGroupFullUpdate();
2522
2523
2515 } 2524 }
2516 else 2525 else
2517 { 2526 {
2518 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2527 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2519 RootPrim.AddFlag(PrimFlags.TemporaryOnRez); 2528 RootPrim.AddFlag(PrimFlags.TemporaryOnRez);
2520 } 2529 }
2521
2522 } 2530 }
2523 else 2531 else
2524 { 2532 {