Esempio n. 1
0
        public CloneFakeGameDialog(GameInstanceManager manager, IUser user)
            : base()
        {
            this.manager = manager;
            this.user    = user;

            InitializeComponent();

            // Populate the version combobox for fake instance.
            List <GameVersion> knownVersions = new KerbalSpaceProgram().KnownVersions;

            knownVersions.Reverse();
            comboBoxGameVersion.DataSource = knownVersions;

            // Populate the instances combobox with names of known instances
            comboBoxKnownInstance.DataSource = new string[] { "" }
            .Concat(manager.Instances.Values
                    .Where(i => i.Valid)
                    .OrderBy(i => i.Version())
                    .Reverse()
                    .Select(i => i.Name))
            .ToList();
            comboBoxKnownInstance.Text = manager.CurrentInstance?.Name
                                         ?? manager.AutoStartInstance
                                         ?? "";
            this.radioButtonClone.Checked = true;
        }
Esempio n. 2
0
        public void VersionSpan_MaxOnly_CorrectString()
        {
            // Arrange
            IGame       game = new KerbalSpaceProgram();
            GameVersion min  = GameVersion.Any;
            GameVersion max  = new GameVersion(1, 0, 0);
            // Act
            string s = GameVersionRange.VersionSpan(game, min, max);

            // Assert
            Assert.AreEqual("KSP 1.0.0 and earlier", s);
        }
Esempio n. 3
0
        public void VersionSpan_FiniteRange_CorrectString()
        {
            // Arrange
            IGame       game = new KerbalSpaceProgram();
            GameVersion min  = new GameVersion(1, 0, 0);
            GameVersion max  = new GameVersion(1, 1, 1);
            // Act
            string s = GameVersionRange.VersionSpan(game, min, max);

            // Assert
            Assert.AreEqual("KSP 1.0.0–1.1.1", s);
        }
Esempio n. 4
0
        public void VersionSpan_AllVersions_CorrectString()
        {
            // Arrange
            IGame       game = new KerbalSpaceProgram();
            GameVersion min  = GameVersion.Any;
            GameVersion max  = GameVersion.Any;
            // Act
            string s = GameVersionRange.VersionSpan(game, min, max);

            // Assert
            Assert.AreEqual("KSP all versions", s);
        }
Esempio n. 5
0
        public void Tutorial()
        {
            //Use Uri to avoid issues with windows vs linux line separators.
            var    canonicalPath = new Uri(Path.Combine(ksp_dir, "saves", "training")).LocalPath;
            var    game          = new KerbalSpaceProgram();
            string dest;

            Assert.IsTrue(game.AllowInstallationIn("Tutorial", out dest));
            Assert.AreEqual(
                new DirectoryInfo(ksp.ToAbsoluteGameDir(dest)),
                new DirectoryInfo(canonicalPath)
                );
        }
        public void Validate(Metadata metadata)
        {
            var mod = CkanModule.FromJson(metadata.Json().ToString());

            if (!mod.IsCompatibleKSP(new GameVersionCriteria(null, knownVersions)))
            {
                GameVersion minKsp = null, maxKsp = null;
                Registry.GetMinMaxVersions(new List <CkanModule>()
                {
                    mod
                }, out _, out _, out minKsp, out maxKsp);
                var game = new KerbalSpaceProgram();
                throw new Kraken($"{metadata.Identifier} doesn't match any valid game version: {GameVersionRange.VersionSpan(game, minKsp, maxKsp)}");
            }
        }
Esempio n. 7
0
        public void IsGameDir()
        {
            var game = new KerbalSpaceProgram();

            // Our test data directory should be good.
            Assert.IsTrue(game.GameInFolder(new DirectoryInfo(TestData.good_ksp_dir())));

            // As should our copied folder.
            Assert.IsTrue(game.GameInFolder(new DirectoryInfo(ksp_dir)));

            // And the one from our KSP instance.
            Assert.IsTrue(game.GameInFolder(new DirectoryInfo(ksp.GameDir())));

            // All these ones should be bad.
            foreach (string dir in TestData.bad_ksp_dirs())
            {
                Assert.IsFalse(game.GameInFolder(new DirectoryInfo(dir)));
            }
        }
Esempio n. 8
0
        private bool VersionsNeedManualReview(Metadata metadata, out string reason)
        {
            JObject json   = metadata.Json();
            var     minStr = json["ksp_version_min"] ?? json["ksp_version"];
            var     maxStr = json["ksp_version_max"] ?? json["ksp_version"];
            var     minVer = minStr == null ? GameVersion.Any : GameVersion.Parse((string)minStr);
            var     maxVer = maxStr == null ? GameVersion.Any : GameVersion.Parse((string)maxStr);

            if (currentRelease.IntersectWith(new GameVersionRange(minVer, maxVer)) == null)
            {
                var game = new KerbalSpaceProgram();
                reason = $"Hard-coded game versions not compatible with current release: {GameVersionRange.VersionSpan(game, minVer, maxVer)}\r\nPlease check that they match the forum thread.";
                return(true);
            }
            else
            {
                // Compatible with latest release, no manual review needed
                reason = "";
                return(false);
            }
        }
Esempio n. 9
0
 public StagingTransformer()
 {
     currentRelease = new KerbalSpaceProgram().KnownVersions.Max().ToVersionRange();
 }
 public MatchesKnownGameVersionsValidator()
 {
     knownVersions = new KerbalSpaceProgram().KnownVersions;
 }