public Session() { UiInput = new UiInput(this); TargetUi = new TargetUi(this); WheelUi = new Wheel(this); HudUi = new Hud(this); DsUtil = new DSUtils(this); DsUtil2 = new DSUtils(this); StallReporter = new StallReporter(this); Av = new RunAv(this); Api = new ApiBackend(this); ApiServer = new ApiServer(this); Projectiles = new Projectiles.Projectiles(this); Proccessor = new NetworkProccessor(this); VisDirToleranceCosine = Math.Cos(MathHelper.ToRadians(VisDirToleranceAngle)); AimDirToleranceCosine = Math.Cos(MathHelper.ToRadians(AimDirToleranceAngle)); HeatEmissives = CreateHeatEmissive(); LoadVanillaData(); CoreWorkOpt.TaskType = CastProhibit(CoreWorkOpt.TaskType, 5); CoreWorkOpt.MaximumThreads = 1; foreach (var suit in (PacketType[])Enum.GetValues(typeof(PacketType))) { PacketPools.Add(suit, new MyConcurrentPool <Packet>(128, packet => packet.CleanUp())); } }
public static void Main(string[] args) { Console.Title = $"{Name} - Build: {Version}"; var config = new LoggingConfiguration(); var developerLog = new ColoredConsoleTarget() { Name = "developer", Layout = @"[${date:format=HH\:mm\:ss}] [${level}] ${message} ${exception}" }; var developerFile = new FileTarget() { Name = "developer-file", FileName = "../../../logs/server/Build ${assembly-version}/${level}/${date:format=dd-MM-yyyy}.txt", Layout = @"[${date:format=HH\:mm\:ss}] [${level}] ${message} ${exception}" }; config.AddTarget(developerLog); config.AddTarget(developerFile); config.AddRule(LogLevel.Info, LogLevel.Fatal, developerFile); config.AddRuleForAllLevels(developerLog); LogManager.Configuration = config; RollbarLocator.RollbarInstance.Configure(new RollbarConfig(RollbarId)); Info("Game Server is loading..."); XmlLibrary.Init(); Database = new Database(); LoEUtils = new Util((message) => Warn(message)); try { Map.BinaryMapsCache = new Dictionary <string, KeyValuePair <bool, byte[]> >(); Map.LoadEmbeddedMaps(); var manager = new WorldManager(); var connection = new NetworkListener(manager); NetworkProccessor.Start(); connection.Listen(); manager.BeginUpdate(); Info("Game Server is loading... OK!"); while (Console.ReadKey(true).Key != ConsoleKey.Escape) { ; } Database.Dispose(); Info("Game Server has been stopped."); Environment.Exit(0); } catch (Exception e) { Database.Dispose(); Warn($"An error occurred! {e.ToString()}"); Error(e); Thread.Sleep(100); Warn("Press 'ESC' to close..."); while (Console.ReadKey(true).Key != ConsoleKey.Escape) { ; } Environment.Exit(-1); } }