diff options
author | Justin Clark-Casey (justincc) | 2010-02-08 19:02:20 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-02-08 19:02:20 +0000 |
commit | 00947cf2ca7a9315ae1d508507db0c95348e25ec (patch) | |
tree | b6f9168e8cb6f299c2a66288bd5094dac49ccaa7 /OpenSim/Region/Framework/Scenes/Scene.cs | |
parent | minor: log what kind of wearable cannot be found (diff) | |
download | opensim-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.cs | 36 |
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 | { |