コード例 #1
0
ファイル: MainMenuV.cs プロジェクト: SynysterZV/GTAV-Menu
        private void CreateSubMenuItems()
        {
            PlayerSubMenuItem         = new NativeSubmenuItem(PlayerUI, UI);
            WeaponSubMenuItem         = new NativeSubmenuItem(WeaponUI, UI);
            VehicleSubMenuItem        = new NativeSubmenuItem(VehicleUI, UI);
            VehicleSpawnerSubMenuItem = new NativeSubmenuItem(VehicleSpawnerUI, VehicleUI);

            Pool.Add(UI);
            UI.Add(PlayerSubMenuItem);
            UI.Add(WeaponSubMenuItem);
            UI.Add(VehicleSubMenuItem);

            Pool.Add(PlayerUI);
            PlayerUI.Add(GodMode);
            PlayerUI.Add(WantedLevel);

            Pool.Add(WeaponUI);
            WeaponUI.Add(GiveAllWeapons);
            WeaponUI.Add(GiveWeapon);
            WeaponUI.Add(RemoveAllWeapons);

            Pool.Add(VehicleUI);
            Pool.Add(VehicleSpawnerUI);
            VehicleUI.Add(VehicleSpawnerSubMenuItem);
            VehicleUI.Add(RepairVehicle);
            VehicleSpawnerUI.Add(SpawnInVehicle);
            CreateVehicleSpawners();
        }
コード例 #2
0
        public Basics()
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);

            // Add the tick event
            Tick += Basics_Tick;
        }
コード例 #3
0
        private IList <NativeMenuItemBase> GetNativeItems(IEnumerable <MenuItemModel> items, NativeMenu menu = null)
        {
            var result = new List <NativeMenuItemBase>();

            foreach (var item in items)
            {
                if (item is MenuItemSeparatorModel)
                {
                    if (menu != null)
                    {
                        menu.Add(new NativeMenuItemSeperator());
                    }
                    else
                    {
                        result.Add(new NativeMenuItemSeperator());
                    }
                }
                else
                {
                    var gesture = item.Gesture;

                    var nativeItem = new NativeMenuItem
                    {
                        Header  = item.Label,
                        Command = item.Command,
                    };

                    if (gesture != null)
                    {
                        nativeItem.Gesture = KeyGesture.Parse(gesture);
                    }

                    if (nativeItem.Header == null)
                    {
                        nativeItem.Header = "";
                    }

                    if (item.Children != null && item.Children.Any())
                    {
                        var nativeMenu = new NativeMenu();
                        GetNativeItems(item.Children, nativeMenu);

                        nativeItem.Menu = nativeMenu;
                    }

                    if (menu != null)
                    {
                        menu.Add(nativeItem);
                    }
                    else
                    {
                        result.Add(nativeItem);
                    }
                }
            }

            return(result);
        }
コード例 #4
0
        static IDisposable?InitMenuItems(NativeMenu menu)
        {
#if !TRAY_INDEPENDENT_PROGRAM
            if (IViewModelManager.Instance.MainWindow is not MainWindowViewModel main)
            {
                return(null);
            }
#else
            MainWindowViewModel main = new();
#endif
            var query = from x in main.AllTabItems
                        let tabItem = x is TabItemViewModel item ? item : null
                                      where tabItem != null
                                      select tabItem;
            tabItems = new();
            foreach (var item in query)
            {
                var menuItem = new NativeMenuItem
                {
                    Header  = item.Name,
                    Command = ReactiveCommand.Create(() =>
                    {
                        OnMenuClick(item.Id);
                    }),
                };
                tabItems.Add(item, menuItem);
                menu.Add(menuItem);
            }
            exitMenuItem = new NativeMenuItem
            {
                Header  = Exit,
                Command = ReactiveCommand.Create(() =>
                {
                    OnMenuClick(TaskBarWindowViewModel.CommandExit);
                }),
            };
            menu.Add(exitMenuItem);

#if !TRAY_INDEPENDENT_PROGRAM
            return(R.Subscribe(() =>
            {
                if (exitMenuItem != null)
                {
                    exitMenuItem.Header = Exit;
                }
                foreach (var item in tabItems)
                {
                    item.Value.Header = item.Key.Name;
                }
            }));
#else
            return(null);
#endif
        }
コード例 #5
0
ファイル: Demo.cs プロジェクト: justalemon/LemonUI
        public static void Main()
#endif
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            randomFont.Activated   += RandomFont_Activated;
            showHack.Activated     += ShowHack_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(randomFont);
            menu.Add(showHack);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);
            pool.Add(hacking);

            // Add the tick event for FiveM, SHVDN2 and SHVDN3
#if (FIVEM || SHVDN2 || SHVDN3)
            Tick += Basics_Tick;
#elif RPH
            // Or on RagePluginHook, keep it running
            while (true)
            {
                Tick();
                GameFiber.Yield();
            }
#endif
        }
コード例 #6
0
ファイル: Demo.cs プロジェクト: NoArtifactLights/LUI4Rage
        public static void Main()
#endif
        {
            // Add the events of the menu and the items
            menu.Shown   += Menu_Shown;
            menu.Closing += Menu_Closing;
            showLoadingScreen.Activated += ShowLoadingScreen_Activated;
            showBigMessage.Activated    += ShowBigMessage_Activated;
            useMouse.CheckboxChanged    += UseMouse_CheckboxChanged;
            flip.Activated         += Flip_Activated;
            clear.Activated        += Clear_Activated;
            addRandom.Activated    += AddRandom_Activated;
            removeRandom.Activated += RemoveRandom_Activated;
            // And then the items and submenus themselves
            menu.Add(keepOpen);
            menu.Add(showLoadingScreen);
            menu.Add(showBigMessage);
            menu.Add(useMouse);
            menu.Add(flip);
            menu.Add(clear);
            menu.AddSubMenu(submenu);
            submenu.Add(addRandom);
            submenu.Add(removeRandom);

            // Items need to be part of the pool, so add them
            pool.Add(menu);
            pool.Add(submenu);
            pool.Add(collection);
            pool.Add(loadingScreen);
            pool.Add(bigMessage);

#if !RAGE
            // Add the tick event
            Tick += Basics_Tick;
#else
            // There is no tick event in RAGE. It doesn't work that way.
            gameFiber = GameFiber.StartNew(
                () =>
            {
                while (true)
                {
                    Basics_Tick();
                }
            }
                );
#endif
        }
コード例 #7
0
ファイル: MainMenuV.cs プロジェクト: thehairy/GTAV-Menu
        private void CreateVehicleSpawners()
        {
            foreach (VehicleClass vclass in (VehicleClass[])Enum.GetValues(typeof(VehicleClass)))
            {
                NativeListItem <VehicleHash> LI = new NativeListItem <VehicleHash>(vclass.ToString(), Vehicle.GetAllModelsOfClass(vclass));
                VehicleSpawnerUI.Add(LI);

                LI.Activated += (object sender, EventArgs e) =>
                {
                    World.CreateVehicle(LI.SelectedItem, (Game.Player.Character.Position + Game.Player.Character.ForwardVector * 3));
                };
            }
        }
コード例 #8
0
        internal static void Loop()
        {
            LoadShopManager();
            LoadShops();
            shopMenu = new NativeMenu("Food Store", "FOOD STORES");
            MenuManager.Pool.Add(shopMenu);

            while (Common.InstanceRunning)
            {
                GameFiber.Yield();
                foreach (var shop in shops)
                {
                    if (Game.LocalPlayer.Character.DistanceTo(shop.Position.GeneratedVector3) < 3.5f)
                    {
                        if (!alreadySetCurrentItems)
                        {
                            currentItems = shop.Items;
                            shopMenu.Clear();

                            foreach (var item in currentItems)
                            {
                                var shopItem = new NativeItem(item.Name, "Buys the food.");
                                shopItem.Activated += (sender, selectedItem) =>
                                {
                                    if (Functions.CostMoney(item.Price))
                                    {
                                        Functions.IncreaseHungry(item.Amount);
                                    }
                                };
                                shopMenu.Add(shopItem);
                            }
                            alreadySetCurrentItems = true;
                        }

                        Game.DisplayHelp("Press ~INPUT_CONTEXT~ to open the shop menu.");
                        if (Game.IsControlPressed(0, GameControl.Context))
                        {
                            shopMenu.Visible = !shopMenu.Visible;
                        }
                        break;
                    }
                    else
                    {
                        alreadySetCurrentItems = false;
                    }
                }
            }
        }
コード例 #9
0
        private static NativeMenu CreateDefaultAppMenu()
        {
            var result = new NativeMenu();

            var aboutItem = new NativeMenuItem
            {
                Header = "About Avalonia",
            };

            aboutItem.Click += async(sender, e) =>
            {
                var dialog = new AboutAvaloniaDialog();

                var mainWindow = (Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)?.MainWindow;

                await dialog.ShowDialog(mainWindow);
            };

            result.Add(aboutItem);

            return(result);
        }
コード例 #10
0
        private void SetMenu(NativeMenu menu)
        {
            var menuItem = menu.Parent;

            var appMenuHolder = menuItem?.Parent;

            if (menu.Parent is null)
            {
                menuItem = new NativeMenuItem();
            }

            if (appMenuHolder is null)
            {
                appMenuHolder = new NativeMenu();

                appMenuHolder.Add(menuItem);
            }

            menuItem.Menu = menu;

            var setMenu = false;

            if (_nativeMenu is null)
            {
                _nativeMenu = (__MicroComIAvnMenuProxy)__MicroComIAvnMenuProxy.Create(_factory);

                _nativeMenu.Initialise(this, appMenuHolder, "");

                setMenu = true;
            }

            _nativeMenu.Update(_factory, appMenuHolder);

            if (setMenu)
            {
                _factory.SetAppMenu(_nativeMenu);
            }
        }
コード例 #11
0
        /// <summary>
        /// Initialize all of the menus
        /// </summary>
        public static void Init()
        {
            WeaponsMenu.AddSubMenu(PrimaryWep);
            WeaponsMenu.AddSubMenu(SideWep);
            WeaponsMenu.AddSubMenu(HeavyWep);

            CivilianMenu.AddSubMenu(CivAir);
            CivilianMenu.AddSubMenu(CivLand);
            CivilianMenu.AddSubMenu(CivSea);
            MilitaryMenu.AddSubMenu(MilAir);
            MilitaryMenu.AddSubMenu(MilLand);
            MilitaryMenu.AddSubMenu(MilSea);
            VehicleMenu.AddSubMenu(CivilianMenu);
            VehicleMenu.AddSubMenu(MilitaryMenu);
            MainMenu.AddSubMenu(VehicleMenu);
            MainMenu.AddSubMenu(WeaponsMenu);

            MainPool.Add(PrimaryWep);
            MainPool.Add(SideWep);
            MainPool.Add(HeavyWep);
            MainPool.Add(CivAir);
            MainPool.Add(CivLand);
            MainPool.Add(CivSea);
            MainPool.Add(MilAir);
            MainPool.Add(MilLand);
            MainPool.Add(MilSea);
            MainPool.Add(CivilianMenu);
            MainPool.Add(MilitaryMenu);
            MainPool.Add(VehicleMenu);
            MainPool.Add(WeaponsMenu);
            MainPool.Add(MainMenu);

            // Heavy weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.HeavyWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                HeavyWep.Add(WeaponItem);
            }

            // Primary weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.PrimaryWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                PrimaryWep.Add(WeaponItem);
            }

            // Side weapons
            foreach (JustCauseRebelDrops.Classes.Weapon wep in Main.WepConfig.SideWeapons)
            {
                var WeaponItem = new NativeItem(wep.DisplayName);
                WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                SideWep.Add(WeaponItem);
            }

            // Custom weapons
            foreach (CustomWeaponConfig CustomWepConfig in Main.CustomWeaponConfigs)
            {
                NativeMenu CustomMenu = new NativeMenu(CustomWepConfig.CategoryName, CustomWepConfig.CategoryName);
                WeaponsMenu.AddSubMenu(CustomMenu);

                foreach (Classes.Weapon wep in CustomWepConfig.Weapons)
                {
                    var WeaponItem = new NativeItem(wep.DisplayName);
                    WeaponItem.Activated += (sender, e) => DropWeapon(wep.Hash);
                    CustomMenu.Add(WeaponItem);
                }

                MainPool.Add(CustomMenu);
            }

            // Civilian vehicles
            foreach (DropVehicle veh in Main.VehConfig.CivilianVehicles)
            {
                switch (veh.Type)
                {
                case VehicleType.Heli:
                case VehicleType.Plane:
                    var VehicleItem = new NativeItem(veh.DisplayName);
                    VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivAir.Add(VehicleItem);
                    break;

                case VehicleType.Land:
                    var LandVehicleItem = new NativeItem(veh.DisplayName);
                    LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivLand.Add(LandVehicleItem);
                    break;

                case VehicleType.Sea:
                    var SeaVehicleItem = new NativeItem(veh.DisplayName);
                    SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    CivSea.Add(SeaVehicleItem);
                    break;
                }
            }

            // Military vehicles
            foreach (DropVehicle veh in Main.VehConfig.MilitaryVehicles)
            {
                switch (veh.Type)
                {
                case VehicleType.Heli:
                case VehicleType.Plane:
                    var VehicleItem = new NativeItem(veh.DisplayName);
                    VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilAir.Add(VehicleItem);
                    break;

                case VehicleType.Land:
                    var LandVehicleItem = new NativeItem(veh.DisplayName);
                    LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilLand.Add(LandVehicleItem);
                    break;

                case VehicleType.Sea:
                    var SeaVehicleItem = new NativeItem(veh.DisplayName);
                    SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                    MilSea.Add(SeaVehicleItem);
                    break;
                }
            }

            // Custom vehicles
            foreach (CustomVehicleConfig CustomVehConfig in Main.CustomVehicleConfigs)
            {
                NativeMenu CustomMenu = new NativeMenu(CustomVehConfig.CategoryName, CustomVehConfig.CategoryName);
                VehicleMenu.AddSubMenu(CustomMenu);

                foreach (DropVehicle veh in CustomVehConfig.Vehicles)
                {
                    switch (veh.Type)
                    {
                    case VehicleType.Heli:
                    case VehicleType.Plane:
                        var VehicleItem = new NativeItem(veh.DisplayName);
                        VehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(VehicleItem);
                        break;

                    case VehicleType.Land:
                        var LandVehicleItem = new NativeItem(veh.DisplayName);
                        LandVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(LandVehicleItem);
                        break;

                    case VehicleType.Sea:
                        var SeaVehicleItem = new NativeItem(veh.DisplayName);
                        SeaVehicleItem.Activated += (sender, e) => DropVehicle(veh.ModelName);
                        CustomMenu.Add(SeaVehicleItem);
                        break;
                    }

                    CustomVehicles.Add(veh);
                }

                MainPool.Add(CustomMenu);
            }
        }
コード例 #12
0
ファイル: Main.cs プロジェクト: Starman0620/RealityV
        public Main()
        {
            if (!Directory.Exists(Globals.ModPath))
            {
                Directory.CreateDirectory(Globals.ModPath);
            }
            if (!Directory.Exists(Globals.ModulePath))
            {
                Directory.CreateDirectory(Globals.ModulePath);
            }
            if (!Directory.Exists(Globals.FuelPath))
            {
                Directory.CreateDirectory(Globals.FuelPath);
            }

            Config = Configuration.FromFile();
            // Initialize all of the necessary modules
            if (Config.Modules.Fuel)
            {
                Fuel FuelMod = new Fuel();
                DrainFuel.Activated += (object sender, EventArgs e) => {
                    FuelMod.DrainFuel();
                };
                FillFuel.Activated += (object sender, EventArgs e) => {
                    FuelMod.FillFuel();
                };
                Modules.Add(FuelMod);
            }
            if (Config.Modules.Bills)
            {
                Modules.Add(new Bills());
            }
            if (Config.Modules.Homeless)
            {
                Modules.Add(new Homeless());
            }
            if (Config.Modules.Hunger)
            {
                Modules.Add(new Hunger());
            }
            if (Config.Modules.IncomeTax)
            {
                Modules.Add(new Tax());
            }
            if (Config.Modules.Jobs)
            {
                Modules.Add(new Jobs());
            }
            foreach (Module Mod in Modules)
            {
                Mod.Initialize();
            }

#if DEBUG
            int Build = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Revision;
            Text.Caption = $"RealityV Build {Build}\nDO NOT DISTRIBUTE";
            Menu.Add(DrainFuel);
            Menu.Add(FillFuel);
            //Menu.Add(Starve);
            //Menu.Add(Eat);
            //Menu.Add(GoHomeless);
            Menu.UseMouse = false;
            MainPool.Add(Menu);
#endif

            Tick    += OnTick;
            Aborted += (object sender, EventArgs e) =>
            {
                foreach (Module Mod in Modules)
                {
                    Mod.Abort();
                }
            };
        }
コード例 #13
0
        private void Common_Start(object sender, EventArgs e)
        {
            try
            {
                logger.Trace("Loading Main Menu");
                lemonPool = new ObjectPool();
                logger.Trace("Menu Pool created");
#if DEBUG
                mainMenu = new NativeMenu("NAL Beta", Strings.MenuMainTitle);
#else
                mainMenu = new NativeMenu("NAL", Strings.MenuMainTitle);
#endif
                itemLights       = new NativeCheckboxItem(Strings.ItemLightsTitle, Strings.ItemLightsSubtitle, true);
                itemCallCops     = new NativeItem(Strings.ItemCopsTitle, Strings.ItemCopsSubtitle);
                itemDifficulty   = new NativeItem(Strings.ItemDifficulty, Strings.ItemDIfficultySubtitle);
                itemKills        = new NativeItem(Strings.ItemKills, Strings.ItemKillsSubtitle);
                itemCheatEnabled = new NativeCheckboxItem(Strings.ItemCheat, Strings.ItemCheatDescription);
                itemCommand      = new NativeItem(Strings.ItemCommand, Strings.ItemCommandDescription);
                itemModels       = new NativeItem(Strings.ItemModels, Strings.ItemModelsDescription);

                modelMenu = new NativeMenu("Models", Strings.MenuModel);

                itemDefaultModel = new NativeItem("Default", "The classic NAL Model.");
                itemCopModel     = new NativeItem("LSPD Officer", "The cop.");
                modelMenu.Add(itemDefaultModel);
                modelMenu.Add(itemCopModel);
                itemDefaultModel.Activated += ItemDefaultModel_Activated;
                itemCopModel.Activated     += ItemCopModel_Activated;
                #region Items - Load & Save
                saveMenu      = new NativeMenu(Strings.MenuSaveHeader, "SAVE");
                itemSaveSlot1 = new NativeItem(string.Format(Strings.MenuSaveItem, 1), Strings.MenuSaveItemSubtitle);
                itemSaveSlot2 = new NativeItem(string.Format(Strings.MenuSaveItem, 2), Strings.MenuSaveItemSubtitle);
                itemSaveSlot3 = new NativeItem(string.Format(Strings.MenuSaveItem, 3), Strings.MenuSaveItemSubtitle);

                itemSaveSlot1.Activated += (menu, i) => SaveController.Save(Common.Blackout, 1);
                itemSaveSlot2.Activated += (menu, i) => SaveController.Save(Common.Blackout, 2);
                itemSaveSlot3.Activated += (menu, i) => SaveController.Save(Common.Blackout, 3);

                saveMenu.Add(itemSaveSlot1);
                saveMenu.Add(itemSaveSlot2);
                saveMenu.Add(itemSaveSlot3);
                lemonPool.Add(saveMenu);

                loadMenu      = new NativeMenu(Strings.MenuLoadHeader, Strings.MenuLoadSubtitle);
                itemLoadSlot1 = new NativeItem(string.Format(Strings.MenuSaveItem, 1), Strings.MenuLoadItemSubtitle);
                itemLoadSlot2 = new NativeItem(string.Format(Strings.MenuSaveItem, 2), Strings.MenuLoadItemSubtitle);
                itemLoadSlot3 = new NativeItem(string.Format(Strings.MenuSaveItem, 3), Strings.MenuLoadItemSubtitle);

                itemLoadSlot1.Activated += (menu, i) => SaveController.Load(1);
                itemLoadSlot2.Activated += (menu, i) => SaveController.Load(2);
                itemLoadSlot3.Activated += (menu, i) => SaveController.Load(3);

                loadMenu.Add(itemLoadSlot1);
                loadMenu.Add(itemLoadSlot2);
                loadMenu.Add(itemLoadSlot3);
                lemonPool.Add(loadMenu);

                itemSave             = mainMenu.AddSubMenu(saveMenu);
                itemSave.Title       = Strings.ItemSaveTitle;
                itemSave.Description = Strings.ItemSaveSubtitle;

                itemLoad             = mainMenu.AddSubMenu(loadMenu);
                itemLoad.Title       = Strings.ItemLoadTitle;
                itemLoad.Description = Strings.ItemLoadSubtitle;
                #endregion

                foodMenu = new NativeMenu("Food", Strings.MenuFoodShopSubtitle);

                itemHamburger = HungryController.CreateFoodSellerItem(Strings.FoodBurger, Foods.Hamburger, 1);
                itemChicken   = HungryController.CreateFoodSellerItem(Strings.FoodChicken, Foods.Chicken, 3);
                itemWater     = HungryController.GenerateWaterSellItem(Strings.ItemWater, 2);

                foodMenu.Add(itemHamburger);
                foodMenu.Add(itemChicken);
                foodMenu.Add(itemWater);

                logger.Trace("All instances initialized");
                mainMenu.Add(itemLights);
                mainMenu.Add(itemSave);
                mainMenu.Add(itemLoad);
                mainMenu.Add(itemCallCops);

                itemModels             = mainMenu.AddSubMenu(modelMenu);
                itemModels.Title       = Strings.ItemModels;
                itemModels.Description = Strings.ItemModelsDescription;

                mainMenu.Add(itemDifficulty);
                mainMenu.Add(itemKills);

                lemonPool.Add(mainMenu);
                lemonPool.Add(modelMenu);
                lemonPool.Add(foodMenu);
                logger.Trace("Main Menu Done");
                Tick    += MenuScript_Tick;
                KeyDown += MenuScript_KeyDown;
                itemLights.CheckboxChanged += ItemLights_CheckboxEvent;
                itemCallCops.Activated     += ItemCallCops_Activated;
                itemCommand.Activated      += ItemCommand_Activated;
                itemCheatEnabled.Activated += ItemCheatEnabled_Activated;

                timerBars.Add(hungryBar);
                timerBars.Add(waterBar);

                Common.Unload += Common_Unload;

                logger.Trace("Loading Ammu-Nation Menu");

                buyMenu          = new NativeMenu(Strings.AmmuTitle, Strings.AmmuSubtitle);
                itemPistol       = AmmuController.GenerateWeaponSellerItem(Strings.AmmuPistol, Strings.AmmuPistolSubtitle, 100);
                itemPumpShotgun  = AmmuController.GenerateWeaponSellerItem(Strings.AmmuPumpShotgun, Strings.AmmuPumpShotgunSubtitle, 200);
                itemCarbineRifle = AmmuController.GenerateWeaponSellerItem(Strings.AmmuCarbineRifle, Strings.AmmuCarbineRifleSubtitle, 350);

                itemBodyArmor = new NativeItem(Strings.WeaponBodyArmor, Strings.WeaponBodyArmorDescription)
                {
                    AltTitle = "$380"
                };
                logger.Trace("Instances created");
                buyMenu.Add(itemPistol);
                buyMenu.Add(itemPumpShotgun);
                buyMenu.Add(itemBodyArmor);
                lemonPool.Add(buyMenu);
                itemPistol.Activated       += ItemPistol_Activated;
                itemPumpShotgun.Activated  += ItemPumpShotgun_Activated;
                itemCarbineRifle.Activated += ItemCarbineRifle_Activated;
                itemBodyArmor.Activated    += ItemBodyArmor_Activated;

                repairBlip              = World.CreateBlip(repair);
                repairBlip.IsFriendly   = true;
                repairBlip.IsShortRange = true;
                repairBlip.Sprite       = BlipSprite.Garage;
                repairBlip.Color        = BlipColor.Blue;
                repairBlip.Name         = Strings.RepairBlip;

                HungryController.AddBlipsToAllResellers();
                Instance = this;

                this.Aborted += MenuScript_Aborted;
                CommandController.Init();
            }
#pragma warning disable CA1031
            catch (Exception ex)
#pragma warning restore CA1031
            {
                GameUI.DisplayHelp(Strings.ExceptionMenu);
                logger.Fatal(ex, "Error while loading menu");
                Common.UnloadMod();
                this.Abort();
            }
        }
コード例 #14
0
        private NativeMenu CreateDefaultAppMenu()
        {
            var result = new NativeMenu();

            var aboutItem = new NativeMenuItem("About Avalonia");

            aboutItem.Click += async(sender, e) =>
            {
                var dialog = new AboutAvaloniaDialog();

                var mainWindow = (Application.Current.ApplicationLifetime as IClassicDesktopStyleApplicationLifetime)?.MainWindow;

                await dialog.ShowDialog(mainWindow);
            };
            result.Add(aboutItem);

            var macOpts = AvaloniaLocator.Current.GetService <MacOSPlatformOptions>();

            if (macOpts == null || !macOpts.DisableDefaultApplicationMenuItems)
            {
                result.Add(new NativeMenuItemSeparator());

                var servicesMenu = new NativeMenuItem("Services");
                servicesMenu.Menu = new NativeMenu
                {
                    [MacOSNativeMenuCommands.IsServicesSubmenuProperty] = true
                };
                result.Add(servicesMenu);

                result.Add(new NativeMenuItemSeparator());

                var hideItem = new NativeMenuItem("Hide " + Application.Current.Name)
                {
                    Gesture = new KeyGesture(Key.H, KeyModifiers.Meta)
                };
                hideItem.Click += (sender, args) =>
                {
                    _applicationCommands.HideApp();
                };
                result.Add(hideItem);


                var hideOthersItem = new NativeMenuItem("Hide Others")
                {
                    Gesture = new KeyGesture(Key.Q, KeyModifiers.Meta | KeyModifiers.Alt)
                };
                hideOthersItem.Click += (sender, args) =>
                {
                    _applicationCommands.HideOthers();
                };
                result.Add(hideOthersItem);


                var showAllItem = new NativeMenuItem("Show All");
                showAllItem.Click += (sender, args) =>
                {
                    _applicationCommands.ShowAll();
                };
                result.Add(showAllItem);

                result.Add(new NativeMenuItemSeparator());

                var quitItem = new NativeMenuItem("Quit")
                {
                    Gesture = new KeyGesture(Key.Q, KeyModifiers.Meta)
                };
                quitItem.Click += (sender, args) =>
                {
                    _applicationCommands.ShowAll();
                };
                result.Add(quitItem);
            }


            return(result);
        }