aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/GcNotify.cs (renamed from OpenSim/Region/Framework/Scenes/Animation/AvatarAnimations.cs)57
-rw-r--r--OpenSim/Framework/IClientAPI.cs3
-rw-r--r--OpenSim/Framework/ILandObject.cs1
-rw-r--r--OpenSim/Framework/SLUtil.cs50
4 files changed, 31 insertions, 80 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/AvatarAnimations.cs b/OpenSim/Framework/GcNotify.cs
index 659c3a5..14a22a6 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/AvatarAnimations.cs
+++ b/OpenSim/Framework/GcNotify.cs
@@ -25,39 +25,38 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using System.Collections.Generic; 28using System;
29using System.Xml; 29using System.Reflection;
30using OpenMetaverse; 30using log4net;
31 31
32namespace OpenSim.Region.Framework.Scenes.Animation 32public class GcNotify
33{ 33{
34 public class AvatarAnimations 34 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
35
36 public static bool Enabled
35 { 37 {
36 public Dictionary<string, UUID> AnimsUUID = new Dictionary<string, UUID>(); 38 get { return s_initialized; }
37 public Dictionary<UUID, string> AnimsNames = new Dictionary<UUID, string>(); 39 set
38 public Dictionary<UUID, string> AnimStateNames = new Dictionary<UUID, string>(); 40 {
41 if (!s_initialized && value)
42 new GcNotify();
43
44 s_initialized = value;
45 }
46 }
39 47
40 public AvatarAnimations() 48 private static bool s_initialized = false;
49
50 private GcNotify() {}
51
52 ~GcNotify()
53 {
54 if (!Environment.HasShutdownStarted && !AppDomain.CurrentDomain.IsFinalizingForUnload())
41 { 55 {
42 using (XmlTextReader reader = new XmlTextReader("data/avataranimations.xml")) 56 m_log.DebugFormat("[GC NOTIFY]: Garbage collection triggered.");
43 { 57
44 XmlDocument doc = new XmlDocument(); 58 if (Enabled)
45 doc.Load(reader); 59 new GcNotify();
46 foreach (XmlNode nod in doc.DocumentElement.ChildNodes)
47 {
48 if (nod.Attributes["name"] != null)
49 {
50 string name = (string)nod.Attributes["name"].Value;
51 UUID id = (UUID)nod.InnerText;
52 string animState = (string)nod.Attributes["state"].Value;
53
54 AnimsUUID.Add(name, id);
55 AnimsNames.Add(id, name);
56 if (animState != "")
57 AnimStateNames.Add(id, animState);
58 }
59 }
60 }
61 } 60 }
62 } 61 }
63} 62} \ No newline at end of file
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 94acdba..004b1a6 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -1226,10 +1226,9 @@ namespace OpenSim.Framework
1226 /// <param name="OrbitalPosition">The orbital position is given in radians, and must be "adjusted" for the linden client, see LLClientView</param> 1226 /// <param name="OrbitalPosition">The orbital position is given in radians, and must be "adjusted" for the linden client, see LLClientView</param>
1227 void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear, 1227 void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear,
1228 float OrbitalPosition); 1228 float OrbitalPosition);
1229 1229
1230 void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks); 1230 void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks);
1231 void SendViewerTime(int phase); 1231 void SendViewerTime(int phase);
1232 UUID GetDefaultAnimation(string name);
1233 1232
1234 void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, string flAbout, 1233 void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember, string flAbout,
1235 uint flags, UUID flImageID, UUID imageID, string profileURL, UUID partnerID); 1234 uint flags, UUID flImageID, UUID imageID, string profileURL, UUID partnerID);
diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs
index dd73b3f..4f98d7b 100644
--- a/OpenSim/Framework/ILandObject.cs
+++ b/OpenSim/Framework/ILandObject.cs
@@ -71,6 +71,7 @@ namespace OpenSim.Framework
71 bool IsEitherBannedOrRestricted(UUID avatar); 71 bool IsEitherBannedOrRestricted(UUID avatar);
72 bool IsBannedFromLand(UUID avatar); 72 bool IsBannedFromLand(UUID avatar);
73 bool IsRestrictedFromLand(UUID avatar); 73 bool IsRestrictedFromLand(UUID avatar);
74 bool IsInLandAccessList(UUID avatar);
74 void SendLandUpdateToClient(IClientAPI remote_client); 75 void SendLandUpdateToClient(IClientAPI remote_client);
75 void SendLandUpdateToClient(bool snap_selection, IClientAPI remote_client); 76 void SendLandUpdateToClient(bool snap_selection, IClientAPI remote_client);
76 List<LandAccessEntry> CreateAccessListArrayByFlag(AccessList flag); 77 List<LandAccessEntry> CreateAccessListArrayByFlag(AccessList flag);
diff --git a/OpenSim/Framework/SLUtil.cs b/OpenSim/Framework/SLUtil.cs
index f9cb851..db4541e 100644
--- a/OpenSim/Framework/SLUtil.cs
+++ b/OpenSim/Framework/SLUtil.cs
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.IO;
30using System.Reflection; 31using System.Reflection;
31using System.Xml; 32using System.Xml;
32using log4net; 33using log4net;
@@ -40,13 +41,6 @@ namespace OpenSim.Framework
40 41
41 #region SL / file extension / content-type conversions 42 #region SL / file extension / content-type conversions
42 43
43 public static Dictionary<string, UUID> DefaultAvatarAnimations = new Dictionary<string, UUID>();
44
45 static SLUtil()
46 {
47 DefaultAvatarAnimations = LoadDefaultAvatarAnimations("data/avataranimations.xml");
48 }
49
50 public static string SLAssetTypeToContentType(int assetType) 44 public static string SLAssetTypeToContentType(int assetType)
51 { 45 {
52 switch ((AssetType)assetType) 46 switch ((AssetType)assetType)
@@ -382,47 +376,5 @@ namespace OpenSim.Framework
382 376
383 return output; 377 return output;
384 } 378 }
385
386 /// <summary>
387 /// Load the default SL avatar animations.
388 /// </summary>
389 /// <returns></returns>
390 public static Dictionary<string, UUID> LoadDefaultAvatarAnimations(string path)
391 {
392 Dictionary<string, UUID> animations = new Dictionary<string, UUID>();
393
394 using (XmlTextReader reader = new XmlTextReader(path))
395 {
396 XmlDocument doc = new XmlDocument();
397 doc.Load(reader);
398 if (doc.DocumentElement != null)
399 {
400 foreach (XmlNode nod in doc.DocumentElement.ChildNodes)
401 {
402 if (nod.Attributes["name"] != null)
403 {
404 string name = nod.Attributes["name"].Value.ToLower();
405 string id = nod.InnerText;
406 animations.Add(name, (UUID)id);
407 }
408 }
409 }
410 }
411
412 return animations;
413 }
414
415 /// <summary>
416 /// Get the default SL avatar animation with the given name.
417 /// </summary>
418 /// <param name="name"></param>
419 /// <returns></returns>
420 public static UUID GetDefaultAvatarAnimation(string name)
421 {
422 if (DefaultAvatarAnimations.ContainsKey(name))
423 return DefaultAvatarAnimations[name];
424
425 return UUID.Zero;
426 }
427 } 379 }
428} \ No newline at end of file 380} \ No newline at end of file