Example #1
0
        private void FxHighlight_OnItemSelect(UIMenu sender, UIMenuItem selectedItem, int index, UIMenuItem itemToControl, FxName fxName, string asset, bool useEvolutionArg = false)
        {
            if (selectedItem == itemToControl)
            {
                PTFXHelper.RemovePTFX(fxHandle);

                if (itemToControl.Text == "REMOVED")
                {
                    return;
                }

                Ped player = Game.Player.Character;

                PlayLoopOrNonLoopedFX(player.IsInVehicle() ? player.CurrentVehicle : (Entity)player, asset, fxName, useEvolutionArg);

                lastAsset  = asset;
                lastFXName = fxName;

                if (Game.IsKeyPressed(Keys.ShiftKey))
                {
                    if (sender == FavouritesMenu || (sender.ParentMenu != null && sender.ParentMenu == FavouritesMenu)) //Remove from favourites
                    {
                        try
                        {
                            FavouritesList.Remove(FavouritesList.Find(d => d.FxName == fxName && d.AssetName == asset));
                            ForceDecimal();
                            XMLHelper.SaveObjectToXML(FavouritesList, @"scripts\ParticleFxFavourites.xml");

                            if (sender == FavouritesMenu)
                            {
                                itemToControl.Text        = "REMOVED";
                                itemToControl.Value       = null;
                                itemToControl.Description = null;
                            }
                            else if (sender.ParentMenu != null && sender.ParentMenu == FavouritesMenu)
                            {
                                sender.Title                  = "REMOVED";
                                sender.ParentItem.Text        = "REMOVED";
                                sender.ParentItem.Description = null;
                            }

                            UI.ShowSubtitle("Removed from Favourites!");
                        }
                        catch { }
                    }
                    else //Add to favourites
                    {
                        DetailedFx newFav = new DetailedFx(asset, fxName);
                        FavouritesList.Add(newFav);
                        ForceDecimal();
                        XMLHelper.SaveObjectToXML(FavouritesList, @"scripts\ParticleFxFavourites.xml");
                        UI.ShowSubtitle("Saved to Favourites!");

                        favLastIndex      = FavouritesMenu.SelectedIndex;
                        rebuildFavourites = true;
                        allowMenuDraw     = false;
                    }
                }
            }
        }
Example #2
0
        void SetupSearchMenu()
        {
            List <DetailedFx> searchFxList = new List <DetailedFx>();

            foreach (var dic in FxAssets)
            {
                foreach (var fxname in dic.FxNames.Where(n => n.PTFXName.Contains(searchString)))
                {
                    DetailedFx fx = new DetailedFx(dic.AssetName, fxname);
                    searchFxList.Add(fx);
                }
            }

            foreach (var detailedPtfx in searchFxList)
            {
                DecideDetailedFxMenuArrangement(SearchMenu, detailedPtfx);
            }
        }
Example #3
0
        void DecideDetailedFxMenuArrangement(UIMenu menuToModify, DetailedFx detailedPtfx)
        {
            int evoListCount = detailedPtfx.FxName.EvolutionList.Count;

            if (evoListCount > 1)
            {
                UIMenu fxNameMenu = new UIMenu(detailedPtfx.FxName.PTFXName);
                _menuPool.AddSubMenu(fxNameMenu, menuToModify, detailedPtfx.FxName.PTFXName, "Asset Name: " + detailedPtfx.AssetName + ". May Require Evolution Arguments.");

                foreach (var e in detailedPtfx.FxName.EvolutionList)
                {
                    UIMenuItem evoName = new UIMenuItem("Evolution Name: " + e.EvolutionName, "< " + e.Amount + " >", "Hold SHIFT and select to save to/remove from favourites.");
                    fxNameMenu.OnItemSelect    += (s, selItem, selIndex) => FxHighlight_OnItemSelect(s, selItem, selIndex, evoName, detailedPtfx.FxName, detailedPtfx.AssetName, true);
                    fxNameMenu.OnItemLeftRight += (s, selItem, selIndex, direction) => FxEvolution_OnItemLeftRight(s, selItem, selIndex, direction, evoName, detailedPtfx.FxName.PTFXName, detailedPtfx.AssetName, true, e, e.EvolutionName);
                    fxNameMenu.AddMenuItem(evoName);
                }
            }
            else
            {
                UIMenuItem fxnameItem = new UIMenuItem(detailedPtfx.FxName.PTFXName, null, "Asset Name: " + detailedPtfx.AssetName);
                if (evoListCount == 1)
                {
                    fxnameItem.Value              = "< " + detailedPtfx.FxName.EvolutionList[0].Amount + " >";
                    fxnameItem.Description        = "Asset Name: " + detailedPtfx.AssetName + ". Has one Evolution argument: " + detailedPtfx.FxName.EvolutionList[0].EvolutionName + ". Hold SHIFT and select to save to / remove from favourites.";
                    menuToModify.OnItemLeftRight += (s, selItem, selIndex, direction) => FxEvolution_OnItemLeftRight(s, selItem, selIndex, direction, fxnameItem, detailedPtfx.FxName.PTFXName, detailedPtfx.AssetName, true, detailedPtfx.FxName.EvolutionList[0], detailedPtfx.FxName.EvolutionList[0].EvolutionName);
                    menuToModify.OnItemSelect    += (s, selItem, selIndex) => FxHighlight_OnItemSelect(s, selItem, selIndex, fxnameItem, detailedPtfx.FxName, detailedPtfx.AssetName, true);
                }
                else
                {
                    fxnameItem.Description     = "Asset Name: " + detailedPtfx.AssetName + ". No Evolution arguments found. Hold SHIFT and select to save to / remove from favourites.";
                    menuToModify.OnItemSelect += (s, selItem, selIndex) => FxHighlight_OnItemSelect(s, selItem, selIndex, fxnameItem, detailedPtfx.FxName, detailedPtfx.AssetName);
                }

                menuToModify.AddMenuItem(fxnameItem);
            }
        }