private static async Task OnTick() { try { if (Observer.CurrentMenu == InteractionMenu) { (WalkingStyleItem as MenuItemHorNamedSelector).state = walkingStyleIndex; (WalkingStyleItem as MenuItemHorNamedSelector).overrideDetailWith = walkingStyles[walkingStyleIndex].Replace("move_m@", "").Replace("move_f@", "").Replace("@", " ").Replace("_", " ").ToTitleCase(); ItemsFiltered = ItemsAll.Where(m => m.Item3.Invoke()).OrderBy(m => m.Item2.Title).OrderByDescending(m => m.Item1).Select(m => m.Item2).ToList(); if (!ItemsFiltered.SequenceEqual(InteractionMenu.menuItems) || IsDirty) { if (ItemsFiltered.Contains(InteractionMenu.SelectedItem)) { int newSelectedIndex = ItemsFiltered.IndexOf(InteractionMenu.SelectedItem); InteractionMenu.menuItems = ItemsFiltered; InteractionMenu.SelectedIndex = newSelectedIndex; } else if (InteractionMenu.SelectedIndex.IsBetween(0, ItemsFiltered.Count - 1)) { InteractionMenu.menuItems = ItemsFiltered; InteractionMenu.SelectedIndex = InteractionMenu.SelectedIndex; // Simply refreshes selection } else { InteractionMenu.menuItems = ItemsFiltered; InteractionMenu.SelectedIndex = 0; } IsDirty = false; } } Observer.Tick(); if (ControlHelper.IsControlJustPressed(Control.InteractionMenu)) { if (Observer.CurrentMenu == null) { Observer.OpenMenu(InteractionMenu); } else { Observer.CloseMenu(true); } MenuController.PlaySound("NAV_UP_DOWN"); } } catch (Exception ex) { Log.Error($"[INTERACTIONLISTMENU] Exception in OnTick; {ex.Message}"); } await Task.FromResult(0); }
public void toggleMenuState() { if (Input.IsControlJustPressed(Control.InteractionMenu)) { if (Observer.CurrentMenu == null) { Observer.OpenMenu(InteractionMenu); } else { Observer.CloseMenu(true); } MenuController.PlaySound("NAV_UP_DOWN"); } }
public CharacterEditorMenu() { headerTitle = "Character designer"; statusTitle = ""; //menuItems.Add( new GenderSelector( this ) ); menuItems.Add(new ModelSelector(this)); menuItems.Add(new CustomizeButton(this)); menuItems.Add(new SaveButton(this)); menuItems.Add(new ExitButton(this)); Observer = new MenuObserver(); Observer.OpenMenu(this); // Remove default ESC, Backspace & RMB behaviour Observer.Controller.controlBinds.Remove(Control.PhoneCancel); Client.ActiveInstance.RegisterTickHandler(Update); }
public CharacterEditorMenu(bool isClothingStore = false) { headerTitle = "Character designer"; statusTitle = ""; IsClothingStore = isClothingStore; Editor = new CharacterEditorCamera(!isClothingStore); //menuItems.Add( new GenderSelector( this ) ); if (!IsClothingStore) { menuItems.Add(new ModelSelector(this)); } menuItems.Add(new CustomizeButton(this, isClothingStore)); menuItems.Add(new SaveButton(this)); if (IsClothingStore) { menuItems.Add(new ExitButton(this)); } Observer = new MenuObserver(); Observer.OpenMenu(this); // Remove default ESC, Backspace & RMB behaviour Observer.Controller.controlBinds.Remove(Control.PhoneCancel); Client.Instance.RegisterTickHandler(Update); Client.Instance.RegisterEventHandler("Skin.TestCreate", new Action <dynamic>(handleSkinCreate)); Game.PlayerPed.IsPositionFrozen = true; if (skinData != null) { AdditionalSaveData.PrimaryHairColor = (byte)skinData.PrimaryHairColor; AdditionalSaveData.SecondaryHairColor = (byte)skinData.SecondaryHairColor; } InteractionUI.Observer.CloseMenu(true); }