コード例 #1
0
        private static void LoadEngine(string version)
        {
            if (version == "standalone")
            {
                Console.WriteLine("Engine is Contained in Game Package. Using engine from there.");
                return;
            }

            string filePath = version;

            if (version.StartsWith("path:") && File.Exists(version.Remove(0, 5)))
            {
                filePath = version.Remove(0, 5);
            }
            else if (!version.StartsWith("path:"))
            {
                if (!EnginePlayerConsole.IsEngineVersionAvailable(version))
                {
                    if (!EnginePlayerConsole.DownloadEngineVersion(version))
                    {
                        Console.WriteLine("Could not locate engine version : " + version);
                        Console.WriteLine("Finding Compatible..");

                        if (!Version.TryParse(version, out Version v))
                        {
                            throw new ArgumentException("Could not parse engine version : " + version);
                        }

                        bool    foundVersion = false;
                        Version vx           = new Version(v.Major, v.Minor, v.Build, 0);
                        for (int i = 0; i < EnginePlayerConsole.AvailableVersionsOnServer.Length; i++)
                        {
                            Version avx = new Version(EnginePlayerConsole.AvailableVersionsOnServer[i].Major,
                                                      EnginePlayerConsole.AvailableVersionsOnServer[i].Minor,
                                                      EnginePlayerConsole.AvailableVersionsOnServer[i].Build, 0);
                            if (v != EnginePlayerConsole.AvailableVersionsOnServer[i] && vx == avx)
                            {
                                EnginePlayerConsole.DownloadEngineVersion(EnginePlayerConsole
                                                                          .AvailableVersionsOnServer[i].ToString());
                                version      = EnginePlayerConsole.AvailableVersionsOnServer[i].ToString();
                                foundVersion = true;
                                break;
                            }
                        }

                        if (!foundVersion)
                        {
                            throw new ArgumentException("Could not locate engine version : " + v);
                        }
                    }
                }

                filePath = GetEnginePath(version);
            }


            Console.WriteLine("Loading Engine Version: " + version);

            Creator.UnpackPackage(filePath, EnginePlayerConsole.GameDir);
        }
コード例 #2
0
 private static void DownloadEngine(string[] args)
 {
     if (!EnginePlayerConsole.IsEngineVersionAvailable(args[0]))
     {
         System.Console.WriteLine("Downloading Version " + args[0]);
         EnginePlayerConsole.DownloadEngineVersion(args[0]);
     }
     else
     {
         System.Console.WriteLine("Engine Version not available. Skipping Download.");
     }
 }
コード例 #3
0
 private static void RemoveEngine(string[] args)
 {
     if (EnginePlayerConsole.IsEngineVersionAvailable(args[0]))
     {
         System.Console.WriteLine("Deleting Version " + args[0]);
         File.Delete(EnginePlayerConsole.EngineDir + "/" + args[0] + ".engine");
     }
     else
     {
         System.Console.WriteLine("Engine Version not available. Skipping Deletion.");
     }
 }