コード例 #1
0
        public override void AddBtActionBar()
        {
            if (PART_BtActionBar != null)
            {
#if DEBUG
                logger.Debug($"SuccessStory - PART_BtActionBar allready insert");
#endif
                return;
            }

            FrameworkElement BtActionBar;

            if (_Settings.EnableIntegrationInDescriptionWithToggle)
            {
                if (_Settings.EnableIntegrationButtonDetails)
                {
                    BtActionBar = new SuccessStoryToggleButtonDetails();
                }
                else
                {
                    BtActionBar = new SuccessStoryToggleButton(_Settings);
                }

                ((ToggleButton)BtActionBar).Click += OnBtActionBarToggleButtonClick;
            }
            else
            {
                if (_Settings.EnableIntegrationButtonDetails)
                {
                    BtActionBar = new SuccessStoryButtonDetails();
                }
                else
                {
                    BtActionBar = new SuccessStoryButton(_Settings.EnableIntegrationInDescriptionOnlyIcon);
                }

                ((Button)BtActionBar).Click += OnBtActionBarClick;
            }

            if (!_Settings.EnableIntegrationInDescriptionOnlyIcon)
            {
                BtActionBar.Width = 150;
            }

            BtActionBar.Name   = BtActionBarName;
            BtActionBar.Margin = new Thickness(10, 0, 0, 0);

            try
            {
                ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(BtActionBar);
                PART_BtActionBar = IntegrationUI.SearchElementByName(BtActionBarName);
            }
            catch (Exception ex)
            {
                Common.LogError(ex, "SuccessStory", "Error on AddBtActionBar()");
            }
        }
コード例 #2
0
        private void Integration()
        {
            try
            {
                // Search game description
                if (PART_ElemDescription == null)
                {
                    foreach (StackPanel sp in Tools.FindVisualChildren <StackPanel>(Application.Current.MainWindow))
                    {
                        if (sp.Name == "PART_ElemDescription")
                        {
                            PART_ElemDescription = sp;
                            break;
                        }
                    }
                }

                // Delete
                logger.Info("SuccessStory - Delete");
                ui.RemoveButtonInGameSelectedActionBarButtonOrToggleButton("PART_ScButton");
                ui.RemoveButtonInGameSelectedActionBarButtonOrToggleButton("PART_ScToggleButton");
                ui.RemoveElementInGameSelectedDescription("PART_Achievements");
                ui.ClearElementInCustomTheme("PART_Achievements_Graphics");
                ui.ClearElementInCustomTheme("PART_Achievements_List");
                ui.ClearElementInCustomTheme("PART_Achievements_ProgressBar");


                // Reset resources
                List <ResourcesList> resourcesLists = new List <ResourcesList>();
                resourcesLists.Add(new ResourcesList {
                    Key = "Sc_Total", Value = "0"
                });
                resourcesLists.Add(new ResourcesList {
                    Key = "Sc_Unlocked", Value = "0"
                });
                resourcesLists.Add(new ResourcesList {
                    Key = "Sc_Locked", Value = "0"
                });
                ui.AddResources(resourcesLists);

                var taskIntegration = Task.Run(() => LoadData(PlayniteApi, this.GetPluginUserDataPath(), settings))
                                      .ContinueWith(antecedent =>
                {
                    GameAchievements SelectedGameAchievements = antecedent.Result;

                    Application.Current.Dispatcher.Invoke(new Action(() => {
                        // No achievements
                        if (SelectedGameAchievements == null || !SelectedGameAchievements.HaveAchivements)
                        {
                            //logger.Debug(JsonConvert.SerializeObject(SelectedGameAchievements));
                            logger.Info("SuccessStory - No achievement for " + GameSelected.Name);
                            return;
                        }


                        // Add resources
                        resourcesLists.Add(new ResourcesList {
                            Key = "Sc_Total", Value = SelectedGameAchievements.Total.ToString()
                        });
                        resourcesLists.Add(new ResourcesList {
                            Key = "Sc_Unlocked", Value = SelectedGameAchievements.Unlocked.ToString()
                        });
                        resourcesLists.Add(new ResourcesList {
                            Key = "Sc_Locked", Value = SelectedGameAchievements.Locked.ToString()
                        });
                        ui.AddResources(resourcesLists);


                        // Auto integration
                        if (settings.EnableIntegrationInDescription || settings.EnableIntegrationInDescriptionWithToggle)
                        {
                            if (settings.EnableIntegrationInDescriptionWithToggle)
                            {
                                ToggleButton tb = new ToggleButton();
                                if (settings.IntegrationToggleDetails)
                                {
                                    tb = new SuccessStoryToggleButtonDetails(SelectedGameAchievements.Unlocked, SelectedGameAchievements.Total);
                                }
                                else
                                {
                                    tb         = new SuccessStoryToggleButton();
                                    tb.Content = resources.GetString("LOCSucessStoryAchievements");
                                }

                                tb.IsChecked           = false;
                                tb.Name                = "PART_ScToggleButton";
                                tb.Width               = 150;
                                tb.HorizontalAlignment = HorizontalAlignment.Right;
                                tb.VerticalAlignment   = VerticalAlignment.Stretch;
                                tb.Margin              = new Thickness(10, 0, 0, 0);
                                tb.Click              += OnGameSelectedToggleButtonClick;

                                ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(tb);
                            }


                            // Add Achievements elements
                            StackPanel ScA = CreateSc(achievementsDatabase, SelectedGameAchievements, settings.IntegrationShowTitle, settings.IntegrationShowGraphic, settings.IntegrationShowAchievements, settings.IntegrationShowProgressBar, false);

                            if (settings.EnableIntegrationInDescriptionWithToggle)
                            {
                                ScA.Visibility = Visibility.Collapsed;
                            }

                            ui.AddElementInGameSelectedDescription(ScA, settings.IntegrationTopGameDetails);
                        }


                        // Auto adding button
                        if (settings.EnableIntegrationButton || settings.EnableIntegrationButtonDetails)
                        {
                            Button bt = new Button();
                            if (settings.EnableIntegrationButton)
                            {
                                bt.Content = resources.GetString("LOCSucessStoryAchievements");
                            }

                            if (settings.EnableIntegrationButtonDetails)
                            {
                                bt = new SuccessStoryButtonDetails(SelectedGameAchievements.Unlocked, SelectedGameAchievements.Total);
                            }

                            bt.Name  = "PART_ScButton";
                            bt.Width = 150;
                            bt.HorizontalAlignment = HorizontalAlignment.Right;
                            bt.VerticalAlignment   = VerticalAlignment.Stretch;
                            bt.Margin = new Thickness(10, 0, 0, 0);
                            bt.Click += OnBtGameSelectedActionBarClick;

                            ui.AddButtonInGameSelectedActionBarButtonOrToggleButton(bt);
                        }


                        // Custom theme
                        if (settings.EnableIntegrationInCustomTheme)
                        {
                            if (settings.IntegrationShowGraphic)
                            {
                                StackPanel scAG = CreateSc(achievementsDatabase, SelectedGameAchievements, false, true, false, false, true);
                                ui.AddElementInCustomTheme(scAG, "PART_Achievements_Graphics");
                            }

                            if (settings.IntegrationShowAchievements)
                            {
                                StackPanel scAL = CreateSc(achievementsDatabase, SelectedGameAchievements, false, false, true, false, true);
                                ui.AddElementInCustomTheme(scAL, "PART_Achievements_List");
                            }

                            if (settings.IntegrationShowProgressBar)
                            {
                                StackPanel scPB = CreateSc(achievementsDatabase, SelectedGameAchievements, false, false, false, true, true);
                                ui.AddElementInCustomTheme(scPB, "PART_Achievements_ProgressBar");
                            }
                        }
                    }));
                });
            }
            catch (Exception ex)
            {
                Common.LogError(ex, "SucessStory", $"Impossible integration");
            }
        }