]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Script.cs
New IEntity properties: Coordinates (set), Identifier. Loadable entities should...
[chaz/carfire] / CarFire / CarFire / CarFire / Script.cs
index 9676bbb83e62d07b36067d59d9f6dbdd4a137b16..0cf9dbdbd56c5e22e4145ed37a05506ac1cbaef6 100644 (file)
@@ -30,9 +30,9 @@ namespace CarFire
         /// </summary>\r
         /// <param name="code">The script code.</param>\r
         /// <param name="game">A game reference.</param>\r
-        public Script(string code, Game game)\r
+        public Script(string code, object bindings)\r
         {\r
-            mImpl = new Impl(game);\r
+            mBindings = bindings;\r
 \r
             string[] functions = Parse.List(code);\r
             if (functions != null)\r
@@ -87,6 +87,12 @@ namespace CarFire
             return result;\r
         }\r
 \r
+        public void Reset()\r
+        {\r
+            mIsRunning = false;\r
+\r
+        }\r
+\r
         #endregion\r
 \r
 \r
@@ -106,7 +112,7 @@ namespace CarFire
                 object[] args = new object[2];\r
                 args[0] = player;\r
                 args[1] = mFunctions[index].Arguments;\r
-                return (bool)typeof(Impl).InvokeMember(mFunctions[index].Name, BindingFlags.InvokeMethod, null, null, args);\r
+                return (bool)mBindings.GetType().InvokeMember(mFunctions[index].Name, BindingFlags.InvokeMethod, null, mBindings, args);\r
             }\r
 #pragma warning disable 0168\r
             catch (System.MissingMethodException ex)\r
@@ -121,42 +127,6 @@ namespace CarFire
 \r
         #region Private Types\r
 \r
-        class Impl\r
-        {\r
-            public static bool True(Player player, string[] args)\r
-            {\r
-                return true;\r
-            }\r
-\r
-            public static bool False(Player player, string[] args)\r
-            {\r
-                return false;\r
-            }\r
-\r
-            public static bool Has(Player player, string[] args)\r
-            {\r
-                return false;\r
-            }\r
-\r
-            public static bool Print(Player player, string[] args)\r
-            {\r
-                foreach (string arg in args)\r
-                {\r
-                    string line = Parse.String(arg);\r
-                    if (line != null) Console.WriteLine(line);\r
-                }\r
-                return true;\r
-            }\r
-\r
-\r
-            public Impl(Game game)\r
-            {\r
-                mGame = game;\r
-            }\r
-\r
-            Game mGame;\r
-        }\r
-\r
         class Function\r
         {\r
             public string Name { get { return mName; } }\r
@@ -177,7 +147,7 @@ namespace CarFire
 \r
         #region Private Variables\r
 \r
-        Impl mImpl;\r
+        object mBindings;\r
         List<Function> mFunctions = new List<Function>();\r
         bool mIsRunning;\r
         int mRunningIndex;\r
This page took 0.022257 seconds and 4 git commands to generate.