Example #1
0
        public static void UpdateInputs()
        {
            HandleFrameRates();
            CheckControls();
            FrameStepping();
            NextScene = SceneManager.NextScene;

            if (HasFlag(state, State.Enable))
            {
                Running = true;
                if (HasFlag(state, State.Record))
                {
                    controller.RecordPlayer();
                }
                else
                {
                    controller.PlaybackPlayer();

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }
                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;
            }
        }
Example #2
0
        public static void UpdateInputs()
        {
            UpdatePlayerInfo();
            kbState = Keyboard.GetState();
            GamePadState padState = GetGamePadState();

            HandleFrameRates(padState);
            CheckControls(padState);
            FrameStepping(padState);

            if (HasFlag(state, State.Enable))
            {
                Running = true;

                if (HasFlag(state, State.FrameStep))
                {
                    return;
                }

                if (HasFlag(state, State.Record))
                {
                    controller.RecordPlayer();
                }
                else
                {
                    bool fastForward = controller.HasFastForward;
                    controller.PlaybackPlayer();
                    if (fastForward && !controller.HasFastForward)
                    {
                        nextState |= State.FrameStep;
                        FrameLoops = 1;
                    }

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }
                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;

                if (!Engine.Instance.IsActive)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        if (MInput.GamePads[i].Attached)
                        {
                            MInput.GamePads[i].CurrentState = padState;
                        }
                    }
                    MInput.UpdateVirtualInputs();
                }
            }
        }
Example #3
0
        public static void UpdateInputs()
        {
            HandleFrameRates();
            CheckControls();
            FrameStepping();
            PlayerVelocity     = (Player.position - LastPlayerPosition) * 150;
            LastPlayerPosition = Player.position;
            CurrentTime        = Time.time;
            if (!Application.runInBackground)
            {
                Application.runInBackground = true;
            }

            if (HasFlag(state, State.Enable))
            {
                Running = true;
                if (HasFlag(state, State.Record))
                {
                    controller.RecordPlayer();
                }
                else
                {
                    controller.PlaybackPlayer();

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }
                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;
            }
        }
Example #4
0
        public static void UpdateInputs()
        {
            Player player      = null;
            long   chapterTime = 0;

            if (Engine.Scene is Level level)
            {
                player = level.Tracker.GetEntity <Player>();
                if (player != null)
                {
                    string statuses = ((int)(player.dashCooldownTimer * 60f) < 1 && player.Dashes > 0 ? "Dash " : string.Empty) + (player.LoseShards ? "Ground " : string.Empty) + (player.WallJumpCheck(1) ? "Wall-R " : string.Empty) + (player.WallJumpCheck(-1) ? "Wall-L " : string.Empty);
                    chapterTime = ((Celeste.Celeste)Engine.Instance).AutoSplitterInfo.ChapterTime;
                    Vector2 diff = (player.ExactPosition - lastPos) * 60;

                    if (player.Holding == null)
                    {
                        foreach (Component component in level.Tracker.GetComponents <Holdable>())
                        {
                            Holdable holdable = (Holdable)component;
                            if (holdable.Check(player))
                            {
                                statuses += "Grab ";
                                break;
                            }
                        }
                    }

                    StringBuilder sb = new StringBuilder();
                    sb.Append("Pos: ").Append(player.ExactPosition.X.ToString("0.0", enUS)).Append(',').AppendLine(player.ExactPosition.Y.ToString("0.0", enUS));
                    sb.Append("Speed: ").Append(player.Speed.X.ToString("0.00", enUS)).Append(',').Append(player.Speed.Y.ToString("0.00", enUS)).Append(',').AppendLine(player.Speed.Length().ToString("0.00", enUS));
                    sb.Append("Vel: ").Append(diff.X.ToString("0.00", enUS)).Append(',').Append(diff.Y.ToString("0.00", enUS)).Append(',').AppendLine(diff.Length().ToString("0.00", enUS));
                    sb.Append("Stamina: ").Append(player.Stamina.ToString("0")).Append(" Timer: ").AppendLine(((double)chapterTime / (double)10000000).ToString("0.000", enUS));
                    sb.Append(player.InControl && !level.Transitioning ? statuses : "NoControl ").Append(player.TimePaused ? "Paused " : string.Empty).Append(level.InCutscene ? "Cutscene " : string.Empty);
                    PlayerStatus = sb.ToString();
                }
                else
                {
                    PlayerStatus = level.InCutscene ? "Cutscene" : null;
                }
            }
            else if (Engine.Scene is SummitVignette summit)
            {
                PlayerStatus = string.Concat("SummitVignette ", summit.ready);
            }
            else if (Engine.Scene is Overworld overworld)
            {
                PlayerStatus = string.Concat("Overworld ", overworld.ShowInputUI);
            }
            else if (Engine.Scene != null)
            {
                PlayerStatus = Engine.Scene.GetType().Name;
            }

            kbState = Keyboard.GetState();
            GamePadState padState = GetGamePadState();

            HandleFrameRates(padState);
            CheckControls(padState);
            FrameStepping(padState);

            if (HasFlag(state, State.Enable))
            {
                Running = true;

                if (HasFlag(state, State.FrameStep))
                {
                    return;
                }

                if (HasFlag(state, State.Record))
                {
                    controller.RecordPlayer();
                }
                else
                {
                    bool fastForward = controller.HasFastForward;
                    controller.PlaybackPlayer();
                    if (fastForward && !controller.HasFastForward)
                    {
                        nextState |= State.FrameStep;
                        FrameLoops = 1;
                    }

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }
                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;

                if (!Engine.Instance.IsActive)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        if (MInput.GamePads[i].Attached)
                        {
                            MInput.GamePads[i].CurrentState = padState;
                        }
                    }
                    MInput.UpdateVirtualInputs();
                }
            }

            if (player != null && chapterTime != lastTimer)
            {
                lastPos   = player.ExactPosition;
                lastTimer = chapterTime;
            }
        }
Example #5
0
        public static void UpdateInputs()
        {
            UpdatePlayerInfo();
            kbState  = Keyboard.GetState();
            padState = GamePad.GetState(0);
            HandleFrameRates();
            CheckControls();
            FrameStepping();

            if (HasFlag(state, State.Enable))
            {
                Running = true;

                if (!HasFlag(state, State.FrameStep))
                {
                    bool fastForward = controller.HasFastForward;
                    controller.PlaybackPlayer();

                    if (fastForward && (!controller.HasFastForward || controller.Current.ForceBreak && controller.CurrentInputFrame == controller.Current.Frames))
                    {
                        nextState |= State.FrameStep;
                        FrameLoops = 1;
                    }

                    if (controller.Current != null)
                    {
                        if (controller.Current.HasActions(Actions.Reset))
                        {
                            AchievementManager.instance.m_all_time_stats.attempts = 1;
                            AchievementManager.instance.m_all_time_stats.falls    = 0;
                            AchievementManager.instance.m_all_time_stats.jumps    = 0;
                            AchievementManager.instance.m_all_time_stats.session  = 0;
                            AchievementManager.instance.m_all_time_stats._ticks   = 0;
                            AchievementManager.instance.m_snapshot.attempts       = 1;
                            AchievementManager.instance.m_snapshot.falls          = 0;
                            AchievementManager.instance.m_snapshot.jumps          = 0;
                            AchievementManager.instance.m_snapshot.session        = 0;
                            AchievementManager.instance.m_snapshot._ticks         = 2;
                        }
                        else if (controller.Current.HasActions(Actions.State) && GameLoop.m_player != null)
                        {
                            GameLoop.m_player.ApplySaveState(new SaveState()
                            {
                                direction = controller.Current.Direction == 1 ? 1 : -1,
                                position  = new Vector2((float)controller.Current.PosX / 100f, (float)controller.Current.PosY / 100f),
                                velocity  = new Vector2(0, 0.26f)
                            });
                            Camera.UpdateCamera(GameLoop.m_player.m_body.GetHitbox().Center);
                        }
                    }

                    if (saves.Count < controller.CurrentFrame)
                    {
                        saves.Add(new FrameState(GameLoop.m_player));
                    }
                    else
                    {
                        saves[controller.CurrentFrame - 1].SetValues(GameLoop.m_player);
                    }

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }

                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;
            }
        }
Example #6
0
        public static void UpdateInputs()
        {
            Level level = Engine.Scene as Level;

            if (level != null)
            {
                Player player = level.Tracker.GetEntity <Player>();
                if (player != null)
                {
                    string statuses = ((int)(player.dashCooldownTimer * 60f) < 1 && player.Dashes > 0 ? "Dash " : string.Empty) + (player.LoseShards ? "Ground " : string.Empty) + (player.WallJumpCheck(1) ? "Wall-R " : string.Empty) + (player.WallJumpCheck(-1) ? "Wall-L " : string.Empty);
                    string info     = "Pos: " + player.Position.X.ToString("0") + "," + player.Position.Y.ToString("0") + "\r\nSpeed: " + player.Speed.X.ToString("0.00") + "," + player.Speed.Y.ToString("0.00") + "," + player.Speed.Length().ToString("0.00") + "\r\nStamina: " + player.Stamina.ToString("0") + " Timer: " + ((double)((Celeste.Celeste)Engine.Instance).AutoSplitterInfo.ChapterTime / (double)10000000).ToString("0.000") + "\r\n" + (player.InControl && !level.Transitioning ? statuses : "NoControl ") + (player.TimePaused ? "Paused " : string.Empty) + (level.InCutscene ? "Cutscene " : string.Empty);
                    PlayerStatus = info;
                }
                else
                {
                    PlayerStatus = level.InCutscene ? "Cutscene" : null;
                }
            }
            else if (Engine.Scene != null)
            {
                PlayerStatus = Engine.Scene.GetType().Name;
            }

            GamePadState padState = GetGamePadState();

            HandleFrameRates(padState);
            CheckControls(padState);
            FrameStepping(padState);

            if (HasFlag(state, State.Enable))
            {
                Running = true;

                if (HasFlag(state, State.FrameStep))
                {
                    return;
                }

                if (HasFlag(state, State.Record))
                {
                    controller.RecordPlayer();
                }
                else
                {
                    bool fastForward = controller.HasFastForward;
                    controller.PlaybackPlayer();
                    if (fastForward && !controller.HasFastForward)
                    {
                        nextState |= State.FrameStep;
                        FrameLoops = 1;
                    }

                    if (!controller.CanPlayback)
                    {
                        DisableRun();
                    }
                }
                string status = controller.Current.Line + "[" + controller.ToString() + "]";
                CurrentStatus = status;
            }
            else
            {
                Running       = false;
                CurrentStatus = null;

                if (!Engine.Instance.IsActive)
                {
                    for (int i = 0; i < 4; i++)
                    {
                        if (MInput.GamePads[i].Attached)
                        {
                            MInput.GamePads[i].CurrentState = padState;
                        }
                    }
                    MInput.UpdateVirtualInputs();
                }
            }
        }