static void Main(string[] args) { foreach (var arg in args) { if (arg.ToLower() == "-nolandscapebuffer") { Utopia.Shared.World.LandscapeBufferManager.WithoutLandscapeBuffer = true; } if (arg.ToLower() == "-showdebug") { ShowDebug = true; } if (arg.ToLower() == "-resetsingleplayerworld") { DeleteAllSavedGame(); } if (arg.ToLower() == "-640p") { StartUpResolution = new System.Drawing.Size(1024, 576); } if (arg.ToLower() == "-720p") { StartUpResolution = new System.Drawing.Size(1280, 720); } if (arg.ToLower().StartsWith("-lcdefferedmodelvl")) { Utopia.UtopiaRender.LCDefferedModeLvl = int.Parse(arg.ToLower().Replace("-lcdefferedmodelvl", "")); } } #if DEBUG ShowDebug = true; #endif AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; DllLoadHelper.LoadUmnanagedLibrary("sqlite3.dll"); using (var main = new GameClient()) { Thread.CurrentThread.Priority = ThreadPriority.Highest; main.Run(); } }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); EntityFactory.InitializeProtobufInheritanceHierarchy(); IconManager = new IconManager(); if (string.IsNullOrEmpty(Settings.Default.UtopiaFolder)) { // we need to have a path to utopia game folder var openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Realms.exe main file|Realms.exe"; openFileDialog.Title = "Editor needs utopia files..."; if (openFileDialog.ShowDialog() != DialogResult.OK) { return; } Settings.Default.UtopiaFolder = Path.GetDirectoryName(openFileDialog.FileName); Settings.Default.Save(); } DllLoadHelper.LoadUmnanagedLibrary("sqlite3.dll"); IconManager.Initialize(Settings.Default.UtopiaFolder); // collect all sound files var baseSoundPath = Path.Combine(Settings.Default.UtopiaFolder); List <string> files = new List <string>(); files.Add(null); files.AddRange(GetFiles(Path.Combine(Settings.Default.UtopiaFolder), "*.wav").Select(f => f.Remove(0, baseSoundPath.Length + 1))); files.AddRange(GetFiles(Path.Combine(Settings.Default.UtopiaFolder), "*.wma").Select(f => f.Remove(0, baseSoundPath.Length + 1))); ShortSoundSelector.PossibleSound = files.OrderBy(x => x).ToArray(); SoundList.PossibleSound = ShortSoundSelector.PossibleSound; ModelIcons = new Dictionary <string, Image>(); Application.Run(new FrmMain()); }
static TigerNative() { DllLoadHelper.LoadUmnanagedLibrary("Tiger.dll"); }
static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; logger.Info("Utopia Realms game server v{1} Protocol: v{0}", ServerConnection.ProtocolVersion, Assembly.GetExecutingAssembly().GetName().Version); DllLoadHelper.LoadUmnanagedLibrary("sqlite3.dll"); var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "main.realm"); if (!File.Exists(path)) { if (args.Length == 0) { logger.Fatal("Could not find the realm file. Specify realm configuration file path."); return; } path = args[0]; if (!File.Exists(path)) { logger.Fatal("Could not find the realm file at " + path); return; } } _serverFactory = new EntityFactory(); EntityFactory.InitializeProtobufInheritanceHierarchy(); WorldConfiguration conf; try { conf = WorldConfiguration.LoadFromFile(path); _serverFactory.Config = conf; logger.Info("Realm file {0} loaded", path); } catch (Exception ex) { logger.Fatal("Exception when trying to load configuration:\n" + ex.Message); return; } System.Net.ServicePointManager.Expect100Continue = false; var configFileName = "server.config"; var port = 0; string desc = null; for (int i = 0; i < args.Length; i++) { var argument = args[i]; if (argument == "-conf" && args.Length > i + 1) { configFileName = args[i + 1]; } if (argument == "-port" && args.Length > i + 1) { port = int.Parse(args[i + 1]); } if (argument == "-desc" && args.Length > i + 1) { desc = args[i + 1]; } } _settingsManager = new XmlSettingsManager <ServerSettings>(@"Server\" + configFileName); _settingsManager.Load(); if (port != 0 && _settingsManager.Settings.ServerPort != port) { _settingsManager.Settings.ServerPort = port; _settingsManager.Save(); } if (string.IsNullOrEmpty(_settingsManager.Settings.Seed)) { Console.WriteLine(); Console.WriteLine("Please enter the seed:"); Console.Write("> "); _settingsManager.Settings.Seed = Console.ReadLine(); _settingsManager.Save(); } if (string.IsNullOrEmpty(_settingsManager.Settings.ServerName) || _settingsManager.Settings.ServerName == "unnamed server") { Console.WriteLine(); Console.WriteLine("Please enter the name of the server:"); Console.Write("> "); _settingsManager.Settings.ServerName = Console.ReadLine(); _settingsManager.Save(); } if (string.IsNullOrEmpty(_settingsManager.Settings.ServerDescription)) { if (desc != null) { _settingsManager.Settings.ServerDescription = desc; } else { Console.WriteLine(); Console.WriteLine("Please enter the server description:"); Console.Write("> "); _settingsManager.Settings.ServerDescription = Console.ReadLine(); _settingsManager.Save(); } } var wp = new WorldParameters { WorldName = "Utopia", SeedName = _settingsManager.Settings.Seed, Configuration = conf }; IocBind(wp); _serverWebApi = new ServerWebApi(); _server = new ServerCore( _settingsManager, _worldGenerator, new ServerUsersStorage(_sqLiteStorageManager, _serverWebApi), _sqLiteStorageManager, _sqLiteStorageManager, _sqLiteStorageManager, _serverFactory, wp ); _serverFactory.LandscapeManager = _server.LandscapeManager; _serverFactory.DynamicEntityManager = _server.AreaManager; _serverFactory.GlobalStateManager = _server.GlobalStateManager; _serverFactory.ScheduleManager = _server.Scheduler; _serverFactory.ServerSide = true; _gameplay = new ServerGameplayProvider(_server, conf); _server.ConnectionManager.Listen(); _server.LoginManager.PlayerEntityNeeded += LoginManagerPlayerEntityNeeded; _server.LoginManager.PlayerLogged += LoginManager_PlayerLogged; _server.UsersStorage.DefaultRole = _server.CustomStorage.GetVariable("DefaultRole", UserRole.Guest); // send alive message each 5 minutes _reportAliveTimer = new Timer(CommitServerInfo, null, 0, 1000 * 60 * 5); _server.EntityManager.LoadNpcs(); while (Console.ReadLine() != "exit") { Console.WriteLine("Type 'exit' to quit"); } _server.Dispose(); }