コード例 #1
0
        public EffectConfig(EffectData effectData, EffectInfo effectInfo, int lang)
        {
            InitializeComponent();

            effect_rename.Content = Lang.effect_config("effect_rename", lang);
            effect_override_timer_type.Content             = Lang.effect_config("effect_override_timer_type", lang);
            effect_override_timer_manual.Content           = Lang.effect_config("effect_override_timer_manual", lang);
            effect_make_permanent.Content                  = Lang.effect_config("effect_make_permanent", lang);
            effectconf_effect_weight_mult_title.Content    = Lang.effect_config("effectconf_effect_weight_mult_title", lang);
            effectconf_exclude_voting_enable_title.Content = Lang.effect_config("effectconf_exclude_voting_enable_title", lang);
            effectconf_mp3_label.Text = Lang.effect_config("effectconf_mp3_label", lang) + $"{effectInfo.Id}.mp3";
            button_save.Content       = Lang.effect_config("button_save", lang);

            Title = effectInfo.Name;

            m_isTimedEffect = effectInfo.IsTimed;

            if (m_isTimedEffect)
            {
                effectconf_timer_type_enable.IsChecked = effectData.TimedType != (effectInfo.IsShort ? EffectTimedType.TIMED_SHORT : EffectTimedType.TIMED_NORMAL);
                effectconf_timer_type.ItemsSource      = new string[]
                {
                    "Normal",
                    "Short"
                };
                effectconf_timer_type.SelectedIndex = effectData.TimedType == EffectTimedType.TIMED_SHORT ? 1 : 0;

                if (effectData.CustomTime >= 0)
                {
                    effectconf_timer_time_enable.IsChecked = true;
                    effectconf_timer_time.Text             = $"{effectData.CustomTime}";
                }
            }

            effectconf_timer_permanent_enable.IsChecked = effectData.Permanent;

            int[] weightItems = new int[10];
            for (int i = 0; i < 10; i++)
            {
                weightItems[i] = i + 1;
            }
            effectconf_effect_weight_mult.ItemsSource   = weightItems;
            effectconf_effect_weight_mult.SelectedIndex = effectData.WeightMult - 1;

            effectconf_exclude_voting_enable.IsChecked = effectData.ExcludedFromVoting;

            effectconf_effect_custom_name.Text = $"{(Title == effectData.CustomName ? "" : effectData.CustomName)}";

            effectconf_mp3_label.Text += $"{effectInfo.Id}.mp3";

            // Meta Effect Handling

            if (effectInfo.EffectCategory == EffectCategory.META)
            {
                effectconf_exclude_voting_enable_title.Visibility = Visibility.Hidden;
                effectconf_exclude_voting_enable.Visibility       = Visibility.Hidden;
                effectconf_exclude_voting_enable.IsChecked        = false;
            }

            CheckEnableConfigurables();
        }
コード例 #2
0
        private void Init()
        {
            InitializeComponent();

            if (!m_initializedTitle)
            {
                m_initializedTitle = true;

                Title += " (v" + Info.VERSION + ")";
            }

            CheckForUpdates();

            ParseConfigFile();
            ParseTwitchFile();

            InitEffectsTreeView();

            ParseEffectsFile();

            InitTwitchTab();

            // Check write permissions
            try
            {
                if (!File.Exists(".writetest"))
                {
                    using (File.Create(".writetest"))
                    {
                    }

                    File.Delete(".writetest");
                }
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show(Lang.get_error("no_write_permission_msg", CultureInfo.InstalledUICulture.ToString()), Lang.get_error("no_write_permission_title", CultureInfo.InstalledUICulture.ToString()),
                                MessageBoxButton.OK, MessageBoxImage.Error);

                Application.Current.Shutdown();
            }
        }
コード例 #3
0
        private void lang_list_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            WriteEffectsFile();
            cacheLang  = lang_list.SelectedIndex;
            this.Title = Lang.app_labels("title", lang_list.SelectedIndex);
            InitEffectsTreeView();
            user_reset.Content                      = Lang.app_labels("user_reset", lang_list.SelectedIndex);
            user_save.Content                       = Lang.app_labels("user_save", lang_list.SelectedIndex);
            lang_label.Content                      = Lang.app_labels("lang_label", lang_list.SelectedIndex);
            effects_tab.Header                      = Lang.app_labels("effects_tab", lang_list.SelectedIndex);
            meta_tab.Header                         = Lang.app_labels("meta_tab", lang_list.SelectedIndex);
            misc_tab.Header                         = Lang.app_labels("misc_tab", lang_list.SelectedIndex);
            twitch_tab.Header                       = Lang.app_labels("twitch_tab", lang_list.SelectedIndex);
            more_tab.Header                         = Lang.app_labels("more_tab", lang_list.SelectedIndex);
            meta_normal_label.Content               = Lang.app_labels("meta_cooldown_label", lang_list.SelectedIndex);
            meta_duration_label.Content             = Lang.app_labels("meta_duration_label", lang_list.SelectedIndex);
            meta_short_label.Content                = Lang.app_labels("meta_short_label", lang_list.SelectedIndex);
            effect_timer.Content                    = Lang.app_labels("effect_timer", lang_list.SelectedIndex);
            effect_duration.Content                 = Lang.app_labels("effect_duration", lang_list.SelectedIndex);
            effect_duration_short.Content           = Lang.app_labels("effect_duration_short", lang_list.SelectedIndex);
            effects_seed.Content                    = Lang.app_labels("effects_seed", lang_list.SelectedIndex);
            timebar_color.Content                   = Lang.app_labels("timebar_color", lang_list.SelectedIndex);
            effect_textcolor.Content                = Lang.app_labels("effect_textcolor", lang_list.SelectedIndex);
            effect_timer_color.Content              = Lang.app_labels("effect_timer_color", lang_list.SelectedIndex);
            timebar_draw.Content                    = Lang.app_labels("effect_duration_short", lang_list.SelectedIndex);
            effect_text_draw.Content                = Lang.app_labels("timebar_draw", lang_list.SelectedIndex);
            clear_effects.Content                   = Lang.app_labels("clear_effects", lang_list.SelectedIndex);
            mod_toggle.Content                      = Lang.app_labels("mod_toggle", lang_list.SelectedIndex);
            effect_menu.Content                     = Lang.app_labels("effect_menu", lang_list.SelectedIndex);
            timebar_pause.Content                   = Lang.app_labels("timebar_pause", lang_list.SelectedIndex);
            twitch_info.Content                     = Lang.app_labels("twitch_info", lang_list.SelectedIndex);
            twitch_user_agreed.Content              = Lang.app_labels("twitch_user_agreed", lang_list.SelectedIndex);
            twitch_user_channel_name_label.Content  = Lang.app_labels("twitch_user_channel_name_label", lang_list.SelectedIndex);
            twitch_user_user_name_label.Content     = Lang.app_labels("twitch_user_user_name_label", lang_list.SelectedIndex);
            twitch_user_channel_oauth_label.Content = Lang.app_labels("twitch_user_channel_oauth_label", lang_list.SelectedIndex);
            twitch_user_effects_secs_before_chat_voting_label.Content = Lang.app_labels("twitch_user_effects_secs_before_chat_voting_label", lang_list.SelectedIndex);
            twitch_user_overlay_mode_label.Content           = Lang.app_labels("twitch_user_overlay_mode_label", lang_list.SelectedIndex);
            twitch_user_random_voteable_enable_label.Content = Lang.app_labels("twitch_user_random_voteable_enable_label", lang_list.SelectedIndex);
            proportional_vote.Content = Lang.app_labels("proportional_vote", lang_list.SelectedIndex);
            twitch_user_chance_system_enable_label.Content = Lang.app_labels("twitch_user_chance_system_enable_label", lang_list.SelectedIndex);
            twitch_user_chance_system_retain_chance_enable_label.Content = Lang.app_labels("twitch_user_chance_system_retain_chance_enable_label", lang_list.SelectedIndex);
            mod_page.Content   = Lang.app_labels("mod_page", lang_list.SelectedIndex);
            donation.Content   = Lang.app_labels("donation", lang_list.SelectedIndex);
            contribute.Content = Lang.app_labels("contribute", lang_list.SelectedIndex);
            discord.Content    = Lang.app_labels("discord", lang_list.SelectedIndex);

            if (lang_list.SelectedIndex != 0)
            {
                translatedby.Visibility = Visibility.Visible;
                translatedby.Content    = Lang.app_labels("translatedby", lang_list.SelectedIndex);
            }
            else
            {
                translatedby.Visibility = Visibility.Hidden;
                translatedby.Content    = "";
            }

            if (update == 0)
            {
                update_available_label.Content = Lang.app_labels("no_update_available_label", lang_list.SelectedIndex);
            }
            else if (update == 1)
            {
                update_available_label.Content = Lang.app_labels("update_available_label", lang_list.SelectedIndex);
            }
            else
            {
                update_available_label.Content = Lang.app_labels("update_error", lang_list.SelectedIndex);
            }

            ParseEffectsFile();
        }
コード例 #4
0
        private void InitEffectsTreeView()
        {
            m_treeMenuItemsMap = new Dictionary <EffectType, TreeMenuItem>();
            m_effectDataMap    = new Dictionary <EffectType, EffectData>();

            TreeMenuItem playerParentItem  = new TreeMenuItem(Lang.app_tags(0, lang_list.SelectedIndex));
            TreeMenuItem vehicleParentItem = new TreeMenuItem(Lang.app_tags(1, lang_list.SelectedIndex));
            TreeMenuItem pedsParentItem    = new TreeMenuItem(Lang.app_tags(2, lang_list.SelectedIndex));
            TreeMenuItem timeParentItem    = new TreeMenuItem(Lang.app_tags(3, lang_list.SelectedIndex));
            TreeMenuItem weatherParentItem = new TreeMenuItem(Lang.app_tags(4, lang_list.SelectedIndex));
            TreeMenuItem miscParentItem    = new TreeMenuItem(Lang.app_tags(5, lang_list.SelectedIndex));
            TreeMenuItem metaParentItem    = new TreeMenuItem(Lang.app_tags(6, lang_list.SelectedIndex));

            SortedDictionary <string, Tuple <EffectType, EffectCategory> > sortedEffects = new SortedDictionary <string, Tuple <EffectType, EffectCategory> >();

            for (EffectType effectType = 0; effectType < EffectType._EFFECT_ENUM_MAX; effectType++)
            {
                EffectInfo effectInfo = EffectsMap[effectType];

                sortedEffects.Add(Lang.app_effects(effectInfo.Id.ToString(), lang_list.SelectedIndex), new Tuple <EffectType, EffectCategory>(effectType, effectInfo.EffectCategory));
            }

            foreach (var effect in sortedEffects)
            {
                Tuple <EffectType, EffectCategory> effectTuple = effect.Value;

                TreeMenuItem menuItem = new TreeMenuItem(effect.Key);
                m_treeMenuItemsMap.Add(effectTuple.Item1, menuItem);

                switch (effectTuple.Item2)
                {
                case EffectCategory.PLAYER:
                    playerParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.VEHICLE:
                    vehicleParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.PEDS:
                    pedsParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.TIME:
                    timeParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.WEATHER:
                    weatherParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.MISC:
                    miscParentItem.AddChild(menuItem);
                    break;

                case EffectCategory.META:
                    metaParentItem.AddChild(menuItem);
                    break;
                }
            }

            effects_user_effects_tree_view.Items.Clear();
            effects_user_effects_tree_view.Items.Add(playerParentItem);
            effects_user_effects_tree_view.Items.Add(vehicleParentItem);
            effects_user_effects_tree_view.Items.Add(pedsParentItem);
            effects_user_effects_tree_view.Items.Add(timeParentItem);
            effects_user_effects_tree_view.Items.Add(weatherParentItem);
            effects_user_effects_tree_view.Items.Add(miscParentItem);

            meta_effects_tree_view.Items.Clear();
            meta_effects_tree_view.Items.Add(metaParentItem);
        }