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; } }
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(); } } }
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; } }
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; } }
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; } }
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(); } } }