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(); }
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(); }
/*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); } }
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; }
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(); }
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; }
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(); }
/// <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(); }
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(); }