public void SetHltbData(long Playtime, HowLongToBeatData gameData, HowLongToBeatSettings settings)
        {
            _gameData = gameData;
            _Playtime = Playtime;
            _settings = settings;

            ShowToolTip = settings.ProgressBarShowToolTip;
            ShowTime    = settings.ProgressBarShowTime;

            ProgressHltb_El1.Foreground = new SolidColorBrush(settings.ColorFirst);
            ProgressHltb_El2.Foreground = new SolidColorBrush(settings.ColorSecond);
            ProgressHltb_El3.Foreground = new SolidColorBrush(settings.ColorThird);

            if (_gameData != null && _gameData.hasData && !_gameData.isEmpty)
            {
                if (ShowToolTip)
                {
                    PART_ShowToolTip.Visibility = Visibility.Visible;
                }
                else
                {
                    PART_ShowToolTip.Visibility = Visibility.Collapsed;
                }

                LoadData();
            }
        }
        public HowLongToBeatUI(IPlayniteAPI PlayniteApi, HowLongToBeatSettings Settings, string PluginUserDataPath) : base(PlayniteApi, PluginUserDataPath)
        {
            _Settings           = Settings;
            _PluginUserDataPath = PluginUserDataPath;

            BtActionBarName   = "PART_HltbButton";
            SpDescriptionName = "PART_HltbDescriptionIntegration";
        }
Beispiel #3
0
        public HltbProgressBar(long Playtime, HltbDataUser gameData, HowLongToBeatSettings settings)
        {
            InitializeComponent();

            this.gameData = gameData;
            this.Playtime = Playtime;
            this.settings = settings;

            ShowToolTip = settings.ProgressBarShowToolTip;
            ShowTime    = settings.ProgressBarShowTime;

            // Set Binding data
            DataContext = this;
        }
        public static void GetAllDataFromMain(IPlayniteAPI PlayniteApi, string PluginUserDataPath, HowLongToBeatSettings settings)
        {
            GlobalProgressOptions globalProgressOptions = new GlobalProgressOptions(
                resources.GetString("LOCCommonGettingAllDatas"),
                true
                );

            globalProgressOptions.IsIndeterminate = false;

            PlayniteApi.Dialogs.ActivateGlobalProgress((activateGlobalProgress) =>
            {
                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();

                var db = PlayniteApi.Database.Games.Where(x => x.Hidden == false);
                activateGlobalProgress.ProgressMaxValue = (double)db.Count();

                string CancelText = string.Empty;

                foreach (Game game in db)
                {
                    if (activateGlobalProgress.CancelToken.IsCancellationRequested)
                    {
                        CancelText = " canceled";
                        break;
                    }

                    if (!HowLongToBeatData.HaveData(game.Id, PluginUserDataPath))
                    {
                        List <HltbData> dataSearch = new HowLongToBeatClient().Search(game.Name);

                        if (dataSearch.Count == 1 && settings.AutoAccept)
                        {
                            HowLongToBeatData.SaveData(game.Id, dataSearch[0], PluginUserDataPath);

                            if (settings.EnableTag)
                            {
                                HowLongToBeatData.AddAllTag(PlayniteApi, game, PluginUserDataPath);
                            }
                        }
                        else
                        {
                            if (dataSearch.Count > 0 && settings.ShowWhenMismatch)
                            {
                                Application.Current.Dispatcher.BeginInvoke((Action) delegate
                                {
                                    string FileGameData = PluginUserDataPath + "\\howlongtobeat\\" + game.Id.ToString() + ".json";

                                    var ViewExtension      = new HowLongToBeatSelect(dataSearch, FileGameData, game.Name);
                                    Window windowExtension = PlayniteUiHelper.CreateExtensionWindow(PlayniteApi, resources.GetString("LOCSelection"), ViewExtension);
                                    windowExtension.ShowDialog();

                                    if (settings.EnableTag)
                                    {
                                        HowLongToBeatData.AddAllTag(PlayniteApi, game, PluginUserDataPath);
                                    }
                                }).Wait();
                            }
                        }
                    }
                    activateGlobalProgress.CurrentProgressValue++;
                }

                stopWatch.Stop();
                TimeSpan ts = stopWatch.Elapsed;
                logger.Info($"HowLongToBeat - Task GetAllDataFromMain(){CancelText} - {String.Format("{0:00}:{1:00}.{2:00}", ts.Minutes, ts.Seconds, ts.Milliseconds / 10)}");
            }, globalProgressOptions);
        }
        public HowLongToBeatSettingsView(IPlayniteAPI PlayniteApi, string PluginUserDataPath, HowLongToBeatSettings settings)
        {
            _PlayniteApi        = PlayniteApi;
            _PluginUserDataPath = PluginUserDataPath;

            InitializeComponent();

            CheckAuthenticate();

            PART_SelectorColorPicker.OnlySimpleColor = true;
            PART_SelectorColorPicker.IsSimpleColor   = true;

            ColorFirst = settings.ColorFirst;
            tbColorFirst.Background  = new SolidColorBrush(settings.ColorFirst);
            ColorSecond              = settings.ColorSecond;
            tbColorSecond.Background = new SolidColorBrush(settings.ColorSecond);
            ColorThird = settings.ColorThird;
            tbColorThird.Background = new SolidColorBrush(settings.ColorThird);

            ColorFirstMulti = settings.ColorFirstMulti;
            tbColorFirstMulti.Background  = new SolidColorBrush(settings.ColorFirstMulti);
            ColorSecondMulti              = settings.ColorSecondMulti;
            tbColorSecondMulti.Background = new SolidColorBrush(settings.ColorSecondMulti);
            ColorThirdMulti = settings.ColorThirdMulti;
            tbColorThirdMulti.Background = new SolidColorBrush(settings.ColorThirdMulti);

            spSettings.Visibility = Visibility.Visible;

            PluginDatabase.howLongToBeatClient.PropertyChanged += OnPropertyChanged;
        }
        public HowLongToBeatView(HowLongToBeatData data, Game game, IPlayniteAPI PlayniteApi, HowLongToBeatSettings settings)
        {
            _data = data;

            InitializeComponent();

            HltbDataUser gameData = data.GetData();

            if (data.hasData && gameData != null && gameData.GameHltbData != null)
            {
                if (string.IsNullOrEmpty(game.CoverImage))
                {
                    CoverImage = gameData.GameHltbData.UrlImg;
                }
                else
                {
                    CoverImage = gameData.GameHltbData.UrlImg;
                    if (!settings.ShowHltbImg)
                    {
                        CoverImage = PlayniteApi.Database.GetFullFilePath(game.CoverImage);
                    }
                }
                GameName = game.Name;
                HltbName = resources.GetString("LOCSourceLabel") + ": " + gameData.GameHltbData.Name;


                int ElIndicator = 0;

                Hltb_El1.Visibility       = Visibility.Hidden;
                Hltb_El1_Color.Visibility = Visibility.Hidden;
                Hltb_El2.Visibility       = Visibility.Hidden;
                Hltb_El2_Color.Visibility = Visibility.Hidden;
                Hltb_El3.Visibility       = Visibility.Hidden;
                Hltb_El3_Color.Visibility = Visibility.Hidden;

                if (gameData.GameHltbData.MainStory != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainStory"), gameData.GameHltbData.MainStoryFormat);
                }

                if (gameData.GameHltbData.MainExtra != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainExtra"), gameData.GameHltbData.MainExtraFormat);
                }

                if (gameData.GameHltbData.Completionist != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCompletionist"), gameData.GameHltbData.CompletionistFormat);
                }

                if (gameData.GameHltbData.Solo != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatSolo"), gameData.GameHltbData.SoloFormat);
                }

                if (gameData.GameHltbData.CoOp != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCoOp"), gameData.GameHltbData.CoOpFormat);
                }

                if (gameData.GameHltbData.Vs != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatVs"), gameData.GameHltbData.VsFormat);
                }


                Hltb_El1_Color.Background = new SolidColorBrush(settings.ColorFirst);
                Hltb_El2_Color.Background = new SolidColorBrush(settings.ColorSecond);
                Hltb_El3_Color.Background = new SolidColorBrush(settings.ColorThird);


                LongToTimePlayedConverter converter = new LongToTimePlayedConverter();
                PlaytimeFormat = (string)converter.Convert((long)game.Playtime, null, null, CultureInfo.CurrentCulture);

                if (!data.isEmpty)
                {
                    HltbProgressBar hltbProgressBar = new HltbProgressBar();
                    hltbProgressBar.SetHltbData(game.Playtime, data, settings);
                    PART_HltbProgressBar.Children.Add(hltbProgressBar);
                }
            }

            // Set Binding data
            DataContext = this;
        }
        public HowLongToBeatView(IPlayniteAPI PlayniteApi, HowLongToBeatSettings settings, GameHowLongToBeat gameHowLongToBeat)
        {
            _gameHowLongToBeat = gameHowLongToBeat;

            InitializeComponent();


            HltbDataUser gameData = _gameHowLongToBeat.Items.FirstOrDefault();

            if (gameData == null)
            {
                return;
            }

            if (_gameHowLongToBeat.HasData || _gameHowLongToBeat.HasDataEmpty)
            {
                CoverImage = gameData.UrlImg;

                if (!settings.ShowHltbImg)
                {
                    if (!_gameHowLongToBeat.CoverImage.IsNullOrEmpty())
                    {
                        CoverImage = PlayniteApi.Database.GetFullFilePath(_gameHowLongToBeat.CoverImage);
                    }
                }

                GameName = _gameHowLongToBeat.Name;
                HltbName = resources.GetString("LOCSourceLabel") + ": " + gameData.Name;
            }

            if (_gameHowLongToBeat.HasData)
            {
                int ElIndicator = 0;

                Hltb_El1.Visibility       = Visibility.Hidden;
                Hltb_El1_Color.Visibility = Visibility.Hidden;
                Hltb_El2.Visibility       = Visibility.Hidden;
                Hltb_El2_Color.Visibility = Visibility.Hidden;
                Hltb_El3.Visibility       = Visibility.Hidden;
                Hltb_El3_Color.Visibility = Visibility.Hidden;

                TitleList titleList = PluginDatabase.GetUserHltbData(_gameHowLongToBeat.GetData().Id);

                if (gameData.GameHltbData.MainStory != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainStory"), gameData.GameHltbData.MainStoryFormat, (titleList != null) ? titleList.HltbUserData.MainStoryFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirst);
                }

                if (gameData.GameHltbData.MainExtra != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatMainExtra"), gameData.GameHltbData.MainExtraFormat, (titleList != null) ? titleList.HltbUserData.MainExtraFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecond);
                }

                if (gameData.GameHltbData.Completionist != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCompletionist"), gameData.GameHltbData.CompletionistFormat, (titleList != null) ? titleList.HltbUserData.CompletionistFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThird);
                }

                if (gameData.GameHltbData.Solo != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatSolo"), gameData.GameHltbData.SoloFormat, (titleList != null) ? titleList.HltbUserData.SoloFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorFirstMulti);
                }

                if (gameData.GameHltbData.CoOp != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatCoOp"), gameData.GameHltbData.CoOpFormat, (titleList != null) ? titleList.HltbUserData.CoOpFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorSecondMulti);
                }

                if (gameData.GameHltbData.Vs != 0)
                {
                    ElIndicator += 1;
                    SetDataInView(ElIndicator, resources.GetString("LOCHowLongToBeatVs"), gameData.GameHltbData.VsFormat, (titleList != null) ? titleList.HltbUserData.VsFormat : string.Empty);
                    SetColor(ElIndicator, PluginDatabase.PluginSettings.ColorThirdMulti);
                }


                LongToTimePlayedConverter converter = new LongToTimePlayedConverter();
                PlaytimeFormat = (string)converter.Convert((long)_gameHowLongToBeat.Playtime, null, null, CultureInfo.CurrentCulture);

                hltbProgressBar = new HltbProgressBar();
                PART_HltbProgressBar.Children.Add(hltbProgressBar);
            }

            // Set Binding data
            DataContext = this;
        }
Beispiel #8
0
        public HowLongToBeatSettingsView(IPlayniteAPI PlayniteApi, string PluginUserDataPath, HowLongToBeatSettings settings)
        {
            _PlayniteApi        = PlayniteApi;
            _PluginUserDataPath = PluginUserDataPath;

            InitializeComponent();

            PART_SelectorColorPicker.OnlySimpleColor = true;
            PART_SelectorColorPicker.IsSimpleColor   = true;

            tbColorFirst.Background  = new SolidColorBrush(settings.ColorFirst);
            tbColorSecond.Background = new SolidColorBrush(settings.ColorSecond);
            tbColorThird.Background  = new SolidColorBrush(settings.ColorThird);

            DataLoad.Visibility   = Visibility.Collapsed;
            spSettings.Visibility = Visibility.Visible;
        }
 public void SetHltbData(long Playtime, HowLongToBeatData data, HowLongToBeatSettings settings)
 {
     hltbProgressBar.SetHltbData(Playtime, data, settings);
     PART_HltbProgressBar.UpdateLayout();
 }