Example #1
0
        public BakedShadowsRendererViewModel([CanBeNull] BaseRenderer renderer, [NotNull] Kn5 kn5, [NotNull] string textureName,
                                             [CanBeNull] CarObject car)
        {
            _renderer    = renderer;
            _kn5         = kn5;
            _textureName = textureName;
            _car         = car;
            _saveable    = new SaveHelper <SaveableData>("_carTextureDialog", () => new SaveableData {
                From       = From,
                To         = To,
                Brightness = Brightness,
                Gamma      = Gamma,
                Ambient    = Ambient,
                Iterations = Iterations,
                ShadowBias = ShadowBias,
            }, o => {
                From       = o.From;
                To         = o.To;
                Brightness = o.Brightness;
                Gamma      = o.Gamma;
                Ambient    = o.Ambient;
                Iterations = o.Iterations;
                ShadowBias = o.ShadowBias;
            });

            _saveable.Initialize();
        }
Example #2
0
            public ViewModel(TrackObjectBase track, TrackMapPreparationRenderer renderer)
            {
                Track    = track;
                Renderer = renderer;
                Renderer.SetFilter(this);

                Surfaces = SurfaceDescription.LoadAll(Path.Combine(track.DataDirectory, "surfaces.ini")).ToList();

                _save = new SaveHelper <SaveableData>(".TrackMapRendererTools:" + track.Id, () => new SaveableData {
                    Filter            = Filter,
                    IgnoreCase        = FilterIgnoreCase,
                    UseFxaa           = UseFxaa,
                    Scale             = Scale,
                    Margin            = Margin,
                    AiLaneWidth       = AiLaneWidth,
                    AiLaneActualWidth = AiLaneActualWidth,
                }, o => {
                    if (o.Filter == null)
                    {
                        UpdateFilter(Surfaces.Where(x => x.ShouldBeVisibleOnMap()));
                    }
                    else
                    {
                        Filter = o.Filter;
                    }

                    FilterIgnoreCase  = o.IgnoreCase;
                    UseFxaa           = o.UseFxaa;
                    Scale             = o.Scale;
                    Margin            = o.Margin;
                    AiLaneWidth       = o.AiLaneWidth;
                    AiLaneActualWidth = o.AiLaneActualWidth;
                }, storage: CacheStorage.Storage);
                _save.Initialize();
            }
Example #3
0
        /*public static void Run(CarObject carObject, string[] skinIds, string presetFilename) {
         *  new CarUpdatePreviewsDialog(carObject, skinIds, DialogMode.Start).ShowDialog();
         * }
         *
         * public static void RunPreset(CarObject carObject, string[] skinIds, string presetFilename) {
         *  new CarUpdatePreviewsDialog(carObject, skinIds, DialogMode.Start, presetFilename).ShowDialog();
         * }*/

        private void OnLoaded(object sender, RoutedEventArgs e)
        {
            if (_loadPreset == null)
            {
                if (_saveable.HasSavedData || UserPresetsControl.CurrentUserPreset != null)
                {
                    _saveable.Initialize();
                }
                else
                {
                    _saveable.Reset();
                    UserPresetsControl.CurrentUserPreset =
                        UserPresetsControl.SavedPresets.FirstOrDefault(x => x.ToString() == @"Kunos");
                }
            }
            else
            {
                _saveable.Reset();
                UserPresetsControl.CurrentUserPreset =
                    UserPresetsControl.SavedPresets.FirstOrDefault(x => x.Filename == _loadPreset);
            }

            if (_mode == UpdatePreviewMode.Options)
            {
                SelectPhase(Phase.Options);
            }
            else
            {
                RunShootingProcess(_mode == UpdatePreviewMode.StartManual).Forget();
            }
        }
            public ViewModel(string serializedPreset, CarObject carObject, string selectedSkinId) {
                ShowroomsManager.Instance.EnsureLoaded();
                PpFiltersManager.Instance.EnsureLoaded();

                SelectedCar = carObject;
                SelectedSkinId = selectedSkinId ?? SelectedCar.SelectedSkin?.Id;

                _saveable = new SaveHelper<SaveableData>("__CarOpenInShowroom", () => new SaveableData {
                    ShowroomId = SelectedShowroom?.Id,
                    FilterId = SelectedFilter?.Id,
                    CameraFov = CameraFov,
                    DisableSweetFx = DisableSweetFx,
                    DisableWatermark = DisableWatermark,
                }, o => {
                    if (o.ShowroomId != null) SelectedShowroom = ShowroomsManager.Instance.GetById(o.ShowroomId) ?? SelectedShowroom;
                    if (o.FilterId != null) SelectedFilter = PpFiltersManager.Instance.GetById(o.FilterId) ?? SelectedFilter;

                    CameraFov = o.CameraFov;
                    DisableWatermark = o.DisableWatermark;
                    DisableSweetFx = o.DisableSweetFx;
                }, () => {
                    SelectedShowroom = ShowroomsManager.Instance.GetDefault();
                    SelectedFilter = PpFiltersManager.Instance.GetDefault();
                    CameraFov = 30;
                    DisableWatermark = false;
                    DisableSweetFx = false;
                });

                if (string.IsNullOrEmpty(serializedPreset)) {
                    _saveable.Initialize();
                } else {
                    _saveable.Reset();
                    _saveable.FromSerializedString(serializedPreset);
                }
            }
Example #5
0
            public ViewModel(string serializedPreset, CarObject carObject, string selectedSkinId)
            {
                ShowroomsManager.Instance.EnsureLoaded();
                PpFiltersManager.Instance.EnsureLoaded();

                SelectedCar    = carObject;
                SelectedSkinId = selectedSkinId ?? SelectedCar.SelectedSkin?.Id;

                VideoPresets = _helper.CreateGroup(AcSettingsHolder.VideoPresetsCategory, "", "Default");

                _saveable = new SaveHelper <SaveableData>("__CarOpenInShowroom", () => new SaveableData {
                    ShowroomId          = SelectedShowroom?.Id,
                    FilterId            = SelectedFilter?.Id,
                    CameraFov           = CameraFov,
                    DisableSweetFx      = DisableSweetFx,
                    DisableWatermark    = DisableWatermark,
                    VideoPresetFilename = VideoPresetFilename,
                }, o => {
                    if (o.ShowroomId != null)
                    {
                        SelectedShowroom = ShowroomsManager.Instance.GetById(o.ShowroomId) ?? SelectedShowroom;
                    }
                    if (o.FilterId != null)
                    {
                        SelectedFilter = PpFiltersManager.Instance.GetById(o.FilterId) ?? SelectedFilter;
                    }

                    CameraFov           = o.CameraFov;
                    DisableWatermark    = o.DisableWatermark;
                    DisableSweetFx      = o.DisableSweetFx;
                    VideoPresetFilename = o.VideoPresetFilename;
                }, () => {
                    SelectedShowroom    = ShowroomsManager.Instance.GetDefault();
                    SelectedFilter      = PpFiltersManager.Instance.GetDefault();
                    CameraFov           = 30;
                    DisableWatermark    = false;
                    DisableSweetFx      = false;
                    VideoPresetFilename = null;
                });

                if (string.IsNullOrEmpty(serializedPreset))
                {
                    _saveable.Initialize();
                }
                else
                {
                    _saveable.Reset();
                    _saveable.FromSerializedString(serializedPreset);
                }
            }
        /// <summary>
        /// Don’t forget to call it in overrided versions.
        /// </summary>
        protected void Initialize(bool reset)
        {
            // ReSharper disable once VirtualMemberCallInConstructor
            _saveable = CreateSaveable();
            if (reset)
            {
                _saveable.Reset();
            }
            else
            {
                _saveable.Initialize();
            }

            UpdateColors();
            SyncAll();

            Renderer.PropertyChanged += OnRendererPropertyChanged;
        }
Example #7
0
        public AmbientShadowParams()
        {
            if (ValuesStorage.Contains(KeyOldSavedData) && !ValuesStorage.Contains(KeySavedData))
            {
                ValuesStorage.Set(KeySavedData, ValuesStorage.Get <string>(KeyOldSavedData));
            }

            _saveable = new SaveHelper <SaveableData>(KeySavedData, () => new SaveableData {
                AmbientShadowDiffusion       = Diffusion,
                AmbientShadowBrightness      = Brightness,
                AmbientShadowIterations      = Iterations,
                AmbientShadowHideWheels      = HideWheels,
                AmbientShadowFade            = Fade,
                AmbientShadowCorrectLighting = CorrectLighting,
                AmbientShadowPoissonSampling = PoissonSampling,
                AmbientShadowExtraBlur       = ExtraBlur,
                AmbientShadowUpDelta         = UpDelta,
                AmbientShadowBodyMultiplier  = BodyMultiplier,
                AmbientShadowWheelMultiplier = WheelMultiplier,
            }, Load);

            _saveable.Initialize();
        }
Example #8
0
            public ViewModel([CanBeNull] string serializedPreset, ServerPresetObject server)
            {
                Server = server;

                _saveable = new SaveHelper <SaveableData>("__PackServer", () => new SaveableData {
                    Mode = Mode,
                    IncludeExecutable = IncludeExecutable,
                    PackIntoSingle    = PackIntoSingle,
                }, o => {
                    Mode = o.Mode;
                    IncludeExecutable = o.IncludeExecutable;
                    PackIntoSingle    = o.PackIntoSingle;
                });

                if (string.IsNullOrEmpty(serializedPreset))
                {
                    _saveable.Initialize();
                }
                else
                {
                    _saveable.Reset();
                    _saveable.FromSerializedString(serializedPreset);
                }
            }
            public ViewModel(TrackObjectBase track, TrackOutlineRenderer renderer)
            {
                Track    = track;
                Renderer = renderer;

                var layouts = track.MainTrackObject.MultiLayouts?.ApartFrom(track).ToList();

                Layouts = layouts?.Count < 1 ? null : layouts;
                Renderer.SetActiveMaps(new string[0]);

                _perLayoutSave = new SaveHelper <PerLayoutSaveable>(".TrackOutlineRendererTools:l:" + track.IdWithLayout, () => new PerLayoutSaveable {
                    ExtraLayoutIds = ExtraLayoutIds,
                }, Load, storage: CacheStorage.Storage);

                _perTrackSave = new SaveHelper <PerTrackSaveable>(".TrackOutlineRendererTools:" + track.Id, () => new PerTrackSaveable {
                    Rotation   = Renderer.Rotation,
                    Scale      = Renderer.Scale,
                    OffsetX    = Renderer.OffsetX,
                    OffsetY    = Renderer.OffsetY,
                    ExtraWidth = Renderer.ExtraWidth,
                    UseAiLanes = Renderer.UseAiLanes,
                }, Load, storage: CacheStorage.Storage);

                _globalSaveable = new SaveHelper <GlobalSaveable>(".TrackOutlineRendererTools", () => new GlobalSaveable {
                    ShadowOpacity        = Renderer.ShadowOpacity,
                    ShadowDistance       = Renderer.ShadowDistance,
                    DimmedOpacity        = Renderer.DimmedOpacity,
                    DimmedWidthMultipler = Renderer.DimmedWidthMultipler,
                }, Load, storage: ValuesStorage.Storage);

                _perLayoutSave.Initialize();
                _perTrackSave.Initialize();
                _globalSaveable.Initialize();

                Renderer.PropertyChanged += OnRendererPropertyChanged;
            }
Example #10
0
            public ViewModel([NotNull] ToolsKn5ObjectRenderer renderer, CarObject carObject, string skinId)
            {
                if (renderer == null)
                {
                    throw new ArgumentNullException(nameof(renderer));
                }

                Renderer = renderer;
                renderer.PropertyChanged += Renderer_PropertyChanged;
                Renderer_CarNodeUpdated();
                renderer.Tick += Renderer_Tick;

                Car  = carObject;
                Skin = skinId == null ? Car.SelectedSkin : Car.GetSkinById(skinId);
                Car.SkinsManager.EnsureLoadedAsync().Forget();

                Saveable = new SaveHelper <SaveableData>("__LiteShowroomTools", () => new SaveableData {
                    AmbientShadowDiffusion  = AmbientShadowDiffusion,
                    AmbientShadowBrightness = AmbientShadowBrightness,
                    AmbientShadowIterations = AmbientShadowIterations,
                    AmbientShadowHideWheels = AmbientShadowHideWheels,
                    AmbientShadowFade       = AmbientShadowFade,
                    LiveReload = renderer.MagickOverride,
                }, o => {
                    AmbientShadowDiffusion  = o.AmbientShadowDiffusion;
                    AmbientShadowBrightness = o.AmbientShadowBrightness;
                    AmbientShadowIterations = o.AmbientShadowIterations;
                    AmbientShadowHideWheels = o.AmbientShadowHideWheels;
                    AmbientShadowFade       = o.AmbientShadowFade ?? true;
                    renderer.MagickOverride = o.LiveReload;
                }, () => {
                    Reset(false);
                });

                Saveable.Initialize();
            }
Example #11
0
 /// <summary>
 /// Full load-and-save mode. All changes will be saved automatically and loaded
 /// later (only with this constuctor).
 /// </summary>
 public AssistsViewModelBase() : this(null, false)
 {
     Saveable.Initialize();
 }
 /// <summary>
 /// Full load-and-save mode. All changes will be saved automatically and loaded
 /// later (only with this constuctor).
 /// </summary>
 public TrackStateViewModelBase() : this(null, false)
 {
     Saveable.Initialize();
 }
Example #13
0
            public ViewModel([NotNull] ToolsKn5ObjectRenderer renderer, CarObject carObject, string skinId) {
                if (renderer == null) throw new ArgumentNullException(nameof(renderer));

                Renderer = renderer;
                renderer.PropertyChanged += Renderer_PropertyChanged;
                renderer.Tick += Renderer_Tick;

                Car = carObject;
                Skin = skinId == null ? Car.SelectedSkin : Car.GetSkinById(skinId);
                Car.SkinsManager.EnsureLoadedAsync().Forget();

                Saveable = new SaveHelper<SaveableData>("__LiteShowroomTools", () => new SaveableData {
                    AmbientShadowDiffusion = AmbientShadowDiffusion,
                    AmbientShadowBrightness = AmbientShadowBrightness,
                    AmbientShadowIterations = AmbientShadowIterations,
                    AmbientShadowHideWheels = AmbientShadowHideWheels,
                    AmbientShadowFade = AmbientShadowFade,
                    LiveReload = Renderer.LiveReload,
                }, o => {
                    AmbientShadowDiffusion = o.AmbientShadowDiffusion;
                    AmbientShadowBrightness = o.AmbientShadowBrightness;
                    AmbientShadowIterations = o.AmbientShadowIterations;
                    AmbientShadowHideWheels = o.AmbientShadowHideWheels;
                    AmbientShadowFade = o.AmbientShadowFade ?? true;
                    Renderer.LiveReload = o.LiveReload;
                }, () => {
                    Reset(false);
                });
                Saveable.Initialize();
            }