aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-01-18 23:22:02 +0000
committerJustin Clark-Casey (justincc)2013-01-25 23:52:25 +0000
commit10b3c6b5aacb27d40bca803dffa2d2384091ff9a (patch)
treef519a9d51e41b2eac01264f79dff918ef0d2a623 /OpenSim/Region
parentAdd utility function to clamp a vector to a maximum magnitude. (diff)
downloadopensim-SC_OLD-10b3c6b5aacb27d40bca803dffa2d2384091ff9a.zip
opensim-SC_OLD-10b3c6b5aacb27d40bca803dffa2d2384091ff9a.tar.gz
opensim-SC_OLD-10b3c6b5aacb27d40bca803dffa2d2384091ff9a.tar.bz2
opensim-SC_OLD-10b3c6b5aacb27d40bca803dffa2d2384091ff9a.tar.xz
Add "debug set set animations true|false" region console command.
Setting this logs extra information about animation add/remove, such as uuid and animation name Unfortunately cannot be done per client yet
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs33
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs5
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs23
-rw-r--r--OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs11
4 files changed, 48 insertions, 24 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index 5b16b67..8bd3cf9 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -86,7 +86,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation
86 if (m_scenePresence.IsChildAgent) 86 if (m_scenePresence.IsChildAgent)
87 return; 87 return;
88 88
89// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Adding animation {0} for {1}", animID, m_scenePresence.Name); 89 if (m_scenePresence.Scene.DebugAnimations)
90 m_log.DebugFormat(
91 "[SCENE PRESENCE ANIMATOR]: Adding animation {0} {1} for {2}",
92 GetAnimName(animID), animID, m_scenePresence.Name);
90 93
91 if (m_animations.Add(animID, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, objectID)) 94 if (m_animations.Add(animID, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, objectID))
92 SendAnimPack(); 95 SendAnimPack();
@@ -114,7 +117,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation
114 if (m_scenePresence.IsChildAgent) 117 if (m_scenePresence.IsChildAgent)
115 return; 118 return;
116 119
117// m_log.DebugFormat("[SCENE PRESENCE ANIMATOR]: Removing animation {0} for {1}", animID, m_scenePresence.Name); 120 if (m_scenePresence.Scene.DebugAnimations)
121 m_log.DebugFormat(
122 "[SCENE PRESENCE ANIMATOR]: Removing animation {0} {1} for {2}",
123 GetAnimName(animID), animID, m_scenePresence.Name);
118 124
119 if (m_animations.Remove(animID)) 125 if (m_animations.Remove(animID))
120 SendAnimPack(); 126 SendAnimPack();
@@ -137,9 +143,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation
137 143
138 public void ResetAnimations() 144 public void ResetAnimations()
139 { 145 {
140// m_log.DebugFormat( 146 if (m_scenePresence.Scene.DebugAnimations)
141// "[SCENE PRESENCE ANIMATOR]: Resetting animations for {0} in {1}", 147 m_log.DebugFormat(
142// m_scenePresence.Name, m_scenePresence.Scene.RegionInfo.RegionName); 148 "[SCENE PRESENCE ANIMATOR]: Resetting animations for {0} in {1}",
149 m_scenePresence.Name, m_scenePresence.Scene.RegionInfo.RegionName);
143 150
144 m_animations.Clear(); 151 m_animations.Clear();
145 } 152 }
@@ -550,5 +557,21 @@ namespace OpenSim.Region.Framework.Scenes.Animation
550 557
551 SendAnimPack(animIDs, sequenceNums, objectIDs); 558 SendAnimPack(animIDs, sequenceNums, objectIDs);
552 } 559 }
560
561 public string GetAnimName(UUID animId)
562 {
563 string animName;
564
565 if (!DefaultAvatarAnimations.AnimsNames.TryGetValue(animId, out animName))
566 {
567 AssetMetadata amd = m_scenePresence.Scene.AssetService.GetMetadata(animId.ToString());
568 if (amd != null)
569 animName = amd.Name;
570 else
571 animName = "Unknown";
572 }
573
574 return animName;
575 }
553 } 576 }
554} 577}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0c8aa6c..f87d469 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -68,6 +68,11 @@ namespace OpenSim.Region.Framework.Scenes
68 public bool EmergencyMonitoring = false; 68 public bool EmergencyMonitoring = false;
69 69
70 /// <summary> 70 /// <summary>
71 /// Show debug information about animations.
72 /// </summary>
73 public bool DebugAnimations { get; set; }
74
75 /// <summary>
71 /// Show debug information about teleports. 76 /// Show debug information about teleports.
72 /// </summary> 77 /// </summary>
73 public bool DebugTeleporting { get; set; } 78 public bool DebugTeleporting { get; set; }
diff --git a/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs b/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs
index e951d9e..84211a9 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs
@@ -161,12 +161,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Animations
161 UUID defaultAnimId = anims.DefaultAnimation.AnimID; 161 UUID defaultAnimId = anims.DefaultAnimation.AnimID;
162 cdl.AddRow( 162 cdl.AddRow(
163 "Default anim", 163 "Default anim",
164 string.Format("{0}, {1}", defaultAnimId, GetAnimName(sp.Scene.AssetService, defaultAnimId))); 164 string.Format("{0}, {1}", defaultAnimId, sp.Animator.GetAnimName(defaultAnimId)));
165 165
166 UUID implicitDefaultAnimId = anims.ImplicitDefaultAnimation.AnimID; 166 UUID implicitDefaultAnimId = anims.ImplicitDefaultAnimation.AnimID;
167 cdl.AddRow( 167 cdl.AddRow(
168 "Implicit default anim", 168 "Implicit default anim",
169 string.Format("{0}, {1}", implicitDefaultAnimId, GetAnimName(sp.Scene.AssetService, implicitDefaultAnimId))); 169 string.Format("{0}, {1}",
170 implicitDefaultAnimId, sp.Animator.GetAnimName(implicitDefaultAnimId)));
170 171
171 cdl.AddToStringBuilder(sb); 172 cdl.AddToStringBuilder(sb);
172 173
@@ -185,7 +186,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Animations
185 for (int i = 0; i < animIds.Length; i++) 186 for (int i = 0; i < animIds.Length; i++)
186 { 187 {
187 UUID animId = animIds[i]; 188 UUID animId = animIds[i];
188 string animName = GetAnimName(sp.Scene.AssetService, animId); 189 string animName = sp.Animator.GetAnimName(animId);
189 int seq = sequenceNumbers[i]; 190 int seq = sequenceNumbers[i];
190 UUID objectId = objectIds[i]; 191 UUID objectId = objectIds[i];
191 192
@@ -195,21 +196,5 @@ namespace OpenSim.Region.OptionalModules.Avatar.Animations
195 cdt.AddToStringBuilder(sb); 196 cdt.AddToStringBuilder(sb);
196 sb.Append("\n"); 197 sb.Append("\n");
197 } 198 }
198
199 private string GetAnimName(IAssetService assetService, UUID animId)
200 {
201 string animName;
202
203 if (!DefaultAvatarAnimations.AnimsNames.TryGetValue(animId, out animName))
204 {
205 AssetMetadata amd = assetService.GetMetadata(animId.ToString());
206 if (amd != null)
207 animName = amd.Name;
208 else
209 animName = "Unknown";
210 }
211
212 return animName;
213 }
214 } 199 }
215} \ No newline at end of file 200} \ No newline at end of file
diff --git a/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs b/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs
index 8b8758e..521141a 100644
--- a/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs
+++ b/OpenSim/Region/OptionalModules/World/SceneCommands/SceneCommandsModule.cs
@@ -94,6 +94,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments
94 "debug scene get", 94 "debug scene get",
95 "List current scene options.", 95 "List current scene options.",
96 "If active is false then main scene update and maintenance loops are suspended.\n" 96 "If active is false then main scene update and maintenance loops are suspended.\n"
97 + "If animations is true then extra animations debug information is logged.\n"
97 + "If collisions is false then collisions with other objects are turned off.\n" 98 + "If collisions is false then collisions with other objects are turned off.\n"
98 + "If pbackup is false then periodic scene backup is turned off.\n" 99 + "If pbackup is false then periodic scene backup is turned off.\n"
99 + "If physics is false then all physics objects are non-physical.\n" 100 + "If physics is false then all physics objects are non-physical.\n"
@@ -107,6 +108,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments
107 "debug scene set active|collisions|pbackup|physics|scripting|teleport|updates true|false", 108 "debug scene set active|collisions|pbackup|physics|scripting|teleport|updates true|false",
108 "Turn on scene debugging options.", 109 "Turn on scene debugging options.",
109 "If active is false then main scene update and maintenance loops are suspended.\n" 110 "If active is false then main scene update and maintenance loops are suspended.\n"
111 + "If animations is true then extra animations debug information is logged.\n"
110 + "If collisions is false then collisions with other objects are turned off.\n" 112 + "If collisions is false then collisions with other objects are turned off.\n"
111 + "If pbackup is false then periodic scene backup is turned off.\n" 113 + "If pbackup is false then periodic scene backup is turned off.\n"
112 + "If physics is false then all physics objects are non-physical.\n" 114 + "If physics is false then all physics objects are non-physical.\n"
@@ -135,6 +137,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments
135 { 137 {
136 ConsoleDisplayList cdl = new ConsoleDisplayList(); 138 ConsoleDisplayList cdl = new ConsoleDisplayList();
137 cdl.AddRow("active", m_scene.Active); 139 cdl.AddRow("active", m_scene.Active);
140 cdl.AddRow("animations", m_scene.DebugAnimations);
138 cdl.AddRow("pbackup", m_scene.PeriodicBackup); 141 cdl.AddRow("pbackup", m_scene.PeriodicBackup);
139 cdl.AddRow("physics", m_scene.PhysicsEnabled); 142 cdl.AddRow("physics", m_scene.PhysicsEnabled);
140 cdl.AddRow("scripting", m_scene.ScriptsEnabled); 143 cdl.AddRow("scripting", m_scene.ScriptsEnabled);
@@ -178,6 +181,14 @@ namespace OpenSim.Region.OptionalModules.Avatar.Attachments
178 m_scene.Active = active; 181 m_scene.Active = active;
179 } 182 }
180 183
184 if (options.ContainsKey("animations"))
185 {
186 bool active;
187
188 if (bool.TryParse(options["animations"], out active))
189 m_scene.DebugAnimations = active;
190 }
191
181 if (options.ContainsKey("pbackup")) 192 if (options.ContainsKey("pbackup"))
182 { 193 {
183 bool active; 194 bool active;