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] }); } } }
public IEnumerable <string> GetFgdDirectories() { return(Fgds.Select(x => Path.GetDirectoryName(Path.GetFullPath(x.Path))).Distinct()); }