some cleaup; simplify some animations code

This commit is contained in:
UbitUmarov
2022-04-20 14:12:45 +01:00
parent c7253d8bf9
commit 04dafe4313
3 changed files with 39 additions and 29 deletions

View File

@@ -179,6 +179,27 @@ namespace OpenSim.Region.Framework.Scenes.Animation
return false;
}
public void GetAnimationIDsArray(out UUID[] animIDs)
{
lock (m_animations)
{
int j = m_defaultAnimation.AnimID.IsZero() ? 0 : 1;
int defaultSize = m_animations.Count + j;
animIDs = new UUID[defaultSize];
if (j > 0)
{
animIDs[0] = m_defaultAnimation.AnimID;
}
for (int i = 0; i < m_animations.Count; ++i, ++j)
{
animIDs[j] = m_animations[i].AnimID;
}
}
}
public void GetArrays(out UUID[] animIDs, out int[] sequenceNums, out UUID[] objectIDs)
{
lock (m_animations)
@@ -190,7 +211,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
sequenceNums = new int[defaultSize];
objectIDs = new UUID[defaultSize];
if (m_defaultAnimation.AnimID.IsNotZero())
if (j > 0)
{
animIDs[0] = m_defaultAnimation.AnimID;
sequenceNums[0] = m_defaultAnimation.SequenceNum;

View File

@@ -80,7 +80,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
public ScenePresenceAnimator(ScenePresence sp)
{
m_scenePresence = sp;
CurrentMovementAnimation = "CROUCH";
CurrentMovementAnimation = "STAND";
}
public void AddAnimation(UUID animID, UUID objectID)
@@ -88,7 +88,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
if (m_scenePresence.IsChildAgent)
return;
// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} for {1}", animID, m_scenePresence.Name);
// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} for {1}", animID, m_scenePresence.Name);
if (m_scenePresence.Scene.DebugAnimations)
m_log.DebugFormat(
"[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}",
@@ -111,7 +111,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
if (animID.IsZero())
return;
// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}", animID, name, m_scenePresence.Name);
// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}", animID, name, m_scenePresence.Name);
AddAnimation(animID, objectID);
}
@@ -154,7 +154,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
m_animations.Remove(animID, false);
}
if (sendPack)
SendAnimPack(false);
SendAnimPack();
}
// Called from scripts
@@ -616,13 +616,15 @@ namespace OpenSim.Region.Framework.Scenes.Animation
public UUID[] GetAnimationArray()
{
UUID[] animIDs;
int[] sequenceNums;
UUID[] objectIDs;
m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs);
m_animations.GetAnimationIDsArray(out UUID[] animIDs);
return animIDs;
}
public bool HasAnimation(UUID animID)
{
return m_animations.HasAnimation(animID);
}
public BinBVHAnimation GenerateRandomAnimation()
{
int rnditerations = 3;
@@ -853,7 +855,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
/// <summary>
/// Send animation information about this avatar to all clients.
/// </summary>
public void SendAnimPack(bool selfIncluded = true)
public void SendAnimPack()
{
//m_log.Debug("Sending animation pack to all");
@@ -866,11 +868,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
m_animations.GetArrays(out animIDs, out sequenceNums, out objectIDs);
//SendAnimPack(animIDs, sequenceNums, objectIDs);
//if(selfIncluded)
m_scenePresence.SendAnimPack(animIDs, sequenceNums, objectIDs);
//else
// m_scenePresence.SendAnimPackToOthers(animIDs, sequenceNums, objectIDs);
m_scenePresence.SendAnimPack(animIDs, sequenceNums, objectIDs);
}
public string GetAnimName(UUID animId)