rewind controller support

This commit is contained in:
RandomityGuy 2023-05-14 19:03:27 +05:30
parent 8bf03486c8
commit b73fe67c04
2 changed files with 12 additions and 4 deletions

View file

@ -915,15 +915,18 @@ class MarbleWorld extends Scheduler {
var realDt = dt;
if (Key.isDown(Settings.controlsSettings.rewind) && Settings.optionsSettings.rewindEnabled && !this.isWatching) {
if ((Key.isDown(Settings.controlsSettings.rewind) || Gamepad.isDown(Settings.gamepadSettings.rewind))
&& Settings.optionsSettings.rewindEnabled
&& !this.isWatching) {
this.rewinding = true;
} else {
this.rewinding = false;
if (Key.isReleased(Settings.controlsSettings.rewind)) {
if ((Key.isReleased(Settings.controlsSettings.rewind) || Gamepad.isReleased(Settings.gamepadSettings.rewind))
&& this.rewinding) {
if (this.isRecording) {
this.replay.spliceReplay(timeState.currentAttemptTime);
}
}
this.rewinding = false;
}
if (!this.isWatching) {

View file

@ -75,6 +75,7 @@ typedef GamepadSettings = {
var invertXAxis:Bool;
var invertYAxis:Bool;
var axisDeadzone:Float;
var rewind:Array<String>;
}
class Settings {
@ -135,7 +136,8 @@ class Settings {
cameraSensitivity: 1.0,
invertXAxis: false,
invertYAxis: false,
axisDeadzone: 0.15
axisDeadzone: 0.15,
rewind: ["Y"],
}
public static var progression = [24, 24, 52];
@ -263,6 +265,9 @@ class Settings {
if (json.gamepad != null) {
gamepadSettings = json.gamepad;
}
if (gamepadSettings.rewind == null) {
gamepadSettings.rewind = ["Y"];
}
if (controlsSettings.rewind == null) {
controlsSettings.rewind = Key.R;
}