Example #1
0
        private static DarkKn5ObjectRenderer CreateRenderer([NotNull] string acRoot, [NotNull] DarkPreviewsOptions options,
                                                            [CanBeNull] CarDescription initialCar, [CanBeNull] string initialSkinId)
        {
            var renderer = new DarkKn5ObjectRenderer(initialCar, GetShowroomKn5(acRoot, options.Showroom))
            {
                LoadCarLights      = true,
                LoadShowroomLights = true
            };

            SetRendererOptions(acRoot, renderer, options);
            renderer.SelectSkin(initialSkinId);
            renderer.Initialize();
            SetRendererCarOptions(renderer, options);
            return(renderer);
        }
Example #2
0
        /// <summary>
        /// Update preview.
        /// </summary>
        /// <param name="carId">Car ID.</param>
        /// <param name="skinId">Skin ID.</param>
        /// <param name="destination">Destination filename.</param>
        /// <param name="carData">Car data (provide it only if it’s already loaded, so Updater won’t load it again).</param>
        /// <param name="information">Some lines for EXIF data, optional.</param>
        /// <param name="callback">Callback in sync version? Because, with Delayed Convertation enabled, even sync version is not so sync.</param>
        public void Shot([NotNull] string carId, [NotNull] string skinId, string destination = null, DataWrapper carData = null, ImageUtils.ImageInformation information = null,
                         Action callback = null)
        {
            if (_carId != carId)
            {
                if (_renderer == null)
                {
                    _renderer = CreateRenderer(_acRoot, _options, GetCarDescription(carId, carData), skinId);
                }
                else
                {
                    _renderer.MainSlot.SetCar(GetCarDescription(carId, carData), skinId);
                }
                _carId = carId;
                UpdateCamera();
            }
            else
            {
                _renderer.SelectSkin(skinId);
            }

            _renderer.OnTick(float.MaxValue);
            ShotInner(carId, skinId, destination, information, callback);
        }
Example #3
0
        private static DarkKn5ObjectRenderer CreateRenderer(string acRoot, DarkPreviewsOptions options, CarDescription initialCar, string initialSkinId)
        {
            var showroom = options.Showroom;

            if (showroom != null && !File.Exists(showroom))
            {
                var kn5 = Path.Combine(FileUtils.GetShowroomDirectory(acRoot, showroom), $"{showroom}.kn5");
                showroom = File.Exists(kn5) ? kn5 : null;
            }

            var renderer = new DarkKn5ObjectRenderer(initialCar, showroom);

            SetRendererOptions(renderer, options);

            renderer.SelectSkin(initialSkinId);
            renderer.Initialize();
            SetRendererCarOptions(renderer, options);

            return(renderer);
        }