private void ApplySettings(Settings.SettingsModel settingsModel, bool allowedToUpdateTexture = true)
        {
            /*
             * Reload texture if ID was changed
             */
            var settingsTextureId = settingsModel.TextureId ?? DefaultTextures.DefaultMap;

            if (allowedToUpdateTexture && (!_samplerTexture || settingsTextureId != _samplerTexture?.name))
            {
                if (_samplerTexture && !_samplerTexture.name.StartsWith(DefaultTextures.DefaultPrefix))
                {
                    Destroy(_samplerTexture);
                }

                Globals.TextureDataService.LoadTexture(settingsTextureId, texture2D =>
                {
                    _samplerTexture = texture2D ? texture2D : Texture2D.whiteTexture;
                    ApplySettings(settingsModel, false);
                });
                return;
            }

            if (!_samplerTexture)
            {
                return;
            }

            _instancedMaterial.mainTexture = _particleConfig.GetTexture(settingsModel.ParticleType);
            QualitySettings.antiAliasing   = settingsModel.MSAA;
            Application.targetFrameRate    = settingsModel.TargetFramerate;
            _camera.backgroundColor        = settingsModel.BackgroundColor;

            var colorGrading = _postProcessProfile.GetSetting <ColorGrading>();

            colorGrading.brightness.value = settingsModel.Brightness;
            colorGrading.saturation.value = settingsModel.Saturation;
            colorGrading.contrast.value   = settingsModel.Contrast;

            var isScaleOrTextureChanged = settingsModel.ParticlesScale != _lastScale || _lastSamplerName != _samplerTexture.name;

            if (isScaleOrTextureChanged)
            {
                _lastSamplerName = _samplerTexture.name;
                _lastScale       = settingsModel.ParticlesScale;

                var colorSampler = new TextureColorSampler(_samplerTexture, Globals.WorldScreenViewport, 10 / 255.0f);
                var provider     = new DefaultParticleInfoProvider(colorSampler, Globals.WorldScreenViewport, Globals.SettingsHolder.SettingsModel.ParticlesSpacing);

                PrepareEntities(provider);
            }
        }
        private void saveSettings()
        {
            Settings.SettingsModel model = new Settings.SettingsModel();
            model.ScanningInterval = Convert.ToInt32(nudScanningInterval.Value);
            model.EnabledTime      = Convert.ToInt32(nudEnabledTime.Value);
            if (rdoSensitivityNormal.Checked)
            {
                model.Sensitivity = "normal";
            }
            else
            {
                model.Sensitivity = "very-strong";
            }
            model.CursorAnimationStartSize = Convert.ToInt32(nudStartSize.Value);
            model.CursorAnimationEndSize   = Convert.ToInt32(nudEndSize.Value);

            model.CursorImagePath = txtCursorImgPath.Text;

            model.OpenAtStartup = chkOpenAtStartup.Checked;

            Settings.Parser.save(model);
            Settings.Runtime.Loaded = Settings.Parser.load();
        }
 private void SettingsHolderOnSettingsApplied(Settings.SettingsModel settingsModel)
 {
     ApplySettings(settingsModel);
 }