コード例 #1
0
        public void Read(GenericStructure gs)
        {
            ID                                 = gs.PropertyInteger("ID");
            Name                               = gs["Name"];
            Engine                             = (Engine)Enum.Parse(typeof(Engine), gs["EngineID"]);
            BuildID                            = gs.PropertyInteger("BuildID");
            SteamInstall                       = gs.PropertyBoolean("SteamInstall");
            WonGameDir                         = gs["WonGameDir"];
            SteamGameDir                       = gs["SteamGameDir"];
            ModDir                             = gs["ModDir"];
            UseHDModels                        = gs.PropertyBoolean("UseHDModels", true);
            BaseDir                            = gs["BaseDir"];
            Executable                         = gs["Executable"];
            ExecutableParameters               = gs["ExecutableParameters"];
            MapDir                             = gs["MapDir"];
            Autosave                           = gs.PropertyBoolean("Autosave");
            UseCustomAutosaveDir               = gs.PropertyBoolean("UseCustomAutosaveDir");
            AutosaveDir                        = gs["AutosaveDir"];
            AutosaveTime                       = gs.PropertyInteger("AutosaveTime");
            AutosaveLimit                      = gs.PropertyInteger("AutosaveLimit");
            AutosaveOnlyOnChanged              = gs.PropertyBoolean("AutosaveOnlyOnChanged", true);
            AutosaveTriggerFileSave            = gs.PropertyBoolean("AutosaveTriggerFileChange", true);
            DefaultPointEntity                 = gs["DefaultPointEntity"];
            DefaultBrushEntity                 = gs["DefaultBrushEntity"];
            DefaultTextureScale                = gs.PropertyDecimal("DefaultTextureScale");
            DefaultLightmapScale               = gs.PropertyDecimal("DefaultLightmapScale");
            IncludeFgdDirectoriesInEnvironment = gs.PropertyBoolean("IncludeFgdDirectoriesInEnvironment", true);
            OverrideMapSize                    = gs.PropertyBoolean("OverrideMapSize");
            OverrideMapSizeLow                 = gs.PropertyInteger("OverrideMapSizeLow");
            OverrideMapSizeHigh                = gs.PropertyInteger("OverrideMapSizeHigh");

            var additional = gs.Children.FirstOrDefault(x => x.Name == "AdditionalPackages");

            if (additional != null)
            {
                foreach (var key in additional.GetPropertyKeys())
                {
                    AdditionalPackages.Add(additional[key]);
                }
            }

            PackageBlacklist = (gs["PackageBlacklist"] ?? "").Replace(";", "\r\n");
            PackageWhitelist = (gs["PackageWhitelist"] ?? "").Replace(";", "\r\n");

            var fgds = gs.Children.FirstOrDefault(x => x.Name == "Fgds");

            if (fgds != null)
            {
                foreach (var key in fgds.GetPropertyKeys())
                {
                    Fgds.Add(new Fgd {
                        Path = fgds[key]
                    });
                }
            }
        }
コード例 #2
0
 public IEnumerable <string> GetFgdDirectories()
 {
     return(Fgds.Select(x => Path.GetDirectoryName(Path.GetFullPath(x.Path))).Distinct());
 }