private static bool EnsureOptions(Options options) { if (!EnsureDataType(options)) return false; if (options.Source == null) { var pathMap = new Dictionary<DataType, string> { { DataType.Data, @"Data" }, { DataType.Skin, @"UI" } }; options.Source = Path.Combine(ConfigurationManager.AppSettings["ContentRoot"], pathMap[options.DataType]); logger.Info("Source not specified. Using default '{0}'", options.Source); } options.Source = Environment.ExpandEnvironmentVariables(options.Source); if (!Directory.Exists(options.Source) && !File.Exists(options.Source)) { logger.Error("Invalid source specified '{0}'", options.Source); return false; } if (Directory.Exists(options.Source)) options.Source = options.Source.EnsureEndsWith(Path.DirectorySeparatorChar); logger.Debug("Options: {0}", options.Dump()); return true; }
private static bool EnsureDataType(Options options) { if (options.DataType != DataType.Unknown) return true; if (options.Source != null) { // try to guess it from source path if (options.Source.Contains(@"Gnomoria\Content\Data")) options.DataType = DataType.Data; if (options.Source.Contains(@"Gnomoria\Content\UI")) options.DataType = DataType.Skin; } if (options.DataType != DataType.Unknown) return true; logger.Error("Unknown data type"); return false; }
/// <summary> /// The main entry point for the application. /// </summary> static void Main(string[] args) { var options = new Options(); if (!Parser.Default.ParseArguments(args, options)) { logger.Error("Invalid arguments"); return; } if (!EnsureOptions(options)) return; var sevenZipPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"lib\7z.dll"); SevenZipExtractor.SetLibraryPath(sevenZipPath); SevenZipCompressor.SetLibraryPath(sevenZipPath); using (Game game = new Game(options)) { game.Run(); } }
public Game(Options options) { this.options = options; graphics = new GraphicsDeviceManager(this); }