diff options
author | Oren Hurvitz | 2013-11-25 19:22:53 +0200 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2014-03-11 00:43:22 +0000 |
commit | 120f872d2b2f58560ab026f35a9f523e8540d2c6 (patch) | |
tree | 40cc745e9d8c06a31b1ac0027577bda50bcbbc07 | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC_OLD-120f872d2b2f58560ab026f35a9f523e8540d2c6.zip opensim-SC_OLD-120f872d2b2f58560ab026f35a9f523e8540d2c6.tar.gz opensim-SC_OLD-120f872d2b2f58560ab026f35a9f523e8540d2c6.tar.bz2 opensim-SC_OLD-120f872d2b2f58560ab026f35a9f523e8540d2c6.tar.xz |
After an object with KeyframeMotion is copied into inventory, resume the motion (previously it remained stopped)
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 781cc69..d30ce72 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -355,11 +355,17 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
355 | CoalescedSceneObjects coa = new CoalescedSceneObjects(UUID.Zero); | 355 | CoalescedSceneObjects coa = new CoalescedSceneObjects(UUID.Zero); |
356 | // Dictionary<UUID, Vector3> originalPositions = new Dictionary<UUID, Vector3>(); | 356 | // Dictionary<UUID, Vector3> originalPositions = new Dictionary<UUID, Vector3>(); |
357 | 357 | ||
358 | Dictionary<SceneObjectGroup, KeyframeMotion> group2Keyframe = new Dictionary<SceneObjectGroup, KeyframeMotion>(); | ||
359 | |||
358 | foreach (SceneObjectGroup objectGroup in objlist) | 360 | foreach (SceneObjectGroup objectGroup in objlist) |
359 | { | 361 | { |
360 | if (objectGroup.RootPart.KeyframeMotion != null) | 362 | if (objectGroup.RootPart.KeyframeMotion != null) |
361 | objectGroup.RootPart.KeyframeMotion.Stop(); | 363 | { |
362 | objectGroup.RootPart.KeyframeMotion = null; | 364 | objectGroup.RootPart.KeyframeMotion.Pause(); |
365 | group2Keyframe.Add(objectGroup, objectGroup.RootPart.KeyframeMotion); | ||
366 | objectGroup.RootPart.KeyframeMotion = null; | ||
367 | } | ||
368 | |||
363 | // Vector3 inventoryStoredPosition = new Vector3 | 369 | // Vector3 inventoryStoredPosition = new Vector3 |
364 | // (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize) | 370 | // (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize) |
365 | // ? 250 | 371 | // ? 250 |
@@ -477,6 +483,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
477 | } | 483 | } |
478 | } | 484 | } |
479 | 485 | ||
486 | // Restore KeyframeMotion | ||
487 | foreach (SceneObjectGroup objectGroup in group2Keyframe.Keys) | ||
488 | { | ||
489 | objectGroup.RootPart.KeyframeMotion = group2Keyframe[objectGroup]; | ||
490 | objectGroup.RootPart.KeyframeMotion.Start(); | ||
491 | } | ||
492 | |||
480 | // This is a hook to do some per-asset post-processing for subclasses that need that | 493 | // This is a hook to do some per-asset post-processing for subclasses that need that |
481 | if (remoteClient != null) | 494 | if (remoteClient != null) |
482 | ExportAsset(remoteClient.AgentId, asset.FullID); | 495 | ExportAsset(remoteClient.AgentId, asset.FullID); |