public MenuItem AddMenuItem(MenuItem parent, OtherKeyType key, String text, RhythmGame.GameStateType nextState) { VerticalTextItem newItem = new VerticalTextItem(Game, this); newItem.LargeFont = true; newItem.ItemText = text; newItem.NextState = nextState; MenuItem inside = (MenuItem)newItem; if (parent != null) { if (!parent.AddLink(ref inside, key)) { parent = null; } } if (parent == null) { newItem.ItemSetup(); Selected = newItem; } Items.Add(newItem); Shift += new Action <int, int>(newItem.Shift); return(newItem); }
public MenuItem AddMenuItem(MenuItem parent, OtherKeyType key, String text, RhythmGame.GameStateType nextState, int childId, SkillInformation info) { VerticalTextItem newItem = new VerticalTextItem(Game, this); bool owns = (info.Level <= 0); if (owns) { newItem.FontColor = Color.Gray; } newItem.ChildId = childId; newItem.ItemText = text; if (owns) { newItem.NextState = nextState; } else { newItem.NextState = RhythmGame.GameStateType.None; } //newItem.DriftRateX = -2.0f; //newItem.DriftRateY = -0.25f; //newItem.ScaleRate = 0.9f; newItem.DefaultX = 120; newItem.StartY = 175; MenuItem.ScreenInfo screenInfo = newItem.CurrentInfo; //info.pos.Y -= 220; //info.pos.X += 30; newItem.CurrentInfo = screenInfo; newItem.LargeFont = true; MenuItem inside = (MenuItem)newItem; if (parent != null) { if (!parent.AddLink(ref inside, key)) { parent = null; } } if (parent == null) { newItem.ItemSetup(); Selected = newItem; } skillInformation.Add(childId, info); Items.Add(newItem); Shift += new Action <int, int>(newItem.Shift); newItem.PreSelected += new Action <RhythmGame.GameStateType>(BuySkill); //newItem.PreSelected += new Action<RhythmGame.GameStateType>(LeavingMenu); return(newItem); }
public MenuItem AddMenuItem(MenuItem parent, OtherKeyType key, String text, RhythmGame.GameStateType nextState, int childId, TaskInformation info) { VerticalTextItem newItem = new VerticalTextItem(Game, this); newItem.ChildId = childId; newItem.ItemText = text; newItem.NextState = RhythmGame.GameStateType.None; //newItem.DriftRateX = -2.0f; //newItem.DriftRateY = -0.25f; //newItem.ScaleRate = 0.9f; newItem.DefaultX = 120; newItem.StartY = 175; MenuItem.ScreenInfo screenInfo = newItem.CurrentInfo; //info.pos.Y -= 220; //info.pos.X += 30; newItem.CurrentInfo = screenInfo; newItem.LargeFont = true; MenuItem inside = (MenuItem)newItem; if (parent != null) { if (!parent.AddLink(ref inside, key)) { parent = null; } } if (parent == null) { newItem.ItemSetup(); Selected = newItem; } taskInformation.Add(childId, info); Items.Add(newItem); Shift += new Action <int, int>(newItem.Shift); return(newItem); }
public abstract bool OtherKeyHeld(OtherKeyType type);
/// <summary> /// Other mapped keys. These keys are used primary for menu navigation. /// </summary> public abstract bool OtherKeyPressed(OtherKeyType type);
public override bool OtherKeyHeld(OtherKeyType type) { return(otherStates[(int)type] == KeyState.HELD); }
public override bool OtherKeyPressed(OtherKeyType type) { return(otherStates[(int)type] == KeyState.PRESSED); }
public override void Update(GameTime gameTime) { base.Update(gameTime); keyboardState = Keyboard.GetState(); Keys[] newKeys = (Keys[])keyboardState.GetPressedKeys(); if (fake && (fakeKeys.Length > 0)) { int index = 0; Keys[] tempKeys = new Keys[(newKeys.Length + fakeKeys.Length)]; foreach (Keys k in newKeys) { tempKeys[index++] = k; } foreach (Keys k in fakeKeys) { tempKeys[index++] = k; } newKeys = (Keys[])tempKeys.Clone(); fakeKeys = new Keys[0]; } for (int i = 0; i < states.Length; i++) { states[i] = KeyState.NONE; } for (int i = 0; i < otherStates.Length; i++) { otherStates[i] = KeyState.NONE; } _fullPressed = 0UL; _fullHeld = 0UL; _strummed = false; //if (GamePad.GetState(PlayerIndex.One).Buttons.A == ButtonState.Pressed) //return OtherKeyType.Select; if (pressedKeys != null || GamePad.GetState(PlayerIndex.One).Buttons.A == ButtonState.Pressed) { foreach (Keys key in newKeys) { bool found = false; foreach (Keys oldKey in pressedKeys) { if (key == oldKey) { found = true; break; } } int id = KeyToID(key); if (id != -1) { if (found) { _fullHeld |= 1UL << id; states[id] = KeyState.HELD; } else { _fullPressed |= 1UL << id; states[id] = KeyState.PRESSED; } } OtherKeyType oid = OtherKeyToID(key); if (oid != OtherKeyType.EndType) { if (found) { otherStates[(int)oid] = KeyState.HELD; } else { otherStates[(int)oid] = KeyState.PRESSED; } if (oid == OtherKeyType.Cancel) { otherStates[(int)OtherKeyType.Pause] = otherStates[(int)OtherKeyType.Cancel]; } if (oid == OtherKeyType.Select) { ((RhythmGame)Game).ActiveInput = this; } } if (IsStrum(key)) { _strummed = !found; } } } pressedKeys = newKeys; }
public MenuItem AddMenuItem(MenuItem parent, String name, String details, Texture2D logo, OtherKeyType key) { PhotoTextItem newItem = new PhotoTextItem(Game, this); MenuItem.ScreenInfo info = newItem.CurrentInfo; info.pos.Y -= 110; info.pos.X -= 275; newItem.CurrentInfo = info; newItem.SetStringAndLogo(name, logo); newItem.SetDetails(details); newItem.NextState = RhythmGame.GameStateType.None; MenuItem inside = (MenuItem)newItem; if (parent != null) { if (!parent.AddLink(ref inside, key)) { parent = null; } } if (parent == null) { newItem.ItemSetup(); Selected = newItem; } Items.Add(newItem); Shift += new Action <int, int>(newItem.Shift); return(newItem); }