After an object with KeyframeMotion is copied into inventory, resume the motion (previously it remained stopped)
parent
932c9e757b
commit
120f872d2b
|
@ -355,11 +355,17 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
CoalescedSceneObjects coa = new CoalescedSceneObjects(UUID.Zero);
|
||||
// Dictionary<UUID, Vector3> originalPositions = new Dictionary<UUID, Vector3>();
|
||||
|
||||
Dictionary<SceneObjectGroup, KeyframeMotion> group2Keyframe = new Dictionary<SceneObjectGroup, KeyframeMotion>();
|
||||
|
||||
foreach (SceneObjectGroup objectGroup in objlist)
|
||||
{
|
||||
if (objectGroup.RootPart.KeyframeMotion != null)
|
||||
objectGroup.RootPart.KeyframeMotion.Stop();
|
||||
objectGroup.RootPart.KeyframeMotion = null;
|
||||
{
|
||||
objectGroup.RootPart.KeyframeMotion.Pause();
|
||||
group2Keyframe.Add(objectGroup, objectGroup.RootPart.KeyframeMotion);
|
||||
objectGroup.RootPart.KeyframeMotion = null;
|
||||
}
|
||||
|
||||
// Vector3 inventoryStoredPosition = new Vector3
|
||||
// (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize)
|
||||
// ? 250
|
||||
|
@ -477,6 +483,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
}
|
||||
}
|
||||
|
||||
// Restore KeyframeMotion
|
||||
foreach (SceneObjectGroup objectGroup in group2Keyframe.Keys)
|
||||
{
|
||||
objectGroup.RootPart.KeyframeMotion = group2Keyframe[objectGroup];
|
||||
objectGroup.RootPart.KeyframeMotion.Start();
|
||||
}
|
||||
|
||||
// This is a hook to do some per-asset post-processing for subclasses that need that
|
||||
if (remoteClient != null)
|
||||
ExportAsset(remoteClient.AgentId, asset.FullID);
|
||||
|
|
Loading…
Reference in New Issue