Example #1
0
 public RoomManager(ConnectionsHandler connectionHandler, SettingsLoader settings)
 {
     Rooms = new List<Room>();
     SettingsLoader = settings;
     ConnectionsHandler = connectionHandler;
     ConnectionsHandler.AddMessageListener(this);
 }
Example #2
0
        public Room(ConnectionsHandler connections, Player owner, SettingsLoader settings, string password = "")
        {
            ConnectionsHandler = connections;
            connections.AddMessageListener(this);

            Settings = settings;
            Settings.OnSettingsChanged += OnSettingsChanged;

            Owner = owner;

            RoomIdPool = new IdPool(MaxPlayers);

            RoomData = new RoomData();
            RoomData.ID = Guid.NewGuid().ToString().Substring(0, GuidSize);
            RoomData.Password = password;
            RoomData.Players = new List<PlayerData>();
            RoomData.Owner = Owner.Data;
            RoomData.MinPlayers = settings.Values.Server.MinPlayers;

            Players = new List<Player>();

            if (string.IsNullOrEmpty(password))
            {
                Logger.Log(this, "Creating room for {0}", Owner.Data.Name);
            }
            else
            {
                Logger.Log(this, "Creating room for {0} with password {1}", Owner.Data.Name, password);
            }

            Join(Owner);
        }
Example #3
0
        public Server()
        {
            SettingsLoader = new SettingsLoader();
            LoadSettings();

            CommandHandler = new CommandHandler();
            CommandHandler.AddCommand(new CommandHandler.Command("quit", () => Stop()));
            CommandHandler.AddCommand(new CommandHandler.Command("reloadsettings", () => LoadSettings()));
        }
Example #4
0
        public PicasaWrapper(SessionProvider sessionProvider)
        {
            var oauth2ParametersStorage = OAuth2ParametersStorageFactory.StorageDatabase(sessionProvider);
            //var gdataAuth = new GoogleDataOAuth2Service(OAuth2ParametersStorageFactory.StorageJsonFile(ApplicationId));
            var gdataAuth = new GoogleDataOAuth2Service(oauth2ParametersStorage);
            var picasaFactory = new PicasaServiceFactory(gdataAuth.GetRequestDataFactoryInstance("https://picasaweb.google.com/data"));
            Service = picasaFactory.GetService();

            Settings = new SettingsLoader<List<GdataPhotosSettings>>(sessionProvider, "GdataPhotosSettings_List.json").Get();

            PicasaRequest = new PicasaRequest(new RequestSettings("x", gdataAuth.GetValidOAuth2Parameters()));
        }
 public TemplateInvocationAndAcquisitionCoordinator(SettingsLoader settingsLoader, INewCommandInput commandInput, TemplateCreator templateCreator, IHostSpecificDataLoader hostDataLoader, ITelemetryLogger telemetryLogger, string defaultLanguage, string commandName, Func <string> inputGetter, New3Callbacks callbacks)
 {
     _settingsLoader  = settingsLoader;
     _environment     = _settingsLoader.EnvironmentSettings;
     _commandInput    = commandInput;
     _templateCreator = templateCreator;
     _hostDataLoader  = hostDataLoader;
     _telemetryLogger = telemetryLogger;
     _defaultLanguage = defaultLanguage;
     _commandName     = commandName;
     _inputGetter     = inputGetter;
     _callbacks       = callbacks;
 }
Example #6
0
 public MainViewModel()
 {
     SearchIndexed                  = true;
     SearchPaths                    = new ObservableCollection <PathItem>(SettingsLoader.Paths);
     SearchResults                  = new ConcurrentList <ISearchItem>();
     SearchResultsWPF               = new ObservableCollection <ISearchItem>();
     SearchConditions               = new ObservableCollection <SearchConditionViewModel>();
     DateFilterFrom                 = DateFilterTo = DateNow;
     SizeRange                      = new SizeRange();
     ProgressBarVisibility          = Visibility.Hidden;
     SearchPaths.CollectionChanged += (sender, args) => SettingsLoader.Save(SearchPaths);
     HandleCommandLineArgs();
 }
Example #7
0
        public void IncludeByRelativePath()
        {
            var loader = new SettingsLoader();

            loader.XmlFileByExtension();
            var systemSettings = new XmlSystemSettings("ExtConfigure");
            var settings       = loader.LoadSettings(systemSettings).Joined.ToAppSettings();

            var cfg = settings.Get <MyXmlConfig>("MyCfg2");

            Assert.AreEqual("2", cfg.AttrField);
            Assert.IsNull(cfg.ElemField);
        }
        public SettingsViewModel()
        {
            _settingsLoader           = SettingsLoader.Load();
            ProgramSettings           = _settingsLoader.GetSettings();
            _organizationManager      = Directory.GetOrganizationManager();
            _communicationTypeManager = Directory.GetCommunicationTypeManager();

            OrganizationViewModel      = new OrganizationViewModel();
            CommunicationTypeViewModel = new CommunicationTypeViewModel();

            AddedOrganization      = new Organization();
            AddedCommunicationType = new CommunicationType();
        }
Example #9
0
 /// <summary>
 /// Create a new StartContext with the given options.
 /// If the given options do not define any settings, then settings will be loaded from the config.
 /// </summary>
 /// <param name="options"></param>
 public StartContext(StartOptions options)
 {
     if (options == null)
     {
         throw new ArgumentNullException("options");
     }
     if (options.Settings.Count == 0)
     {
         SettingsLoader.LoadFromConfig(options.Settings);
     }
     Options         = options;
     EnvironmentData = new List <KeyValuePair <string, object> >();
 }
Example #10
0
        public void LoadOptionsFromFile_CaseInsensitive()
        {
            var options = new StartOptions();

            SettingsLoader.LoadFromSettingsFile("Settings.txt", options.Settings);
            IDictionary <string, string> settings = options.Settings;
            string value;

            Assert.True(settings.TryGetValue("UpperCase", out value));
            Assert.True(string.Equals("UpperCaseValue", value, StringComparison.Ordinal));

            Assert.True(settings.TryGetValue("uppercase", out value));
            Assert.True(string.Equals("UpperCaseValue", value, StringComparison.Ordinal));
        }
Example #11
0
        private static ICombinableAppSettings loadSettings()
        {
            var strConv      = new StringConverter();
            var deserializer = new GenericDeserializer();

            var xmlFileLoader = new XmlFileSettingsLoader(deserializer, strConv);
            var loader        = new SettingsLoader(xmlFileLoader);

            loader.LoadSettings(new XmlSystemSettings("ExtConfigure", strConv, deserializer));

            var result = loader.Settings;

            return(new CombinableAppSettings(result));
        }
Example #12
0
        public void LoadOptionsFromConfig_CaseInsensitive()
        {
            var options = new StartOptions();

            SettingsLoader.LoadFromConfig(options.Settings);
            IDictionary <string, string> settings = options.Settings;
            string value;

            Assert.True(settings.TryGetValue("UpperCase", out value));
            Assert.Equal("UpperCaseValue", value, StringComparer.Ordinal);

            Assert.True(settings.TryGetValue("uppercase", out value));
            Assert.Equal("UpperCaseValue", value, StringComparer.Ordinal);
        }
Example #13
0
        public SettingsPage()
        {
            InitializeComponent();

            var settingsLoader = new SettingsLoader();

            TextBoxUserName.Text     = settingsLoader.GetSettingAsync(Setting.ACCOUNT_NAME).Result?.Value;
            TextBoxPassword.Password = settingsLoader.GetSettingAsync(Setting.ACCOUNT_PASSWORD).Result?.Value;

            NumericMaxVideosPerPage.Value = double.Parse(settingsLoader.GetSettingAsync(Setting.MAXVIDEOSPERPAGE).Result?.Value ?? "50");
            ThumpnailSizeSlider.Value     = double.Parse(settingsLoader.GetSettingAsync(Setting.THUMPNAILSIZE).Result?.Value ?? "320");

            TextBoxArtistFolderPath.Text = settingsLoader.GetSettingAsync(Setting.VIDEOPATH).Result?.Value;
        }
Example #14
0
        public void SettingAttributesWithTypeConverterLoadTest()
        {
            var settings = SettingsLoader.Create <PathTypeConverterSettings>("TypeConverter");

            //Simple
            // Array
            Assert.That(settings, Is.DeepEqualTo(
                            new PathTypeConverterSettings()
            {
                Upload   = @"C:\Foo\Bar\Upload\",
                Download = @"E:\Download\",
                Sub      = @"C:\Foo\Bar\Upload\Sub\",
            }));
        }
Example #15
0
        public void IpSettingOneValueTest()
        {
            var ip = "192.168.1.42";
            // Setup mock value provider
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>()
            {
                { nameof(IPSettingTest.IpAddress), ip },
            }));

            var result = settingsLoader.Create <IPSettingTest>();

            Assert.That(result.IpAddress, Is.EqualTo(IPAddress.Parse(ip)));
            Assert.That(result.OptionalIpAddress, Is.Null);
        }
Example #16
0
        public void SimpleLoadTest()
        {
            var settings = SettingsLoader.Create <SimpleSettings>();

            //Simple
            Assert.That(settings.Enum, Is.EqualTo(BindingFlags.NonPublic | BindingFlags.Static));
            Assert.That(settings.String, Is.EqualTo("Hello world"));
            Assert.That(settings.DateTime, Is.EqualTo(new DateTime(2004, 07, 17, 9, 0, 0, DateTimeKind.Local)));
            Assert.That(settings.TimeSpan, Is.EqualTo(new TimeSpan(11, 22, 33, 44, 560)));
            Assert.That(settings.Type, Is.EqualTo(typeof(System.Data.IDbConnection)));
            Assert.That(settings.Uri, Is.EqualTo(new Uri("Http://hello.eu")));
            Assert.That(settings.Guid, Is.EqualTo(Guid.Parse("DCFA0942-0BEC-43E4-8D77-57BA63C7BF7B")));
            Assert.That(settings.IPAddress, Is.EqualTo(IPAddress.Parse("192.168.0.42")));
        }
        private async Task <Setting> GetVideoPathSettings()
        {
            SettingsLoader settingsLoader   = new SettingsLoader();
            var            videoPathSetting = await settingsLoader.GetSettingAsync(Setting.VIDEOPATH);

            if (videoPathSetting == null)
            {
                var msgBox = System.Windows.MessageBox.Show("First time starting Iwara Media Manager", "Please select a video folder.");

                videoPathSetting = await SetVideoPathDialogAsync();
            }

            return(videoPathSetting);
        }
Example #18
0
        public SettingsWindowViewModel()
        {
            var settings = SettingsLoader.LoadSettings();

            Categories = new ObservableCollection <SettingsCategory>(settings);


            OKCommand    = new DelegateCommand(() => { ApplySettings(); Hide(); });
            ApplyCommand = new DelegateCommand(ApplySettings);


            SettingsWindow             = new SettingsWindow();
            SettingsWindow.Closing    += (s, e) => { e.Cancel = true; Hide(); };
            SettingsWindow.DataContext = this;
        }
Example #19
0
        public void GetMongoConfiguration_WhenFileDoesNotExist_ThrowsSettingsManagerException()
        {
            // Arrange
            var fakeFileSystem = Substitute.For <IFileSystem>();

            fakeFileSystem
            .FileExists(Arg.Any <string>())
            .Returns(false);

            var classUnderTest = new SettingsLoader(fakeFileSystem);

            // Act / Assert
            Assert.Throws <SettingsLoaderException>(
                () => classUnderTest.GetMongoConfiguration("anyFilePath.json"));
        }
Example #20
0
        public void DefaultLoadTest()
        {
            var settings = SettingsLoader.Create <DefaultSettings>();

            // Defaults
            Assert.That(settings.DefaultString, Is.EqualTo("Default Hello World"));
            Assert.That(settings.DefaultEnum, Is.EqualTo(BindingFlags.Instance | BindingFlags.Public));
            Assert.That(settings.DefaultDateTime, Is.EqualTo(new DateTime(1966, 6, 11, 13, 34, 56, DateTimeKind.Local).AddMilliseconds(789)));
            Assert.That(settings.DefaultTimeSpan, Is.EqualTo(new TimeSpan(1, 2, 3, 4)));
            Assert.That(settings.DefaultType, Is.EqualTo(typeof(AccessViolationException)));
            Assert.That(settings.DefaultUri, Is.EqualTo(new Uri("https://foo.bar")));
            Assert.That(settings.DefaultGuid, Is.EqualTo(Guid.Parse("EE58EE2B-4CE6-44A4-8773-EC4E283146EB")));
            Assert.That(settings.DefaultIp, Is.EqualTo(IPAddress.Parse("10.42.42.42")));
            Assert.That(settings.DefaultArray, Is.EqualTo(new[] { "foo", "bar" }));
        }
Example #21
0
        public void IncludeByFixedPathOwner()
        {
            var localPath      = "".ResolveTestPath();
            var systemSettings = new XmlSystemSettings("ExtConfigure", localPath);             // fix for R# test runner

            var loader = new SettingsLoader();

            loader.XmlFileByExtension();
            var settings = loader.LoadSettings(systemSettings).Joined.ToAppSettings();

            var cfg = settings.Get <MyXmlConfig>("MyCfg2");

            Assert.AreEqual("2", cfg.AttrField);
            Assert.IsNull(cfg.ElemField);
        }
        public void TestLoadFromEnv()
        {
            Environment.SetEnvironmentVariable("FOO_SOME_API_KEY", "api-key-from-env");
            Environment.SetEnvironmentVariable("FOO_THIS_IS_AN_INT", "512");
            Environment.SetEnvironmentVariable("FOO_FIELD_SHOULD_BE_SET", "they are");

            var settings = new SettingsLoader <TestSettings>()
                           .UseEnvironmentVariables("FOO_")
                           .LoadSettings();

            Assert.That(settings.SomeApiKey, Is.EqualTo("api-key-from-env"));
            Assert.That(settings.ThisIsAnInt, Is.EqualTo(512));
            Assert.That(settings.SomethingElse, Is.Null);
            Assert.That(settings.FieldShouldBeSet, Is.EqualTo("they are"));
        }
Example #23
0
        public void NestedLoadTest()
        {
            var settings = SettingsLoader.Create <NestedSettings>();

            // Nested
            Assert.That(settings, Is.DeepEqualTo(
                            new NestedSettings
            {
                MyNestedProperty = new Nested()
                {
                    Foo = "Foo string",
                    Bar = 42
                }
            }));
        }
Example #24
0
        public void EmptyValueTest1()
        {
            var key = "Foo";

            // Setup mock value provider
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>()
            {
                { key, "" }
            }));

            Assert.That(
                () => settingsLoader.Create <IPAddress>(key),
                Throws.Exception.TypeOf <SettingsException>()
                .With.Message.EqualTo(string.Format(Resources.ConvertValueErrorFormat, "", typeof(IPAddress).FullName)));
        }
Example #25
0
    private void Start()
    {
        if (agent == null)
        {
            agent = GetComponent <NavMeshAgent>();
        }

        var settings = SettingsLoader.LoadSettings <FootmanSettings>();

        movement = new ChasingMovement(settings, agent);
        attack   = new TouchAttack(settings, ShootAt.player);

        MaxHealth     = settings.Health;
        CurrentHealth = MaxHealth;
    }
Example #26
0
        public void IpSettingEmptyNoValueTest()
        {
            var ip = "";
            // Setup mock value provider
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>()
            {
                { nameof(IPSettingTest.IpAddress), ip },
                { nameof(IPSettingTest.OptionalIpAddress), ip }
            }));

            Assert.That(
                () => settingsLoader.Create <IPSettingTest>(),
                Throws.Exception.TypeOf <SettingsException>()
                .With.Message.EqualTo(string.Format(Resources.MissingValueFormat, typeof(IPAddress).FullName, nameof(IPSettingTest.IpAddress))));
        }
Example #27
0
        public void FileAnnotationTest()
        {
            // Setup mock value provider with type
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>
            {
                { "Drive", "C:\\" },
                { "Folder", "Windows" },
                { "FileName", "notepad.exe" },
            }));
            var settings = settingsLoader.Create <FileAnnotationSettings>();

            // Defaults
            Assert.That(settings.FullName, Is.Not.Null);
            Assert.That(settings.FullName.FullName, Is.EqualTo(@"C:\Windows\notepad.exe"));
        }
Example #28
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance  = this;
         State     = GameState.Initializing;
         InitState = InitializationState.Initializing;
         SettingsLoader.LoadInitialSettings();
         RegisterCallbacks();
         InitState = InitializationState.Ready;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Example #29
0
        public void IpSettingTwoValuesTest()
        {
            var ip1 = "192.168.1.42";
            var ip2 = "87.65.43.210";
            // Setup mock value provider
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>()
            {
                { nameof(IPSettingTest.IpAddress), ip1 },
                { nameof(IPSettingTest.OptionalIpAddress), ip2 },
            }));

            var result = settingsLoader.Create <IPSettingTest>();

            Assert.That(result.IpAddress, Is.EqualTo(IPAddress.Parse(ip1)));
            Assert.That(result.OptionalIpAddress, Is.EqualTo(IPAddress.Parse(ip2)));
        }
Example #30
0
        private void UpdateLedger()
        {
            FileInfo file           = new FileInfo(_localFullPath);
            var      settings       = SettingsLoader.LoadSettings();
            var      ledgerRowModel = new LedgerRowModel
            {
                UploadDateTime       = DateTime.Now,
                FileIdentifier       = FileIdGenerator.GetIdentifier(),
                FileName             = file.Name,
                LastDownloadDateTime = DateTime.MinValue,
                Username             = settings.FtpUsername
            };

            LedgerManager.GetManager().AddDatabaseToLedger(ledgerRowModel);
            LedgerManager.SaveLedger();
        }
Example #31
0
 public EngineEnvironmentSettings(
     ITemplateEngineHost host,
     bool virtualizeSettings = false,
     Action <IEngineEnvironmentSettings>?onFirstRun = null,
     string?settingsLocation  = null,
     IEnvironment?environment = null)
 {
     Host           = host ?? throw new ArgumentNullException(nameof(host));
     Environment    = environment ?? new DefaultEnvironment();
     SettingsLoader = new SettingsLoader(this, onFirstRun);
     Paths          = new DefaultPathInfo(this, settingsLocation);
     if (virtualizeSettings)
     {
         Host.VirtualizeDirectory(Paths.GlobalSettingsDir);
     }
 }
Example #32
0
        public void InlineLoadTest()
        {
            var settings = SettingsLoader.Create <InlineSettings>();

            // Nested
            Assert.That(settings, Is.DeepEqualTo(
                            new InlineSettings
            {
                MyNestedProperty = new Nested()
                {
                    Foo = "Inline Foo string",
                    Bar = 21
                },
                Baz = TimeSpan.Parse("01:02:03")
            }));
        }
Example #33
0
        public void Test1()
        {
            var key = "FooIp";
            var ip  = "42.41.40.39";

            // Setup mock value provider
            var settingsLoader = new SettingsLoader(new DictionaryValueProvider(new Dictionary <string, string>
            {
                { key, ip }
            }));

            var ipAddress = settingsLoader.Create <IPAddress>(key);

            Assert.That(ipAddress, Is.Not.Null);
            Assert.That(ipAddress, Is.EqualTo(IPAddress.Parse(ip)));
        }
Example #34
0
        public void RebuildCacheIfForceRebuildScansAll()
        {
            _fixture.Customizations.Add(new MountPointInfoBuilder());
            List <MountPointInfo> mountPoints = _fixture.CreateMany <MountPointInfo>().ToList();
            List <TemplateInfo>   templates   = TemplatesFromMountPoints(mountPoints);

            SetupUserSettings(isCurrentVersion: true, mountPoints: mountPoints);
            SetupTemplates(templates);

            SettingsLoader subject = new SettingsLoader(_environmentSettings);

            subject.RebuildCacheFromSettingsIfNotCurrent(true);

            // All mount points should have been scanned
            AssertMountPointsWereScanned(mountPoints);
        }
Example #35
0
		public override bool StopServer(SettingsLoader.ServerChild ServerData, AutoResetEvent ResetEvent)
		{
			Process thisProcess = null;
			foreach( var tProcess in _ProcessDict )
			{
				if( tProcess.Value != ServerData ) continue;
				thisProcess = tProcess.Key;
			}

			if( thisProcess == null ) return false;
			thisProcess.Exited += new EventHandler( (object sender, EventArgs e) => {
				ResetEvent.Set();
			});

			File.Delete(string.Format("{0}\\server.pid", ServerData.GameServerPath));
			thisProcess.CloseMainWindow();
			return true;
		}
Example #36
0
        public override bool BackupServer(SettingsLoader.ServerChild ServerData)
        {
            string BackupFrom = string.Format("{0}\\ShooterGame\\Saved\\", ServerData.GameServerPath);
            string BackupTo = ServerData.BackupDirectory;
            if( !Directory.Exists(BackupFrom) )
            {
                _Parent.Log.ConsolePrint(LogLevel.Warning, @"Unable to Backup server, directory ShooterGame\Saved is missing. If this is the first startup then ignore this message");
                return false;
            }
            else if( (BackupTo.Length <= 0) || !Directory.Exists(BackupTo) )
            {
                _Parent.Log.ConsolePrint(LogLevel.Warning, @"Unable to Backup server, Specified backup directory does not exist or is not set.");
                return false;
            }

            _Parent.Log.ConsolePrint(LogLevel.Info, "Starting backup of server {0}", ServerData.GameServerName);
            if( _Parent.ARKConfiguration.Messages.ServerBackupBroadcast.Length >= 1 )
            {
                using( var RCONClient = new ArkRCON("127.0.0.1", ServerData.RCONPort) )
                {
                    try
                    {
                        RCONClient.Authenticate(ServerData.ServerAdminPassword);
                        RCONClient.ExecuteCommand(string.Format("serverchat {0}", _Parent.ARKConfiguration.Messages.ServerBackupBroadcast));
                    } catch( QueryException ) {}
                }
            }

            // Use 7zipSharp to compress the backup directory
            SevenZipCompressor.SetLibraryPath("7za.dll");
            var Compressor = new SevenZipCompressor()
            {
                CompressionLevel = CompressionLevel.Normal,
                ArchiveFormat = OutArchiveFormat.SevenZip,
                IncludeEmptyDirectories = true,
            };

            string BackupPath = string.Format("{0}\\Backup-{1}.7z", BackupTo, Helpers.CurrentUnixStamp);
            Compressor.CompressDirectory(BackupFrom, BackupPath);

            _Parent.Log.ConsolePrint(LogLevel.Success, "Backup of server {0} complete", ServerData.GameServerName);
            return true;
        }
Example #37
0
    // Update is called once per frame
    void Update()
    {
        Camera cam = gameObject.GetComponent<Camera> ();
        GameObject plane = GameObject.Find ("Root");

        if(!loaded)
        {
            loaded = true;

            SettingsLoader loader = new SettingsLoader();
            Settings settings = loader.Load();
            if(settings != null)
            {
                cam.fieldOfView = settings.cameraFOV;
                gameObject.transform.position = settings.getPosition();
                Quaternion rot = new Quaternion();

                rot.eulerAngles = settings.getRotation();

                plane.transform.rotation = rot;
            }
            else{

                Debug.Log ("Loading failed");
            }

        }

        if (Input.GetButton ("PS4_PS")) {
            Application.Quit();
        }

        if (Input.GetButton ("PS4_Square")) {
            if (!squarePressed) {
                squarePressed = true;

                SettingsLoader loader = new SettingsLoader();
                Settings settings = new Settings();
                settings.cameraFOV = cam.fieldOfView;
                settings.setPosition(gameObject.transform.position);
                settings.setRotation(plane.transform.rotation.eulerAngles);

                loader.Save(settings);
            }
        } else {
            squarePressed = false;
        }

        // Depth of field.
        float dpadX = Input.GetAxis ("PS4_DPadX");
        cam.fieldOfView += dpadX;

        // Translate camera.
        float leftX = Input.GetAxis ("PS4_LeftStickX");
        float leftY = Input.GetAxis ("PS4_LeftStickY");

        // Zoom camera.
        float l2 = Input.GetAxis ("PS4_L2");
        float r2 = Input.GetAxis ("PS4_R2");

        // Rot camera.
        float rightX = Input.GetAxis ("PS4_RightStickX");
        float rightY = Input.GetAxis ("PS4_RightStickY");
        //		Debug.LogFormat ("{0} {1}", rightX, rightY);

        float dz = 0;
        // L2 pressed
        if (l2 > 0) {
            dz+=l2;
        }

        if (r2 > 0) {
            dz -= r2;
        }

        Vector3 newPos = gameObject.transform.position;
        newPos.x += leftX;
        newPos.y +=dz;
        newPos.z -= leftY;
        gameObject.transform.position = newPos;

        Quaternion newPlaneRot = plane.transform.rotation;
        Vector3 angles = plane.transform.rotation.eulerAngles;
        angles.x += (rightY*2.0f);
        angles.z += (rightX*2.0f);
        // HACK
        if(angles.x == 90)
        {
            angles.x+=1;
        }
        newPlaneRot.eulerAngles = angles;
        plane.transform.rotation = newPlaneRot;

        //		at.x += rightX;
        //		at.z += rightY;
        //		gameObject.transform.LookAt (at);
        //
        //		if (rightX!=0f || rightY!=0f) {
        //			Vector3 newRot = gameObject.transform.rotation.eulerAngles;
        //			newRot.z += rightX;
        //			newRot.y += rightY;
        //
        //			Quaternion r = gameObject.transform.rotation;
        //			r.eulerAngles = newRot;
        //
        //			gameObject.transform.rotation = r;
        //		}
    }
Example #38
0
        public ServerClass(SettingsLoader.ServerChild Data)
        {
            this.ProcessID = 0;
            this.MinutesRemaining = -1;

            this.LastUpdated = 0;
            this.LastBackedUp = 0;

            this.ServerData = Data;
        }
Example #39
0
		public override bool ServerRunning(SettingsLoader.ServerChild ServerData)
		{
			var ProcessID = _ReadProcessFile(ServerData.GameServerPath);
			if( ProcessID != -1 )
			{
				try
				{
					var Proc = Process.GetProcessById(ProcessID);
					if( !Proc.HasExited && (Proc.Id == ProcessID) )
					{
						return true;
					}
				} catch( System.ArgumentException ) {}
			}

			return false;
		}
Example #40
0
		public override int StartServer(SettingsLoader.ServerChild ServerData)
		{
			throw new NotImplementedException();
		}
Example #41
0
		public override bool StopServer(SettingsLoader.ServerChild ServerData, AutoResetEvent ResetEvent)
		{
			throw new NotImplementedException();
		}
Example #42
0
        public override bool CleanBackups(SettingsLoader.ServerChild ServerData)
        {
            try
            {
                var BackupFiles = Directory.GetFiles(ServerData.BackupDirectory, "*.7z", SearchOption.TopDirectoryOnly);
                if( BackupFiles.Length > _Parent.ARKConfiguration.Backup.NumberOfBackupsToKeepPerServer )
                {
                    var Dict = new Dictionary<string, long>();
                    foreach( var tFile in BackupFiles )
                    {
                        Dict.Add(tFile, File.GetCreationTime(tFile).Ticks);
                    }

                    var KeepItems = Dict.OrderByDescending( x => x.Value ).Take( _Parent.ARKConfiguration.Backup.NumberOfBackupsToKeepPerServer ).ToDictionary( x => x.Key );
                    foreach( var tFile in BackupFiles )
                    {
                        if( KeepItems.ContainsKey(tFile) ) continue; // Keep this file

                        _Parent.Log.ConsolePrint(LogLevel.Debug, "Deleting backup file '{0}' from server '{1}'", tFile, ServerData.GameServerName);
                        File.Delete(tFile);
                    }
                }
            }
            catch( Exception )
            {
                return false;
            }

            return true;
        }
Example #43
0
 public List<GdataPhotosSettings> GetPhotosSettings()
 {
     var x = new SettingsLoader<List<GdataPhotosSettings>>(SessionProvider, "GdataPhotosSettings_List.json").Get();
     return x ?? new List<GdataPhotosSettings>();
 }
Example #44
0
		public abstract bool ServerRunning(SettingsLoader.ServerChild ServerData);
Example #45
0
		public abstract bool StopServer(SettingsLoader.ServerChild ServerData, AutoResetEvent ResetEvent);
Example #46
0
 public override bool CleanBackups(SettingsLoader.ServerChild ServerData)
 {
     throw new NotImplementedException();
 }
Example #47
0
 public abstract bool CleanBackups(SettingsLoader.ServerChild ServerData);
Example #48
0
 public abstract bool BackupServer(SettingsLoader.ServerChild ServerData);
Example #49
0
        public ARKUpdater()
        {
            this._Sleeper = new ManualResetEvent(false);
            this._Running = true;

            // Initialise Console Logging
            this.Log = new ConsoleLogger(LogLevel.Debug);
            this.Log.ConsolePrint(LogLevel.Info, "ARKUpdater Starting (Version: {0})", Helpers.GetApplicationVersion());

            // Load configuration from settings.json
            this.ARKConfiguration = SettingsLoader.LoadConfiguration("settings.json", Log);
            if( this.ARKConfiguration == null )
            {
                Helpers.ExitWithError();
            }

            // Configure Logger
            if( this.ARKConfiguration.LogLevel.Length > 0 )
            {
                try
                {
                    var LogValue = (LogLevel) Enum.Parse(typeof(LogLevel), this.ARKConfiguration.LogLevel, true);
                    this.Log.SetLogLevel(LogValue);
                }
                catch( ArgumentException )
                {
                    this.Log.ConsolePrint(LogLevel.Error, "Invalid LogLevel in settings.json, using default (DEBUG)");
                }
            }

            // Configure Servers
            var TempList = new List<ServerClass>();
            foreach( var ServerData in this.ARKConfiguration.Servers )
            {
                TempList.Add( new ServerClass(ServerData) );
                this.Log.ConsolePrint(LogLevel.Debug, "Loaded server '{0}' from configuration", ServerData.GameServerName);
            }

            this.Servers = TempList.ToArray();

            // Initialise Interfaces
            if( Helpers.IsUnixPlatform() )
            {
                this.ServerInt = new ServerInterfaceUnix(this);
                this.BackupInt = new BackupInterfaceUnix(this);
                this.SteamInt = new SteamInterfaceUnix(this);
            }
            else
            {
                this.ServerInt = new ServerInterfaceWindows(this);
                this.BackupInt = new BackupInterfaceWindows(this);
                this.SteamInt = new SteamInterfaceWindows(this);
            }

            // Verify path to SteamCMD
            if( !this.SteamInt.VerifySteamPath(this.ARKConfiguration.SteamCMDPath) )
            {
                this.Log.ConsolePrint(LogLevel.Error, "Unable to find SteamCMD in provided path, please check the SteamCMD path in settings.json");
                Helpers.ExitWithError();
            }
        }
Example #50
0
		public abstract int StartServer(SettingsLoader.ServerChild ServerData);
Example #51
0
		public override bool ServerRunning(SettingsLoader.ServerChild ServerData)
		{
			throw new NotImplementedException();
		}
Example #52
0
 public ConnectionsHandler(SettingsLoader settings)
 {
     SettingsLoader = settings;
     Handlers = new List<IConnectionMessageHandler>();
 }
Example #53
0
		public override int StartServer(SettingsLoader.ServerChild ServerData)
		{
			// Check for existing process
			var ProcessID = _ReadProcessFile(ServerData.GameServerPath);
			if( ProcessID != -1 )
			{
				try
				{
					var Proc = Process.GetProcessById(ProcessID);
					if( !Proc.HasExited && (Proc.Id == ProcessID) )
					{
						// Listener for Exit Event
						_ProcessDict.Add(Proc, ServerData);
						Proc.EnableRaisingEvents = true;
						Proc.Exited += new EventHandler(_ProcessExited);

						_Parent.Log.ConsolePrint(LogLevel.Debug, "Re-used existing Server Process with ID {0} (From PID File)", Proc.Id);
						return Proc.Id;
					}
				} catch( System.ArgumentException ) {}
			}

			// Start new process
			var QueryString = new StringBuilder();
			QueryString.Append(string.Format("{0}?listen?MaxPlayers={1}?QueryPort={2}?RCONEnabled=true?RCONPort={3}?Port={4}?ServerAdminPassword={5}?ServerPVE={6}",
				ServerData.GameServerMap,
				ServerData.MaxPlayers,
				ServerData.QueryPort,
				ServerData.RCONPort,
				ServerData.Port,
				ServerData.ServerAdminPassword,
				ServerData.ServerPVE
			));

			if( ServerData.ServerPassword.Length > 1 ) QueryString.Append("?ServerPassword="******"?ServerName="+ServerData.GameServerName);
			if( ServerData.ServerParameters.Count >= 1 )
			{
				foreach( var Param in ServerData.ServerParameters )
				{
					QueryString.Append(string.Format("?{0}={1}", Param.Key, Param.Value));
				}
			}

			var ProcessData = new ProcessStartInfo()
			{
				WorkingDirectory = string.Format("{0}\\ShooterGame\\Binaries\\Win64", ServerData.GameServerPath),
				FileName = "ShooterGameServer.exe",
				Arguments = QueryString.ToString(),

				CreateNoWindow = false,
				UseShellExecute = true
			};

			try
			{
				// Write process to pid file
				var Proc = Process.Start(ProcessData);
				_WriteProcessFile(ServerData.GameServerPath, Proc.Id);

				// Listener for Exit Event
				_ProcessDict.Add(Proc, ServerData);

				Proc.EnableRaisingEvents = true;
				Proc.Exited += new EventHandler(_ProcessExited);

				// Set Window Title
				Task tResult = this._UpdateWindow(Proc, string.Format("ARK: {0} (Managed by ARKUpdater)", ServerData.GameServerName));

				// Return with Process ID
				_Parent.Log.ConsolePrint(LogLevel.Debug, "Spawned new Server Process with ID {0}", Proc.Id);
				return Proc.Id;
			}
			catch( Exception Ex )
			{
				_Parent.Log.ConsolePrint(LogLevel.Error, "Unable to spawn new server process: {0}", Ex.Message);
				return -1;
			}
		}