Inheritance: AcManager.Tools.AcObjectsNew.AcJsonObjectNew
示例#1
0
        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));
        }
示例#2
0
 public int Compare(CarSkinObject x, CarSkinObject y)
 {
     return(Compare((AcPlaceholderNew)x, y));
 }
示例#3
0
            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;
            }
示例#4
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();
            }
示例#5
0
            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;
                }
            }
示例#6
0
 public static async Task GenerateRandomAsync(CarSkinObject target) {
     await new LiveryIconEditor(target, true, true).CreateNewIcon();
 }
示例#7
0
 private void SelectPreviousOrDefaultSkin() {
     var selectedSkinId = LimitedStorage.Get(LimitedSpace.SelectedSkin, Id);
     SelectedSkin = (selectedSkinId == null ? null : SkinsManager.GetById(selectedSkinId)) ?? SkinsManager.GetDefault();
 }
示例#8
0
        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;
            }
        }
示例#9
0
 public LiveryIconEditor(CarSkinObject skin) : this(skin, false, false) { }
示例#10
0
 public static Task StartAsync(CustomShowroomMode mode, CarObject car, CarSkinObject skin = null) {
     return StartAsync(mode, FileUtils.GetMainCarFilename(car.Location), skin?.Id);
 }
示例#11
0
 public static Task StartAsync(CarObject car, CarSkinObject skin = null) {
     return StartAsync(FileUtils.GetMainCarFilename(car.Location), skin?.Id);
 }
示例#12
0
        private void SelectPreviousOrDefaultSkin()
        {
            var selectedSkinId = LimitedStorage.Get(LimitedSpace.SelectedSkin, Id);

            SelectedSkin = (selectedSkinId == null ? null : SkinsManager.GetById(selectedSkinId)) ?? SkinsManager.GetDefault();
        }