OSDN Git Service

Made one instance of Movement in RadegastInstance so it can be used from multiple...
authorLatif Khalifa <latifer@streamgrid.net>
Wed, 9 Sep 2009 20:03:07 +0000 (20:03 +0000)
committerLatif Khalifa <latifer@streamgrid.net>
Wed, 9 Sep 2009 20:03:07 +0000 (20:03 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@213 f7a694da-4d33-11de-9ad6-1127a62b9fcd

Radegast/Core/RadegastInstance.cs
Radegast/Core/SleekMovement.cs
Radegast/GUI/Consoles/ChatConsole.cs

index ab5a2c3..95703e7 100644 (file)
@@ -135,6 +135,12 @@ namespace Radegast
         /// </summary>\r
         public CommandsManager CommandsManager { get { return commandsManager; } }\r
 \r
+        private SleekMovement movement;\r
+        /// <summary>\r
+        /// Allows key emulation for moving avatar around\r
+        /// </summary>\r
+        public SleekMovement Movement { get { return movement; } }\r
+\r
         public RadegastInstance(GridClient client0)\r
         {\r
             // incase something else calls GlobalInstance while we are loading\r
@@ -149,6 +155,7 @@ namespace Radegast
             state = new StateManager(this);\r
             mediaManager = new MediaManager(this);\r
             commandsManager = new CommandsManager(this);\r
+            movement = new SleekMovement(client);\r
 \r
             InitializeLoggingAndConfig();\r
 \r
@@ -211,7 +218,10 @@ namespace Radegast
                     }\r
                     catch (Exception) { }\r
                 });\r
-            }                        \r
+            }\r
+\r
+            movement.Dispose();\r
+            movement = null;\r
             commandsManager.Dispose();\r
             commandsManager = null;\r
             mediaManager.Dispose();\r
index ad18e9e..1accb73 100644 (file)
 //\r
 // $Id$\r
 //\r
+using System;\r
 using System.Timers;\r
 using OpenMetaverse;\r
 \r
 namespace Radegast\r
 {\r
-    public class SleekMovement\r
+    public class SleekMovement : IDisposable\r
     {\r
         private GridClient client;\r
         private Timer timer;\r
@@ -137,6 +138,13 @@ namespace Radegast
             timer.Enabled = false;\r
         }\r
 \r
+        public void Dispose()\r
+        {\r
+            timer.Enabled = false;\r
+            timer.Dispose();\r
+            timer = null;\r
+        }\r
+\r
         void timer_Elapsed(object sender, ElapsedEventArgs e)\r
         {\r
             if (turningLeft) {\r
index ac0807c..d32c8e5 100644 (file)
@@ -48,7 +48,7 @@ namespace Radegast
         private ChatTextManager chatManager;\r
         private TabsConsole tabConsole;\r
         private Avatar currentAvatar;\r
-        private SleekMovement movement;\r
+        private SleekMovement movement { get { return instance.Movement; } }\r
         private Regex chatRegex = new Regex(@"^/(\d+)\s*(.*)", RegexOptions.Compiled);\r
         private Dictionary<uint, Avatar> avatars = new Dictionary<uint, Avatar>();\r
         private Dictionary<uint, bool> bots = new Dictionary<uint,bool>();\r
@@ -77,8 +77,6 @@ namespace Radegast
             netcom.ClientLoggedOut += new EventHandler(netcom_ClientLoggedOut);\r
             client.Grid.OnCoarseLocationUpdate += new GridManager.CoarseLocationUpdateCallback(Grid_OnCoarseLocationUpdate);\r
 \r
-            movement = new SleekMovement(client);\r
-\r
             chatManager = new ChatTextManager(instance, new RichTextBoxPrinter(rtbChat));\r
             chatManager.PrintStartupMessage();\r
 \r