Store and send the current movement animation state to a new sim on crossing
parent
9e05067a4f
commit
fd9cb3cb68
|
@ -45,6 +45,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
||||||
private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation();
|
private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation();
|
||||||
private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>();
|
private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>();
|
||||||
|
|
||||||
|
public OpenSim.Framework.Animation DefaultAnimation
|
||||||
|
{
|
||||||
|
get { return m_defaultAnimation; }
|
||||||
|
}
|
||||||
|
|
||||||
public OpenSim.Framework.Animation ImplicitDefaultAnimation
|
public OpenSim.Framework.Animation ImplicitDefaultAnimation
|
||||||
{
|
{
|
||||||
get { return m_implicitDefaultAnimation; }
|
get { return m_implicitDefaultAnimation; }
|
||||||
|
@ -126,6 +131,12 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called from serialization only
|
||||||
|
public void SetImplicitDefaultAnimation(UUID animID, int sequenceNum, UUID objectID)
|
||||||
|
{
|
||||||
|
m_implicitDefaultAnimation = new OpenSim.Framework.Animation(animID, sequenceNum, objectID);
|
||||||
|
}
|
||||||
|
|
||||||
protected bool ResetDefaultAnimation()
|
protected bool ResetDefaultAnimation()
|
||||||
{
|
{
|
||||||
return TrySetDefaultAnimation("STAND", 1, UUID.Zero);
|
return TrySetDefaultAnimation("STAND", 1, UUID.Zero);
|
||||||
|
|
|
@ -3075,6 +3075,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
cAgent.Anims = Animator.Animations.ToArray();
|
cAgent.Anims = Animator.Animations.ToArray();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
cAgent.DefaultAnim = Animator.Animations.DefaultAnimation;
|
||||||
|
cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation;
|
||||||
|
|
||||||
if (Scene.AttachmentsModule != null)
|
if (Scene.AttachmentsModule != null)
|
||||||
Scene.AttachmentsModule.CopyAttachments(this, cAgent);
|
Scene.AttachmentsModule.CopyAttachments(this, cAgent);
|
||||||
|
@ -3146,6 +3148,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object?
|
// FIXME: Why is this null check necessary? Where are the cases where we get a null Anims object?
|
||||||
if (cAgent.Anims != null)
|
if (cAgent.Anims != null)
|
||||||
Animator.Animations.FromArray(cAgent.Anims);
|
Animator.Animations.FromArray(cAgent.Anims);
|
||||||
|
if (cAgent.DefaultAnim != null)
|
||||||
|
Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero);
|
||||||
|
if (cAgent.AnimState != null)
|
||||||
|
Animator.Animations.SetImplicitDefaultAnimation(cAgent.AnimState.AnimID, cAgent.AnimState.SequenceNum, UUID.Zero);
|
||||||
|
|
||||||
if (Scene.AttachmentsModule != null)
|
if (Scene.AttachmentsModule != null)
|
||||||
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
|
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
|
||||||
|
|
Loading…
Reference in New Issue