private void SelectPreviousOrDefaultSkin() { var selectedSkinId = LimitedStorage.Get(LimitedSpace.SelectedSkin, Id); _selectedSkin = (selectedSkinId == null ? null : SkinsManager.GetById(selectedSkinId)) ?? SkinsManager.GetDefault(); OnPropertyChanged(nameof(SelectedSkin)); OnPropertyChanged(nameof(SelectedSkinLazy)); }
public int Compare(CarSkinObject x, CarSkinObject y) { return(Compare((AcPlaceholderNew)x, y)); }
public CarTextureDialogViewModel([CanBeNull] BaseRenderer renderer, [CanBeNull] CarSkinObject activeSkin, [NotNull] Kn5 kn5, [NotNull] string textureName) { _renderer = renderer; _activeSkin = activeSkin; _kn5 = kn5; TextureName = textureName; var format = Regex.Match(textureName, @"(?<=\.)([a-zA-Z]{3,4})$").Value; TextureFormat = string.IsNullOrWhiteSpace(format) ? null : format.ToUpperInvariant(); byte[] data; Data = kn5.TexturesData.TryGetValue(textureName, out data) ? data : null; }
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(); }
private void Renderer_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(Renderer.LiveReload): SaveLater(); break; case nameof(Renderer.CurrentSkin): Skin = Car.GetSkinById(Renderer?.CurrentSkin ?? ""); break; case nameof(Renderer.SelectedObject): Mode = Renderer?.SelectedObject != null ? Mode.Selected : Mode.Main; _viewObjectCommand?.RaiseCanExecuteChanged(); break; case nameof(Renderer.SelectedMaterial): _viewMaterialCommand?.RaiseCanExecuteChanged(); break; case nameof(Renderer.AmbientShadowSizeChanged): _ambientShadowSizeSaveCommand?.RaiseCanExecuteChanged(); _ambientShadowSizeResetCommand?.RaiseCanExecuteChanged(); break; } }
public static async Task GenerateRandomAsync(CarSkinObject target) { await new LiveryIconEditor(target, true, true).CreateNewIcon(); }
private void SelectPreviousOrDefaultSkin() { var selectedSkinId = LimitedStorage.Get(LimitedSpace.SelectedSkin, Id); SelectedSkin = (selectedSkinId == null ? null : SkinsManager.GetById(selectedSkinId)) ?? SkinsManager.GetDefault(); }
private LiveryIconEditor(CarSkinObject skin, bool quickMode, bool randomMode) { _quickMode = quickMode; Skin = skin; DataContext = this; InitializeComponent(); if (randomMode) { SelectedShape = Shapes.RandomElement(); } else { SelectedShape = Shapes.GetByIdOrDefault(ValuesStorage.GetString(KeyShape)) ?? Shapes.FirstOrDefault(); } SelectedStyle = Styles.GetByIdOrDefault(ValuesStorage.GetString(KeyStyle)) ?? Styles.FirstOrDefault(); SelectedNumbers = string.IsNullOrWhiteSpace(skin.SkinNumber) || skin.SkinNumber == @"0" ? Numbers.FirstOrDefault() : Numbers.GetByIdOrDefault(ValuesStorage.GetString(KeyNumbers)) ?? Numbers.FirstOrDefault(); Buttons = new[] { OkButton, CancelButton }; Model.Value = string.IsNullOrWhiteSpace(skin.SkinNumber) ? @"0" : skin.SkinNumber; Model.TextColorValue = Colors.White; try { using (var bitmap = Image.FromFile(skin.PreviewImage)) { var colors = ImageUtils.GetBaseColors((Bitmap)bitmap); Model.ColorValue = colors.Select(x => (System.Drawing.Color?)x).FirstOrDefault()?.ToColor() ?? Colors.White; Model.SecondaryColorValue = colors.Select(x => (System.Drawing.Color?)x).ElementAtOrDefault(1)?.ToColor() ?? Colors.Black; Model.TertiaryColorValue = colors.Select(x => (System.Drawing.Color?)x).ElementAtOrDefault(2)?.ToColor() ?? Colors.Black; } } catch (Exception e) { Logging.Warning("Can’t find base colors: " + e); Model.ColorValue = Colors.White; Model.SecondaryColorValue = Colors.Black; Model.TertiaryColorValue = Colors.Black; } }
public LiveryIconEditor(CarSkinObject skin) : this(skin, false, false) { }
public static Task StartAsync(CustomShowroomMode mode, CarObject car, CarSkinObject skin = null) { return StartAsync(mode, FileUtils.GetMainCarFilename(car.Location), skin?.Id); }
public static Task StartAsync(CarObject car, CarSkinObject skin = null) { return StartAsync(FileUtils.GetMainCarFilename(car.Location), skin?.Id); }