public static void TransitionState(GameStateView gsv) { var transSpd = 30; TransState = gsv; transitioning = true; if (gsv == CurrentState) { transitioning = false; if (transColor.A == 0) return; } if (transColor.A == 255 && transitioning) { PreviousState = CurrentState; CurrentState = gsv; UI.SetCurrentInterface(CurrentState.Name); ReallignElements(); } if (transColor.A < 255 && transitioning) { if (transColor.A <= 255 - transSpd) transColor.A += (byte)transSpd; else transColor.A++; } else if (transColor.A > 0 && !transitioning) { if (transColor.A >= transSpd) transColor.A -= (byte)transSpd; else transColor.A--; } transTex.SetData(new Color[] { transColor }); }
public static Command HandleInput(bool condition) { if (!condition) return null; keyCombos.Update(); if (GameStateManager.IsEditing()) { if (keyCombos.CheckKeyComboStateWithPriorities("CTRL_Z")) { Undo(); } if (keyCombos.CheckKeyComboStateWithPriorities("CTRL_Y")) { Redo(); } if (keyCombos.CheckKeyComboStateWithPriorities("CTRL_SHIFT_M")) { return new GenerateLevelMap(Game1.Graphics.GraphicsDevice); } if (Mouse.GetState().MiddleButton == ButtonState.Pressed) { Point pos = Util.GetMouseDelta(); float zoom = Game1.Cam.Zoom; return new MoveCamera(new Vector2(pos.X / zoom, pos.Y / zoom)); } int scrollDelta; if (Keyboard.GetState().IsKeyDown(Keys.LeftControl) && (scrollDelta = Util.GetScrollDelta()) != 0) { return new ZoomCamera((scrollDelta / 2400.0f) * Game1.Cam.Zoom); } if (Keyboard.GetState().IsKeyDown(Keys.LeftShift) && (scrollDelta = Util.GetScrollDelta()) != 0) { return new ChangeBrushSize(scrollDelta / 120.0f); } if ((scrollDelta = Util.GetScrollDelta()) != 0) { if (scrollDelta > 0) return new RotateTile(); else return new RotateTileBack(); } if (Util.IsRightMouseButtonPressed()) { return new RotateTile(); } if (keyCombos.CheckKeyComboStateWithPriorities("CTRL_S")) { return new SaveMap(); } if (Mouse.GetState().LeftButton == ButtonState.Pressed && !Map.CurrentBrush.Tool.Used) { uct = new UseCurrentTool(); return uct; } if (Mouse.GetState().LeftButton == ButtonState.Released && uct != null) { if (currentIndex <= UndoableCommandsList.Count - 1) UndoableCommandsList.RemoveRange(currentIndex + 1, (UndoableCommandsList.Count - currentIndex) - 1); UndoableCommandsList.Add(uct); uct = null; currentIndex = UndoableCommandsList.Count - 1; } if (keyCombos.CheckKeyComboStateWithPriorities("PLUS")) { tileType++; if (tileType > Map.Settings.TileTypeCount - 1) tileType = 0; return new SwitchTileType(tileType); } if (keyCombos.CheckKeyComboStateWithPriorities("MINUS")) { tileType--; if (tileType < 0) tileType = Map.Settings.TileTypeCount - 1; return new SwitchTileType(tileType); } if (keyCombos.CheckKeyComboStateWithPriorities("B")) { return new SwitchBrush(); } if (keyCombos.CheckKeyComboStateWithPriorities("L")) { return new IncrementActiveTileLayer(); } if (keyCombos.CheckKeyComboStateWithPriorities("O")) { return new DecrementActiveTileLayer(); } if (keyCombos.CheckKeyComboStateWithPriorities("CTRL_L")) { return new AddTileLayer(); } if (keyCombos.CheckKeyComboStateWithPriorities("BACK")) { return new RemoveActiveTileLayer(); } if (keyCombos.CheckKeyComboStateWithPriorities("ESCAPE")) { prevGameState = GameStateManager.CurrentState; GameStateManager.TransitionState(GameStateManager.PauseMenu); } } if (keyCombos.CheckKeyComboStateWithPriorities("ALT_ENTER")) { return new SwitchFullScreen(Game1.Graphics); } if (GameStateManager.CurrentState == GameStateManager.PauseMenu && keyCombos.CheckKeyComboStateWithPriorities("ESCAPE")) { GameStateManager.TransitionState(prevGameState); } return null; }